![]() |
Programm lässt sich nicht beenden
Hi
Ich habe ein Programm, welches normal gestartet werden kann und welches über das Kontextmenü aufgerufen werden kann. Dabei überprüft das Programm am Anfang, ob sich etwas im ParamStr(1) befindet. In dem Falle wäre das Programm über das Kontextmenü aufgerufen worden und dann soll es nur eine subprozedur ausführen und sich dann beenden. Andernfalls soll es das MainForm Zeigen wo man dann eben an die Einstellungen kommt. Hier mal der Code:
Delphi-Quellcode:
Das Problem liegt daran, dass es das close nach dem subprogramm einfach ignoriert und trotzdem die Aufgaben im else-Teil abarbeitet. Das soll aber nicht sein!
procedure TForm1.FormCreate(Sender: TObject);
begin if ParamStr(1) <> '' then begin ShowMessage('Sub-Programmstart'); subprogramm; close; ShowMessage('Programm konnte nicht geschlossen werden!'); end else ERegistry; ShowMessage('Programmstart'); Form1.Visible := true; end; Wie kann ich das so machen, dass es falls der ParamStr(1) etwas enthält, das Programm unsichtbar das subprogramm ausführt? Man muss dazu sagen ich bin anfänger und tue mir noch etwas schwer :angel2: |
Re: Programm lässt sich nicht beenden
Du kannst kein Programm nicht in dem OnCreate Ereignis beenden oder verstecken.
Ich lös das immer mit nem Timer. |
Re: Programm lässt sich nicht beenden
Gehl mal in die Projektdatei (.dpr), dort einfach die Zeilen mit Application überspringen, wenn etwas anderes gmacht werden soll
Delphi-Quellcode:
Begin
If ParamStr(1) = ... Then Begin was anderes... End Else Begin Application... ... End; End; |
Re: Programm lässt sich nicht beenden
Gibt es dann vielleicht ne vorgeschaltete Funktion oder so? Oder kann ich das Form1. irgendwie hinterher aufrufen? Für mich siehts so aus, als ob der einfach den else-abschnitt ausführt, auch wenn die Bedingung dafür nicht erfüllt ist, da die ShowMessage erscheint.
@ himitsu: Sorry, ich versteh leider nicht was du meinst :| |
Re: Programm lässt sich nicht beenden
zu radons verteidigung: ich auch nicht
|
Re: Programm lässt sich nicht beenden
Projekt -> Quelltext anzeigen und dort kommt Himis Code hinein.
|
Re: Programm lässt sich nicht beenden
weiss zwar nicht, ob radon geholfen ist, aber ich würde gerne wissen, was ich damit mache
|
Re: Programm lässt sich nicht beenden
Zitat:
Delphi-Quellcode:
Dieses begin - end wird gleich am Anfang des Programmstarts ausgeführt. Möchtest du also Dinge direkt dort beinflussen, dann kannst du hier schon eingreifen.
program Project1;
uses Forms, Unit1 in 'Unit1.pas' {FrmMain}; {$R *.res} begin Application.Initialize; Application.CreateForm(TFrmMain, FrmMain); Application.Run; end. |
Re: Programm lässt sich nicht beenden
ah danke
|
Re: Programm lässt sich nicht beenden
Ich würd mir als erstes mal deinen ELSE-Teil näher angucken. Dort fehlt meines Erachtens nach ein BEGIN..END-Block. So steht im ELSE-Teil nämlich nur ERegistry. Aber ich vermute mal das die beiden nächsten Zeilen eigentlich auch dazugehören sollen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04: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