AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Überprüfung bei Programmstart

Ein Thema von Freyr77 · begonnen am 22. Dez 2016 · letzter Beitrag vom 22. Dez 2016
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 11:24
Delphi-Quellcode:
begin
  if (not FileExists(ExtractFilePath(Application.ExeName) + 'Test.INI')) then
  begin
    //Einstellungen-Fenster öffnen, Daten selbst eintragen, Übernehmen -> Programm starten
    ShowMessage('Ini-Datei nicht gefunden. Daten im nächsten Schritt selbst eintragen.');
    TFormEinstellungen.Create(Application).Show;
  end;
end;
Edit:
und Action := caFree; ins OnClose von TFormEinstellungen.
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod (22. Dez 2016 um 11:30 Uhr)
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#12

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 11:34
mache so etwas so:

Delphi-Quellcode:
Var:
  ProgrammGestartet: Boolean;

im OnCreate:
  ProgrammGestartet := False;

im OnShow:
  if not ProgrammGestartet then
  begin
    PrüfeObIniDatei
    if NotIniDatei
    begin
      Abfragen
    end;
  end;
Und ja - das geht bestimmt besser und eleganter, aber ich programmiere immer noch in Delphi 6.0

Hans
Ich würde eher eine Kombination aus WMFormVisible und Paint nehmen.
http://www.delphipraxis.net/190560-f...-zu-sehen.html
  Mit Zitat antworten Zitat
Freyr77
(Gast)

n/a Beiträge
 
#13

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 12:26
Delphi-Quellcode:
begin
  if (not FileExists(ExtractFilePath(Application.ExeName) + 'Test.INI')) then
  begin
    //Einstellungen-Fenster öffnen, Daten selbst eintragen, Übernehmen -> Programm starten
    ShowMessage('Ini-Datei nicht gefunden. Daten im nächsten Schritt selbst eintragen.');
    TFormEinstellungen.Create(Application).Show;
  end;
end;
Edit:
und Action := caFree; ins OnClose von TFormEinstellungen.
Es kracht immer wenn ich versuche die Einstellungen Form zu öffnen. Selbst wenn ich sie vorher "Create". Ich verstehs nicht.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Überprüfung bei Programmstart

  Alt 22. Dez 2016, 12:38
Zeig mal, wie Du es machst.
Und die Krachermeldung.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#15

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
 
#16

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.537 Beiträge
 
Delphi 11 Alexandria
 
#17

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
 
#18

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
 
#19

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.537 Beiträge
 
Delphi 11 Alexandria
 
#20

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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:36 Uhr.
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