![]() |
Info-Fenster nachträglich vor Programm anzeigen
Ein herzliches Servus, ich komme einfach nicht weiter :(
Ich möchte ein bestehendes Programm um ein Info-Fenster (frmInfo) ergänzen. Dieses soll bei Programmstart angezeigt werden. Auch wenn ich in Projekt/Optionen/Formulare als Hauptformular frmInfo auswähle, so erscheint trotzdem frmStart als erstes und frmInfo liegt hinter dem frmStart. Wenn ich frmStart als Hauptfenster lasse und in frmStart versuche mit frmInfo.ShowModal(); in FormActivate anzuzeigen bekomme ich die Fehlermeldung :Zugriffsverletzung bei Adresse 01206A82 in ... Aufgabe: Vor dem bestehenden Programm sollen nun einige Informationen wie z.B. Anzahl offener Rechnungen angezeigt werden und erst nach Bestätigung mit dem Button-OK im Info-Fenster soll das eigentliche Programm verwendet werden können. Für jede Info bin ich euch dankbar LG Roman |
AW: Info-Fenster nachträglich vor Programm anzeigen
Hallo,
wenn ich Dich richtig verstehe, soll das Fenster vor der eigentlichen Main-Form angezeigt werden. Dazu muß die Projektdatei *.dpr bearbeitet werden. Nur als Anregung:
Code:
sleep ist da natürlich nicht wirklich gut, sorgt aber dafür, daß frmIntro wenigstens
uses
Forms, sysutils, xxxMain in 'xxxMain.pas' {frmMain}, ... usw {$R *.res} begin frmIntro:=TfrmIntro.Create(Application); frmIntro.Show; frmIntro.Update; sleep(1000); Application.Initialize; Application.CreateForm(TfrmMain, frmMain); ... usw frmIntro.Close; frmIntro.Release; Application.Run; end. eine Sekunde zu shen ist. |
AW: Info-Fenster nachträglich vor Programm anzeigen
Super ....
Funktioniert, ich habe nur noch Show in ShowModal geändert und sleep(1000) entfernt. Jetzt wird das Info-Fenster solange angezeigt bis der OK-Button gedrückt wird. ( frmInfo.CloseModal; ) Erst dann wird das 'eigentliche Programm' ausgeführt - echt super! :thumb: Danke für die rasche Hilfe :thumb: |
AW: Info-Fenster nachträglich vor Programm anzeigen
... freut mich, das war die gute Tat für heute
|
AW: Info-Fenster nachträglich vor Programm anzeigen
Zitat:
Wo erzeugst du denn dein frmInfo. Wenn du es automatisch erzeugen lässt, ist es an dieser Stelle möglicherweise noch nicht vorhanden. Also besser manuell erzeugen, wenn es gebraucht wird. Also im FormActivate vom frmStart:
Delphi-Quellcode:
Und dann noch mit einem Flag dafür sorgen, dass dieser Code nur beim ersten FormActivate nach dem Programmstart ausgeführt wird. Ich finde das eleganter als den Weg über die .dpr, weil man dann alles zusammen hat.
frmIntro:=TfrmIntro.Create(nil);
try frmIntro.Show; finally frmInfo.Free; end; |
AW: Info-Fenster nachträglich vor Programm anzeigen
Zitat:
|
AW: Info-Fenster nachträglich vor Programm anzeigen
Wenn überhaupt dann so
Delphi-Quellcode:
frmIntro:=TfrmIntro.Create(nil);
try frmIntro.ShowModal; // MODAL! finally frmInfo.Free; end; |
AW: Info-Fenster nachträglich vor Programm anzeigen
Ja, ja, ist ja gut.
Ich meinte natürlich ShowModal |
AW: Info-Fenster nachträglich vor Programm anzeigen
Könnte man auch etwas kompakter so erledigen:
Delphi-Quellcode:
begin
Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TfrmMain, frmMain); Application.CreateForm(TfrmIntro, frmIntro); // eventuell noch weitere Forms erstellen frmIntro.ShowModal; Application.Run; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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