Schrieb irgend wer was von
Result := TFormSettings.ShowModal = mrOk;
Result := NameDesFormularsFuerDieEinstellungen.ShowModal = mrOk;
nicht:
Result := TypDesFormularsFuerDieEinstellungen.ShowModal = mrOk;
Heißt Dein Hauptformular tatsächlich Application und ist vom Typ TApplication?
Ausgehend von Deinem Quelltext der
DPR wird das Einstellungsformular dort nicht erstellt, also kannst Du auch nicht darauf zugreifen.
Da das Programm vom Typ TApplication ist, kannst Du kaum ein Formular vom Typ TApplication produzieren, ohne dadurch massiv Probleme zu bekommen.
Poste doch bitte den realen Quelltext der
DPR und kein Beispiel, wie es aussehen könnte.
Und wenn Du eindeutige Namen abänderst vor dem Posten, dann ersetze sie bitte durch sinnvolle Namen und nicht durch solche, die zu Konflikten führen müssen.
So könnte die
dpr aussehen:
Delphi-Quellcode:
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.Title := 'Ein sinnvoller Titel für die Taskbar';
Application.CreateForm(TfmMain, fmMain);
Application.CreateForm(TfmEinstellungen, fmEinstellungen);
if fmMain.CheckIni then Application.Run;
end;
Und im Hauptformular:
Delphi-Quellcode:
function TfmMain.CheckIni : Boolean;
begin
if not FileExists(ChangeFileExt(Application.ExeName,'.ini')) then
begin
// Du musst hier dafür sorgen, dass das Einstellungsformular auch einen passenden Rückgabewert hat.
// Buttons haben dafür z. B. die Eigenschaft ModalResult.
Result := fmEinstellungen.ShowModal = mrOK;
end;
end;
@DeddyH
Zitat:
Was soll denn die Zeile "Application.Create" bewirken?
Wir ersetzen eindeutige Namen durch unsinnige, um die Verwirrung zu maximieren
@a.def
Wenn die INI fehlt soll aber der Einstellungsdialog erscheinen, um sie zu erstellen und das Programm dann mit sinnvollen Einstellungen laufen. Wird es an der von Dir benannten Stelle beendet, bekommt man die Einstellungen nicht zustande und das Programm wird nie laufen