Autor Beitrag
Querkopf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31

Win XP SP2
Turbo Delphi 2006 Explorer
BeitragVerfasst: Sa 08.03.03 13:54 
Hallo,

ich habe folgendes Problem:

Wenn ich mein Programm starte, überprüft es vorher, ob eine Ini-Datei existiert. Gibt es sie, wird das Programm mind. zum 2. Mal gestartet, und zwar mit den gespeicherten Einstellungen.
Gibt es sie nicht, soll das Programm ein zweites Fenster aufrufen, in dem man zum ersten Mal die gewünschten Einstellungen macht, die dann in die Ini-Datei gespeichert werden. Jetzt mein Problem : Ich kann während des FormCreates meines Hauptfensters nicht auf das Fenster Einstellungen zugreifen. Von den Variablendeklarationen hab ich abgesehen, daran liegts nicht. Ich habe folgenden Code :

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure THaupt.FormCreate(Sender: TObject);
begin
  if FileExists(IniFileName) then
  .
  .
  else
    begin
      Haupt.Enabled := False;
      Einstellungen.Show;
    end;
.
.
end;


Ich bekomme beim Programmstart leider nur eine Zugriffsverletzung :(

Und wenn ich grad dabei bin: Kann ich in die Variable Ini-File einen Parameter einfügen, so dass die Ini direkt in das Verzeichnes der Exe gespeichert wird, ohne dass ich einen absoluten Pfad angeben muss?

Gruss, Pierre
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Sa 08.03.03 14:14 
Schau mal in deine Projektoptionen unter Formulare. Dein Hauptanwendung wird als erstes erstellt - und in der Erstellungsmethode Create() ruft du ein Fenster mit Show() auf, welches noch garnicht existiert. Daher die Fehlermeldung.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Procedure THaupt.FormCreate();
begin
  if exists()...
  else
    try
      Einstellungen:= TEinstellungen.Create(Self);
      Einstellungen.ShowModal;
   Finally
     Einstellungen.free;
   ...
end;


Achte darauf, das ein Einstellungsfenster NICHT automatisch erstellt wird.

Deine zweite Frage:
...
INIFileName:= ExtractFilePath(ParamStr(0))+'TEST.INI';
...

Grüße
MSCH
Querkopf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31

Win XP SP2
Turbo Delphi 2006 Explorer
BeitragVerfasst: Sa 08.03.03 14:25 
thxle :D
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 08.03.03 14:44 
Du kannst auch

INIFileName:= ChangeFileExt(ParamStr(0), '.INI');

nehmen. In diesem Fall hat die Ini den gleichen Namen wie das Programm und ist im gleichen Verzeichnis.

_________________
Popov