AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Überprüfung bei Programmstart

Ein Thema von Freyr77 · begonnen am 22. Dez 2016 · letzter Beitrag vom 22. Dez 2016
Antwort Antwort
Seite 1 von 2  1 2      
nahpets
(Gast)

n/a Beiträge
 
#1

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 12:47
1. Verlege die Prüfung aus dem Create in eine eigene Methode des Formulars (z. B. TForm1.CheckIni)
2. Füge vor der Zeile Application.Run die Prüfung in die dpr ein.

Z. B.:
if Form1.CheckIni then Application.Run; Ist der Rückgabewert von CheckIni <> true, wird das Programm nicht gestartet.

CheckIni könnte so in der Art aussehen:
Delphi-Quellcode:
function TForm1.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 := FormEinstellungen.ShowModal = mrOK;
  end;
end;
  Mit Zitat antworten Zitat
Freyr77
(Gast)

n/a Beiträge
 
#2

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:00
Result := TFormSettings.ShowModal = mrOk; Hier kracht er wieder bei mir.

Im dpr sieht das jetzt so aus:

Delphi-Quellcode:
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Title := 'Application';
  Application.CreateForm(TApplication, Application);
  Application.Create;

  if Application.CheckIni then
  Application.Run;
end.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:15
Heißt Dein Hauptformular Application? Das ist sehr ungünstig.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#4

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:17
Außerdem würde ich das CheckIni nicht in TForm1 legen sondern diese Funktion direkt in die DPR-Datei schreiben und noch VOR Application.Initialize; aufrufen.

Delphi-Quellcode:
function CheckIni : Boolean;
begin
  Result := FileExists(ChangeFileExt(Application.ExeName,'.ini'));
end;

begin
  if not CheckIni then
   begin
    showmessage('Ini-Datei nicht vorhanden ...');
    Halt(1);
   end;

  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Title := 'Application';
  Application.CreateForm(TApplication, Application);
  Application.Create;
  Application.Run;
end.
  Mit Zitat antworten Zitat
Freyr77
(Gast)

n/a Beiträge
 
#5

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:17
Heißt Dein Hauptformular Application? Das ist sehr ungünstig.
Nein. Ich ändere nur eindeutige Namen ab bevor ich den Code hier poste
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#6

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:19
Was soll den die Zeile "Application.Create" bewirken?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#7

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:21
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)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#8

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:55
Hallöle...
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/
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

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
Freyr77
(Gast)

n/a Beiträge
 
#10

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 13:26
Funktioniert jetzt.

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

Danke!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz