Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Überprüfung bei Programmstart (https://www.delphipraxis.net/191227-ueberpruefung-bei-programmstart.html)

a.def 22. Dez 2016 13:21

AW: Überprüfung bei Programmstart
 
Mach es doch einfach so wie beschrieben.

- prüfe in der Ini-Datei FRÜH GENUG, ob die Ini-Datei vorhanden ist.
-- wenn nicht, dann merke dir das in einer Variablen oder beende das Programm

- wenn Ini nicht vorhanden und du es dir merkst, dann behandle diese Variable im WMFormVisible nachdem die Anwendung komplett geladen wurde (habe ich oben ja bereits geschrieben)

nahpets 22. Dez 2016 13:25

AW: Überprüfung bei Programmstart
 
Schrieb irgend wer was von
Delphi-Quellcode:
Result := TFormSettings.ShowModal = mrOk;


Delphi-Quellcode:
Result := NameDesFormularsFuerDieEinstellungen.ShowModal = mrOk;


nicht:

Delphi-Quellcode:
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 ;-)

Freyr77 22. Dez 2016 13:26

AW: Überprüfung bei Programmstart
 
Funktioniert jetzt.

Poste später nochmal wie ich es gemacht habe. Sorry für die Verwirrung mit den Namen ;)

Danke!

a.def 22. Dez 2016 13:27

AW: Überprüfung bei Programmstart
 
Zitat:

Zitat von nahpets (Beitrag 1356999)
@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 ;-)

Deswegen mein Vorschlag mit dem "Status merken" und "WMFormVisible".

haentschman 22. Dez 2016 13:55

AW: Überprüfung bei Programmstart
 
Hallöle...:P
Delphi-Quellcode:
TFormSettings.ShowModal
müßte es nicht FormSettings.ShowModal heißen?

Wenn es so wäre dann empfehle ich dir den OOP Crashkurs... https://www.delphi-treff.de/tutorial...phi-crashkurs/ :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:25 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz