![]() |
Form nur beim ersten mal starten anzeigen
Wie realisiere ich das, dass zB. Form10 nur beim ersten Starten des Programmes kommt?
Also nur beim 1 Mal. Gruss HW764 |
Re: Form nur beim ersten mal starten anzeigen
Hi Kevin!
Überprüf beim Start eine Ini-Datei, in welcher ein Wert gesetzt sein muss, damit Form10 nicht angezeigt wird. Diese Überprüfung kannst du auch in der dpr-Datei deines Projektes erledigen, und dann mit einer if-Abfrage das richtige Form erstellen und anzeigen. Greetz alcaeus |
Re: Form nur beim ersten mal starten anzeigen
Hi,
kann mir mal jemand auf die Sprünge helfen. Habe gerade die Frage und die Antwort gelesen. Eine Form10 soll einmal angezeigt werden. Verstehe ich nicht oder ist mir das zu einfach. Die Lösung mit der Ini-Datei kapiere ich auch nicht. Mann kann ja auch ein Thread generieren, der nach einer bestimmten Zeit ein Spawn-Prozeß erzeugt, der den Hauptprozeß dann killt. Wo ist also das Problem? Kay |
Re: Form nur beim ersten mal starten anzeigen
Beim ersten Starten des Programms soll ein Konfigurationsmanager gestartet werden (Form10)
Diese soll beim 2 ten Start nicht mehr kommen. Gruss HW764 |
Re: Form nur beim ersten mal starten anzeigen
Hi Kay, Hi Kevin,
die Lösung ist einfacher als ihr denkt. Sehen wir uns mal eine dpr-Datei an:
Delphi-Quellcode:
Natürlich werden in Kevins Projekt mehrere Units in der uses-Klausel stehen. Das Hauptprogramm muss nun so geändert werden, dass je nach Bedarf Form1 oder Form10 angezeigt wird:
program Project1;
uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.
Delphi-Quellcode:
Die Bedingung wäre hier ein Flag in einer ini-Datei, welches du mit Hilfe der Unit IniFiles und dem TIniFile-Typ auslesen kannst. Dazu müsste es hier genug geben.
begin
Application.Initialize; if (Bedingung) then Application.CreateForm(TForm1, Form1) else Application.CreateForm(TForm10, Form10); Application.Run; end. Da ich heute aber einen guten Tag (und nicht zu tun ;)) habe, will ich hier noch ein bisschen Source springen lassen
Delphi-Quellcode:
Auf Resourcenschutzblöcke habe ich der Einfachkeit halber verzichtet.
uses Forms,..., IniFiles;
var IniFile: TIniFile; ProgRun: Boolean; begin Application.Initialize; IniFile := TIniFile.Create(Pfad_zur_Datei) ProgRun := IniFile.ReadBool('Section', 'ProgRun', False); if ProgRun then Application.CreateForm(TForm1, Form1) else Application.CreateForm(TForm10, Form10); IniFile.WriteBool('Section', 'ProgRun', True); IniFile.Free; Application.Run; end. Hoffe das klärt eure Probleme... Greetz alcaeus |
Re: Form nur beim ersten mal starten anzeigen
Naja, wenn es sowieso schon um einen Konfigurations-Dialog geht, dann mach es doch so.
Wo auch immer Du die Konfiguration speichern willst (INI, Registry, oder eigene Datei), prüfst Du beim Starten der Anwendung, ob diese Konfigurations-Daten vorhanden sind (z.B. per fileexists, bei Dateien), wenn nicht, dann öffnest du den Dialog, damit eine Konfiguration eingestellt wird, ansonsten liest du die vorhandene Konfiguration ein, und startest die Anwendung. Ich denke, Du solltest als Kriterium nicht den allerersten Start nehmen, sondern die Verfügbarkeit der Konfigurationsdaten. Gruß |
Re: Form nur beim ersten mal starten anzeigen
Hi Christian!
Du hast natürlich Recht, als Kriterium sollte nicht der erste Start, sondern das Vorhandensein der Konfigurationsdaten verwendet werden. Dieser Code
Delphi-Quellcode:
Liefert allerdings auch False zurück, falls der Eintrag nicht vorhanden ist. Wenn ich nun das Programm ausführe, dann beende, die Ini-Datei bearbeite und den Eintrag "ProgRun" lösche, so wird beim nächsten Start wieder Form10 angezeigt. Die Lösung mit FileExists würde dem Code natürlich noch den letzten Schliff verleihen :zwinker:
ProgRun := IniFile.ReadBool('Section', 'ProgRun', False);
greetz alcaeus |
Re: Form nur beim ersten mal starten anzeigen
Hi alcaeus,
da hast Du natürlich Recht, sehe ich genauso, wir haben unsere Beiträge anscheinend zeitgleich geschrieben. :lol: Zumindestens habe ich Deinen Beitrag noch nicht gesehen, als ich auf "Anworten" geklickt habe. Eigentlich sollte Deine Lösung schon ausreichen..... Gruß |
Re: Form nur beim ersten mal starten anzeigen
Also, wie geht die source von:
1. Suche im Ordner in dem du bist die ini "einstellungen.ini" 2. Lese aus der ini: "[Einstellungen] Firststart=true" 3. Dann zeige form10 an. 4. Wenn ["Einstellungen] Firststart=false" steht 5. Zeige form 1 an. |
Re: Form nur beim ersten mal starten anzeigen
Hi Kevin,
Zitat:
Sorry, das musste raus Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 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