Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anwendung versteckt starten und mit Bedingung beenden (https://www.delphipraxis.net/86238-anwendung-versteckt-starten-und-mit-bedingung-beenden.html)

Frighty 11. Feb 2007 14:02


Anwendung versteckt starten und mit Bedingung beenden
 
Hallo!

Ich möchte, dass sich ein Programm erst dann ausführen lässt bzw. Form1 öffnet, wenn eine Bedingung erfüllt wurde.
In diesem Falle soll das Programm erst starten, wenn die Bildschirmauflösung höher ist als 800x600 Pixel. Sollte dies nicht der Fall sein, soll ein MessageDlg angezeigt werden, und das Programm soll sich danach automatisch schließen.

Bisher sieht mein Versuch so aus:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
If (Screen.Monitors[0].Width<=800) or (Screen.Monitors[0].Height<=600) then
begin
Application.ShowMainForm:=false;
Beep;
MessageDlg('Diese Bildschirmauflösung wird nicht unterstützt', mterror, [mbok], 0);
Form1.Close;
end;
end;
Problem ist, dass sich die Anwendung im Falle der zu niedrigen Auflösung trotz Anweisung Form1.Close nicht schließt sondern unsichtbar weiter ausgeführt wird.

Außerdem ist die Bedingung nicht direkt unter Form1.FormCreate setzbar, da das Programm in diesem Falle beim Starten einen Fehler anzeigt und beendet werden muss.

Kann mir jemand weiterhelfen?

Luckie 11. Feb 2007 14:07

Re: Anwendung versteckt starten und mit Bedingung beenden
 
Überlegen wir doch mal: Du steigst in dein Auto ein und willst aber gleichzeitig wieder ausstigen. Kann das funktionieren? Entweder steigst du erst ein und steigst dann wieder aus oder du steigst erst gar nicht ein. Oder kurz: Schreib den Cod ein die Projektdatei bevor das Formular erzeugt wird.

blackdrake 11. Feb 2007 14:23

Re: Anwendung versteckt starten und mit Bedingung beenden
 
Hallo und willkommen in der DP. Du kannst das ganze im OnShow() Ereignis abfragen oder in Projekt1.dpr. Dort kannst du vor den FormCreate()-Aufrufen eine Abfrage erstellen und das Programm sofort beenden (beachte, dass Projekt1.dpr die erforderlichen Uses-Einträge braucht). Ich empfehle eine solche Abfrage im OnShow() des MainForms, dort kannst du MainForm.Close() anwenden.

SirThornberry 11. Feb 2007 15:06

Re: Anwendung versteckt starten und mit Bedingung beenden
 
ich empfehle für sowas NICHT onShow da dies nicht einmalig augerufen wird sondern immer wieder wenn eben ein Show aufgerufen wird. Ich bin für die Projektedatei selbst. Aber auch im OnCreate des Forms geht das. Nur wie luckie bereits erwähnt hat macht ein Close dort keinen Sinn. Entweder du killst mit Halt oder TerminateProcess dein Programm oder du rufst Application.Terminate auf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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