Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#22

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:25
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
  Mit Zitat antworten Zitat