Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Programm per klick neustarten! (https://www.delphipraxis.net/85829-programm-per-klick-neustarten.html)

Tobias2610 5. Feb 2007 16:35

Re: Programm per klick neustarten!
 
diese seite hilft mir leider keinen meter weiter!

sirius 5. Feb 2007 16:42

Re: Programm per klick neustarten!
 
Zitat:

Zitat von Tobias2610
diese seite hilft mir leider keinen meter weiter!

Was genau hilft dir denn daran nicht weiter :gruebel: ?

Tobias2610 5. Feb 2007 17:03

Re: Programm per klick neustarten!
 
ich weiß einfach nicht, was ich noch an dem shell sowieso ändern soll und außerdem weiß ich nit nach was ich suchen soll!!!!! :?:

ichbins 5. Feb 2007 17:13

Re: Programm per klick neustarten!
 
Ahlso du musst bei shellexecute meherere Parameter angeben. Shellexecute ist ein Befehl der dierekt von der WindowsAPI ist, also ist er ziemlich kompliziert und umständlich und hat Funktionen die du garnicht brauchst.

Der erste Parameter erlaubt dir das Fensterhandle des Programmes anzugeben, von dem es gestartet wurde (oder so glaube ich *g*). Der ist für dich unwichtig, gib einfach Null an.

Im zweiten Parameter kannst du den Typ der Operation die du machen willst als String angeben, du willst ein Programm öffnen, allso nimmst du 'open'.

Als drittes musst du den Dateinamen der Datei angeben, und zwar als pansichar. Das ist sowas ähnliches wie ein String, und Delphi kann es umwandeln: pansichar(application.exename).

In Parameters kannst du alle Parameter angeben, mit der du dein Programm startest. Die sind noch hauptsächlich aus DOS-Zeiten geblieben, werden aber manchmal heute immer noch benutzt (von mir z.B.). Das kannst du auch leer lassen, also einfach '' reinschreiben.

In Directory kannst du das Verzeichniss in dem das Programm ausgeführt wird angeben, fallst du es nicht ändern willst, lässt du hier auch frei: ''

In ShowCmd kannst du festlegen ob das Programm Maximiert oder Minimiert gestartet wird. Um in Standardeinstellungen zu starten schreib einfach 0.


Also:
Delphi-Quellcode:
shellexecute(0,'open',pansichar(application.exename),'','',0); //Programm neustarten
application.terminate; //Programm schließen.
//Du kannst auch zum besonders brutalen Beenden den Befehl halt(0) verwenden.
//Oder close, dann wird die onclose-Prozedur der Form noch ausgeführt.

Ich halte deine Arbeitsweise aber trotzdem für unsauber. Es wäre schonender für den Rechner wenn du alle Einstellungen so zurücksetzt (ok, für dich vllt nicht so schonend...)

DP-Maintenance 5. Feb 2007 20:41

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.

SirThornberry 5. Feb 2007 20:50

Re: Programm per klick neustarten!
 
Zitat:

Zitat von Tobias2610
Ich habe ein programm mit diagrammen und textfeldern, die ich gerne zurück setzen würde. ein befehl der alles zurücksetzt ohne neustart ist sau kompliziert!

Delphi steht für Objectpascal! Dein Form1 ist also eine Instanz von TForm1. Wenn du wieder den Ausgangszustand willst brauchst du also nur eine neue Instanz erstellen und die alte verwerfen und musst nicht gleich den ganzen Prozess neu starten.

Tobias2610 6. Feb 2007 13:35

Re: Programm per klick neustarten!
 
Much THX "Ich" bins jetzt klappts!!!!!!!!!!!!!!!!!!!!!!!!!!!!

:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.
Seite 2 von 2     12   

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