PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : delphi, programm schliessen



pocfreak
27.05.2004, 01:53
hallo!

vielleicht kann mir jemand helfen...

ich möchte ein delphi-programm sofort nach dem ausführen wieder schliessen.

mit nem close-button funktioniert es (prozdur close).
ich möchte aber, dass das fenster von alleine sofort wieder zu geht.

schreibe ich close hinter den programm-text passiert nichts...

SHB
27.05.2004, 07:52
Application.terminate;

MfG Steffen

MiThoTyN
27.05.2004, 09:24
Oder ganz einfach "halt" hinschreiben.
Hat den selben Effekt.

Gruß Joachim

pocfreak
27.05.2004, 13:18
ihr habt mir sehr geholfen!!! :)))

pocfreak
09.06.2004, 00:53
hallo delphi-freaks!

folgendes: ich habe ein programm geschrieben, das in 120 sekunden beendet.
in der zeit wird in einer edit-komponente sekündlich um 1 heruntergezählt.

realisiert habe ich das ganze mit zwei timer-komponenten:
die erste läuft 120 sekunden und beendet dann das programm.
die zweite zählt sekündlich die zahl in der edit-komponente herunter.

läuft auch (fast) super das ganze.

folgendes problem:
lasse ich das proggi unter win XP laufen, so ist alles bestens.
lasse ich es unter win ME laufen (was es eigentlich soll), so beendet das programm ziemlich genau 7 sekunden zu früh!

SHB
09.06.2004, 08:06
Hallo,

also von ME halt ich sowieso nix. Heißt ja schon Multi-Error. ;)
Wenns dennoch ME sein muss, würde ich folgendes probieren:

- 7 sekunden länger machen, also 127 sek. (primitiv)
- die 120 sek den Sekunden-Timer mit machen lassen, also den Timer ne variable zählen lassen und entsprechend dann beenden

Beste Variante ist aber das ME nicht zu nehmen. ;)

MfG Steffen

pocfreak
09.06.2004, 09:49
ja, so habe ich das auch gemacht... nur wie kommt sowas zustande?win me fehler?

noch ne frage: kann man String in PChar umwandeln?

HerosOL10
10.06.2004, 08:36
Hallo PocFreak

Ja das geht:

x:= pchar('Hallo Welt');

MiThoTyN
12.06.2004, 18:58
@PocFreak

Das liegt u.U. daran, das Timer sehr CPU-lastige Komponenten sind. Man sollte immer so wenig Timer wie möglich nehmen.
Außerdem sind Timer nicht immer auf die Millisekunde genau.

Je länger ein Timer eingestellt ist, desto größer ist auch die ungenauigkeit.

Mein Vorschlag : EINEN Timer benutzen, der mit 1000ms läuft.
Dabei soll er sich jedesmal die Systemzeit holen und mit der Startzeit vergleichen. Die Systemzeit ist immer auf die ms genau.
Prüfe einfach ob die Systemzeit sich nach dem Programmstart um 2 Minuten geändert hat und dann beende dein Programm.

Die Anzeige im Textfeld soll ja sicher nur anzeigen, wie lange das Programm noch offen ist, oder ?

Alternativ kannst du auch einfach in den 1000ms Timer nen Zähler reinmachen, der bis 120 zählt und dann beendet.
Das ist aber auch noch recht ungenau.

Kannst mich auch gerne mal per Mail kontaktieren.
Gibt noch einige andere Möglichkeiten.

Gruß Joachim