Entwickler-Ecke
Sonstiges (Delphi) - Globale Variablen einen nicht Konstantenausdruck zuweisen
whitef - Sa 24.10.15 12:57
Titel: Globale Variablen einen nicht Konstantenausdruck zuweisen
hi,
irgendwie stehe ich gerade auf dem Schlauch...
ich möchte gerne eine
Globale Variable erstellen; diese soll nur den Pfad zu einer Datei beinhalten:
(Dies habe ich Head-Bereich unter
var eingefügt:)
Delphi-Quelltext
1: 2: 3: 4:
| ... var Filepath : String = ExtractFilePath(ParamStr(0)) + 'blabla.xml'; ... |
Muss ich wirlich den Form-
OnCreate Bereich für sowas mißbrauchen?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| ... var Filepath : String; ... procedure TForm1.FormCreate(Sender: TObject); begin Filepath := ExtractFilePath(ParamStr(0)) + 'blabla.xml'; end; ... |
VG
Stundenplan - Sa 24.10.15 13:12
Der Initialisierungswert einer globalen Variablen muss zur Kompilierzeit bekannt bzw. konstant sein. Das Anwendungsverzeichnis kann sich aber auch nach dem Kompilieren ändern, z.B. wenn du die EXE verschiebst. Deshalb müssen solche Werte beim Start des Programms (z.B. OnCreate des MainForms) initialisiert werden.
Gerd Kayser - Sa 24.10.15 14:04
whitef hat folgendes geschrieben : |
Muss ich wirlich den Form-OnCreate Bereich für sowas mißbrauchen? |
Eine Unit hat auch einen initialization-Abschnitt.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| ... var Filepath : String; ... initialization Filepath := ExtractFilePath(ParamStr(0)) + 'blabla.xml'; ... end. |
whitef - Sa 24.10.15 14:54
stimmt... ok danke!
habe diese abschnitte noch nie wirklich benutzt gehabt.
Lösung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| ...
var Filepath : String;
...
implementation
... procedure TForm1.FormCreate(Sender: TObject); begin showmessage(Filepath); end;
...
end.
initialization Filepath := ExtractFilePath(ParamStr(0)) + 'blabla.xml'; finalization |
haentschman - So 25.10.15 09:07
Moin... :P
Globale Variablen sind in er heutigen Zeit nicht mehr up to date... um es mal vorsichtig auszudrücken. Mache dir doch ein Datenobjekt mit den gesamten Einstellungen des Programmes. Das Objekt selbst regelt das Laden und speichern. Damit hast du einen zentralen Punkt... es gibt mit Sicherheit mehr als eine Einstellung. :tongue:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!