![]() |
Prog bleibt beim Beenden hängen
Grüße DP-Community ;)
Unwissender sucht Wissenden Also ich habe den Übeltäter, bzw. den Hergang schon beim Debuggen entdeckt. Und zwar, wenn ich auf ausloggen drücke, dann wird folgende Proceduren ausgelöst:
Delphi-Quellcode:
procedure TForm1.btnCloseClick(Sender: TObject);
begin btnStart.Enabled := true; btnClose.Enabled := false; equalTimer.Enabled := false; Logout; ActionList.Items.Add('@'+FormatDateTime('hh:mm', Now) + ': Logout erfolgreich!'); exit; end;
Delphi-Quellcode:
Danach kann es sein, das er gerade in der Bewegungs-Prozedur war.
procedure TForm1.LogOut;
var browser: TWebBrowser; begin browser := TWebBrowser.Create(nil); browser.ParentWindow := HWND(HWND_MESSAGE); browser.Navigate('http://88.198.6.23/freewar/internal/logout.php'); repeat Sleep(50); Application.ProcessMessages; until browser.ReadyState >= READYSTATE_COMPLETE; browser.Free; end; Hier ist nun das Dilemma, das er die Repeat-Schleife nicht mehr verlässt, und somit das Programm auch nicht normal beendet werden kann. Ich weiß aber nicht, wie ich dies verhindern kann.
Delphi-Quellcode:
procedure TForm1.move(a: string);
var _move: TWebBrowser; begin { destination: MoveLeft MoveRight MoveUp MoveUpLeft MoveUpRight MoveDownLeft MoveDownRight MoveDown } a:= 'javascript:'+a+'()'; _move := TWebBrowser.Create(nil); _move.ParentWindow := HWND(HWND_MESSAGE); _move.Navigate('http://88.198.6.23/freewar/internal/map.php'); repeat Sleep(50); Application.ProcessMessages; until _move.ReadyState >= READYSTATE_COMPLETE; _move.Navigate(a); repeat // In dieser Schleife Sleep(50); // bleibt er manchmal hängen Application.ProcessMessages; // until _move.ReadyState >= READYSTATE_COMPLETE; // _move.Free; end; MfG |
Re: Prog bleibt beim Beenden hängen
Setz doch einfach in der logout prozedur eine globale Variable die du im Until-Teil mit Abfragst um aus der Schleife auszusteigen.
|
Re: Prog bleibt beim Beenden hängen
Mmh das klingt logisch. Manchmal sieht man den Wald vor lauter Bäumen nicht ;)
Ich bin gespannt, ob es noch andere Methoden gibt, dem Dilemma zu entgehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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