AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm lässt sich nicht beenden

Ein Thema von Radon · begonnen am 19. Sep 2006 · letzter Beitrag vom 22. Jun 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Radon
Radon

Registriert seit: 15. Mai 2006
29 Beiträge
 
#1

Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 18:55
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:
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;
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!

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
  Mit Zitat antworten Zitat
HalloDu

Registriert seit: 24. Apr 2006
Ort: Oelde
267 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 18:56
Du kannst kein Programm nicht in dem OnCreate Ereignis beenden oder verstecken.
Ich lös das immer mit nem Timer.
Frederic H.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#3

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 19:01
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Radon
Radon

Registriert seit: 15. Mai 2006
29 Beiträge
 
#4

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 19:05
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
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#5

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 19:07
zu radons verteidigung: ich auch nicht
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 19:38
Projekt -> Quelltext anzeigen und dort kommt Himis Code hinein.
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#7

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 19:47
weiss zwar nicht, ob radon geholfen ist, aber ich würde gerne wissen, was ich damit mache
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 19:50
Zitat von dino:
weiss zwar nicht, ob radon geholfen ist, aber ich würde gerne wissen, was ich damit mache
Wie meinst du das? Du hast beispielsweise etwas wie

Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas{FrmMain};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TFrmMain, FrmMain);
  Application.Run;
end.
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.
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#9

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 19:55
ah danke
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Programm lässt sich nicht beenden

  Alt 19. Sep 2006, 19:57
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:20 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