Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Globale Variablen (https://www.delphipraxis.net/24738-globale-variablen.html)

Nikolas 25. Jun 2004 12:21

Re: Globale Variablen
 
Warum soll den eine globale Variable schlechter Programmierstil sein? :roll: Wenn ich Daten auf zwei Forms oder auch nur in unterschiedlichen Buttons o.ä. brauche, ist das doch der einfachste Weg. Wo liegt denn das Problem? :gruebel:

Tox

neolithos 25. Jun 2004 12:23

Re: Globale Variablen
 
Zitat:

Zitat von Toxman
Warum soll den eine globale Variable schlechter Programmierstil sein? :roll: Wenn ich Daten auf zwei Forms oder auch nur in unterschiedlichen Buttons o.ä. brauche, ist das doch der einfachste Weg. Wo liegt denn das Problem? :gruebel:

Tox

Das Thema wurde schon ausgiebig Disskutiert :roll:
Aber eins erkenne ich an dieser Aussage! Das du noch kein sehr großes Programm geschrieben hast (ich kann mich auch irren)!

Nicolai1234 25. Jun 2004 12:24

Re: Globale Variablen
 
Aber du musst doch eh die function aufrufen um zu sehen, wie der momentane Status ist!
Wie wird dieser denn dann weiter verwendet?

neolithos 25. Jun 2004 12:26

Re: Globale Variablen
 
Zitat:

Zitat von Toxman
Warum soll den eine globale Variable schlechter Programmierstil sein? :roll: Wenn ich Daten auf zwei Forms oder auch nur in unterschiedlichen Buttons o.ä. brauche, ist das doch der einfachste Weg. Wo liegt denn das Problem? :gruebel:

Tox

Nochmal dazu!

Das hatte ich jetzt erst an der Hochschule! Vermeidung von Globalen Variablen hat etwas mit Information Hidding zu tun! Ein Konzept eines "modern" geschriebenen Programmes!

gmarts 25. Jun 2004 12:27

Re: Globale Variablen
 
Zitat:

Zitat von Nicolai1605
Aber du musst doch eh die function aufrufen um zu sehen, wie der momentane Status ist!
Wie wird dieser denn dann weiter verwendet?

Beispiel: Ich drücke eine Taste "FragNachStatus", dann wird die Funktion, die den Status ermittelt aufgerufen. 10 Sekunden oder einen Tatsendrück oder wie auch immer später soll dieser Status irgendwo angezeigt werden. Dann frage ich doch lieber eine Variable ab, als die komplette Funktion nochmal aufzurufen, oder? Ist doch performancetechnisch besser.

Edit: Sprich, dieser ermittelte Status wird im Programm an anderen Stellen weiterverarbeitet.

Nicolai1234 25. Jun 2004 12:30

Re: Globale Variablen
 
Du kannst die finction doch auch erst aufrufen, wenn das ergebnis auch tatsächlich angezeigt wird, oder?

gmarts 25. Jun 2004 12:33

Re: Globale Variablen
 
Zitat:

Zitat von Nicolai1605
Du kannst die finction doch auch erst aufrufen, wenn das ergebnis auch tatsächlich angezeigt wird, oder?

Ja, aber dieses Ergebnis wird auch an späterer/anderer Stelle im Programm benutzt. So oft will ich diese Funktion aus Performancegründen nicht aufrufen. Leider hat die Playerkomponente keine Property State, wie z.B. TMediaplayer. :?

neolithos 25. Jun 2004 12:33

Re: Globale Variablen
 
Zitat:

Zitat von gmarts
Beispiel: Ich drücke eine Taste "FragNachStatus", dann wird die Funktion, die den Status ermittelt aufgerufen. 10 Sekunden oder einen Tatsendrück oder wie auch immer später soll dieser Status irgendwo angezeigt werden. Dann frage ich doch lieber eine Variable ab, als die komplette Funktion nochmal aufzurufen, oder? Ist doch performancetechnisch besser.

Ich würde für solche Probleme eine Art Private Variable empfehlen.

Delphi-Quellcode:
unit ...
interface

  procedure FragNachStatus;
  function GetStatus : Integer;

implementation

var iState : Integer = 0;

procedure FragNachStatus;
...

function GetStatus : Integer;
begin
  Result := iState;
end;

end.
Sinn:
-Klare Schnittstelle die gewisse Änderungen zuläst
-Die Variable ist Schreib geschützt
-Man kann sich sicher sein das nur die Funktionen darauf zugreifen
-Später Änderungen lassen sich besser überblicken

gmarts 25. Jun 2004 12:37

Re: Globale Variablen
 
[Durchgestrichen]@neolithos: Das leuchtet mir schon ein. Doch ich will meinen Ergebniswert nicht immer wieder neu mit einer Funktion abfragen, das geht doch auf die Leistung.[/Durchgestrichen]

Edit: Oh sorry. Habe nicht genau gelesen. :oops: Das ist eine gute Idee.

Aber iState ist doch auch eine globale Variable?

Luckie 25. Jun 2004 12:44

Re: Globale Variablen
 
Entweder als Paramneter übergeben oder wenn das auch zu umständlich ist, zu mindest als Feld der Form-Klasse. Die gefahr bei globalen Variablen liegt darin, dass man echt Probleme bekommt, wenn sie nicht den erwarteten Wert enthält, dann geht nämlich die Sucherei los, wo dieser Wert geändert wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz