Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Neustart (https://www.delphipraxis.net/113217-neustart.html)

larsder4 4. Mai 2008 19:30


Neustart
 
Hey Leute,

ich hab mal ne kleine dumme Frage, die Antwort wurde hier sicher schon 100 Mal geschrieben, aber ich weiß nicht, wonach ich suchen soll...

Wie kann ich mein Programm neustarten, also an den Anfang zurücksetzen, sozusagen FormCreate noch einmal ausführen...

Ihr wisst schon was ich meine :wink:

Danke im Vorraus
Lars

mkinzler 4. Mai 2008 19:36

Re: Neustart
 
Einfach
Delphi-Quellcode:
Form.Free;
Form := <Form-Klasse).Create;

toms 4. Mai 2008 19:45

Re: Neustart
 
Zitat:

Zitat von mkinzler
Einfach
Delphi-Quellcode:
Form.Free;
Form := <Form-Klasse).Create;

Dies funktioniert jedoch nur mit Unterforms. Bei der Hauptform jedoch nicht.

larsder4 4. Mai 2008 19:47

Re: Neustart
 
Es soll aber im Hauptform sein.
Ich kam mit dem Vorschlag auch nicht so recht weiter...

Mein Quelltext sieht ungefähr so aus:

Delphi-Quellcode:

if MessageDlg('Noch einmal?', mtWarning, [mbYes, mbNo], 0) = mryes then
begin
//Neustart
end
else
Form1.Close;

Fussball-Robby 4. Mai 2008 19:48

Re: Neustart
 
Wilst du die ganze Anwendung neustarten? Das ginge so:
Delphi-Quellcode:
procedure Neustart;
begin
  PostMessage(Application.Handle, WM_CLOSE, 0, 0);
  ShellExecute(0, 'open', PChar(ParamStr(0)), nil, nil, SW_SHOW);
end;
Mfg

mkinzler 4. Mai 2008 19:50

Re: Neustart
 
Man könnte auch nur .Create() noch einmal aufrufen, dann wird es nicht als Konstruktor, sondern als Klassenmethode angewendet

tomsel 4. Mai 2008 19:54

Re: Neustart
 
Warum willst du denn unbedingt FormCreate noch mal ausführen? Du könntest doch einfach eine Methode schreiben, die bei Klick auch "Nochmal" alles "auf Anfang" setzt, ohne Neustart. Diese würde ich dann zusätzlich auch aus FormCreate aufrufen.

larsder4 4. Mai 2008 20:02

Re: Neustart
 
Das war nur mein erster Gedanke mit dem FormCreate.

Wie sollte das denn ungefähr aussehen?


Bei dem Vorschlag von mkinzler

Delphi-Quellcode:
Form1.Create(); //wenn er das so meinte
kommt die Meldung: Nicht genügend wirkliche Parameter.
Allerdings weiß ich nicht so recht, was in die Klammern muss (Sender: TObject) geht ja nicht.

mkinzler 4. Mai 2008 20:06

Re: Neustart
 
Delphi-Quellcode:
Form1.Create( Form1.Owner);

Fussball-Robby 4. Mai 2008 20:08

Re: Neustart
 
Frage: Was willst du damit überhaupt erreichen? Es gibt bestimmt einen besseren Weg, als das Create nochmal aufzurufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 Uhr.
Seite 1 von 2  1 2      

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