Ich habe eine eigene Komponente, die Parameter bei der Initialisierung aus einer INI-Datei nachladen soll. Der Name der INI-Datei soll auf der Basis des Dateinamens der EXE-Datei lauten.
Dazu ermittle ich diesen im Create-Constructor.
Code: Alles auswählen
MyAppname:=paramstr(0);
MyIniFileName:=ExtractFilePath(MyAppname)+ExtractFileName(MyAppname)+'_1.INI';
FIniFileName:=MyIniFileName;
Wenn ich die Komponente in der IDE auf das Formular ziehe, dann gibt mir paramstr(0) natürlich die Lazarus.exe zurück. Starte ich das übersetzte Programm, dann allein, dann ist paramstr(0) mein Programmname und alles passt.
Wie bekomme ich heraus, ob der Create-Constructor durch das Hinzufügen meiner Komponente zum Formular in der IDE aufgerufen wird oder beim Start des Programms?
Oder gibt es eine andere Möglichkeit einer eigenen Komponente eine INI-Datei mitzugeben?
Hintergrund (Was will ich machen?):
Es gibt in einem Verzeichnis mehrere Programme (z.B. Otto_1.EXE, Otto_2.EXE, Otto_3.EXE).
Wenn es in dem Verzeichnis eine Datei Otto.INI gibt, verwenden alle drei Programme diese Datei. Wenn es diese Otto.INI nicht gibt, dann verwendet jedes Programm seine eigene Konfiguration (Otto_1.INI, Otto_2.INI, Otto_3.INI).
Außerdem soll es möglich sein, über Kommandozeilen-Parameter ( z.B. -UserKonfigFile Fritz.INI ) eine eigene Konfigurationsdatei zu verwenden.
Sollte ein Programm z.B. Otto_1.EXE keine Konfigurations-Datei finden, dann legt es sich eine eigene Datei (Otto_1.INI) an, die Default-Werte beinhaltet.
.