Autor Beitrag
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 14.03.11 12:40 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
Der einzige Vorteil von denen ist, das man ihnen beim erzeugen eben schon einen Wert zuweisen kann, so wie in C, C++, Java, wenn man Variablen nach diesem Schema erzeugt:
Das geht in Delphi doch auch, nur eben nicht variable Werte. :gruebel:
ausblenden Delphi-Quelltext
1:
2:
3:
var
  MyForm: TMyForm;
  MyGlobalShit: Integer = 0;


Also bei Delphi 7 will der Compiler nicht kompilieren wenn ich ihm das als Input anbiete. Gibt jedes mal ne Fehlermeldung.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
andererseits hab ich mir sagen lassen das es schneller ist wenn man eine Variable beim Initialisieren schon mit einem Wert belegt als wenn man zuerst die Variable erzeugt und ihr erst dann einen Wert zuweist.
Globale Variablen und Felder eines Objekts werden immer bereits mit 0 vorinitialisiert. Nur lokale Variablen nicht.

Naja, mit 0 eben und da auch nur die globalen. Es wäre recht hilfreich wenn mans selbst entscheiden kann, oder ist würd das ev. Probleme geben. Ich kenn das wie gesagt eben nur vom erzählen, ob es wirklich schneller ist, weiß ich nicht.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
Typisierte Konstanten gibts in Delphi 7 zb auch noch. Muss man ebenfalls mit einem Compilerschalter aktiveren.
Das meinte ich mit "jetzt muss dafür...". ;-)
Das geht in XE auch weiterhin, es ist nur nicht empfehlenswert das zu nutzen.

[/quote]

Ohh, sorry, mein Fehler. :oops: Und klein Elundril merkte sich: Zuerst denken, dann posten. :mrgreen:

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19335
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 14.03.11 15:33 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
Also bei Delphi 7 will der Compiler nicht kompilieren wenn ich ihm das als Input anbiete. Gibt jedes mal ne Fehlermeldung.
Das geht auch bei Delphi 5 schon. Ich hoffe die Formularvariable war deutlich genug um zu zeigen, dass ich eine globale Variable meine?

Bei lokalen geht das natürlich nicht und da ist es auch wenig sinnvoll, da einzelne Methoden eh nie so lang sein sollten, dass man da den Überblick verliert. :mrgreen:
Mr_Emre_D
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 14



BeitragVerfasst: Mo 14.03.11 22:43 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
dieses konzept gibt es bei delphi nicht.
In Delphi 1 konntest du es z.B. noch Konstanten zur Laufzeit verändern. Jetzt muss dafür die entsprechende Projektoption gesetzt werden (veränderbare typisierte Konstanten oder so). Das Konzept mit nur einmal ändern oder so gibt es in der Tat nicht.

Allerdings sehe ich darin keinen Sinn Konstanten veränderbar zu machen, denn dann sind es ja Variablen, nur dass dran steht es wären keine. :lol:


Geht immernoch: Compilerdirektive {$J-}{$J+} verwenden!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
const
  {$J+}
  x: Integer = 13;
  {$J-}

begin
  inc( x );
end.


Das ganze ist aber sehr sinnfrei! Anstatt const und den beiden Compilerdirektiven sollte man lieber var verwenden!

Zum ursprünlichen Problem: Du kannst das frühestens im Initialization und Finalization Bereich der Units machen!

MfG

Für diesen Beitrag haben gedankt: beastofchaos
beastofchaos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Di 15.03.11 14:01 
user profile iconMr_Emre_D hat folgendes geschrieben Zum zitierten Posting springen:


Zum ursprünlichen Problem: Du kannst das frühestens im Initialization und Finalization Bereich der Units machen!



Danke, das ist glaub ich besser, als dass ich das alels in formcreate definiere ( mehr übersicht ) xD

Grüße