Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi While Schleife auf globalen Tastendruck abbrechen (https://www.delphipraxis.net/141298-while-schleife-auf-globalen-tastendruck-abbrechen.html)

Fredyy 6. Okt 2009 20:45


While Schleife auf globalen Tastendruck abbrechen
 
Hi,

ich suche eine Möglichkeit eine Whileschleife durch bestimmte Bedingungen oder via Tasten-Kombinationdruck (ganz Windows) zubeenden.

So z.B STRG+S(top) soll die Schleife beim nächsten durchlauf abbrechen und das Programm weiter laufen lassen, solange STRG+S jedoch nicht gedrückt wird soll die Schleife weiterlaufen, bis ihre "normale" Bedingung erfüllt ist.

Gibt es eine Möglichkeit ohne aufwendige Keyhooks?

Danke für eure super Hilfe hier im Forum.

gruß,
Fredyy

taaktaak 6. Okt 2009 20:48

Re: While Schleife auf globalen Tastendruck abbrechen
 
... innerhalb der Schleife aufrufen:
Delphi-Quellcode:
if (GetAsyncKeystate(VK_ESCAPE))<>0 then Break; // << Abbruch

SirThornberry 6. Okt 2009 20:55

Re: While Schleife auf globalen Tastendruck abbrechen
 
vielleicht wäre anstelle einer Schleife auch ein Timer bei dir angebrachter.
Anstelle der Abfrage mit GetAsyncKeystate wäre ein Hotkey auch eine Möglichkeit. Dies hätte den Vorteil das im anderen Programm die Tasten nicht verarbeitet werden.

taaktaak 6. Okt 2009 20:57

Re: While Schleife auf globalen Tastendruck abbrechen
 
.. der Möglichkeiten gibt es meist mehrere.
:-D

Wolfgang Mix 6. Okt 2009 21:06

Re: While Schleife auf globalen Tastendruck abbrechen
 
Delphi-Quellcode:
If <Bedingung> then break
(Ausstieg aus der Schleife)
oder
Delphi-Quellcode:
If <Bedingung> then halt; (Programm beenden)
Gruß

Wolfgang

mkinzler 6. Okt 2009 21:07

Re: While Schleife auf globalen Tastendruck abbrechen
 
Ich würde eher die Abbruch-/Fortsetzungsbedingung entsprechend erweitern


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 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 by Thomas Breitkreuz