![]() |
Was muss ich für OnKeyDown/Press in meinem Programm eingeben
Ich möchte in meinem Programm eine Repeat Until SChleife unterbrechen, wenn eine Taste gedrückt wird.
In turbo pascal funktioniert das mit keypressed. in delphi scheint es diese möglichkeit über OnKeyDown bzw. OnKeyPress zu geben. Allerdings weiß ich nicht was dazu im Programmteil deklariert werden muss und wie ich OnKeyDown einfüge (until OnKeyDown=A??). Vielleicht kann mir jemand helfen. Danke. |
Re: Was muss ich für OnKeyDown/Press in meinem Programm eing
Herzlich Willkommen in der DelphiPraxis! :hi:
Du kannst die OnKey-Ereignisse sehr leicht deklarieren, wenn du im Objektinspektor doppelt auf sie klickst. Aber: Wenn du innerhalb deiner Schleife bist, wird dein Programm normalerweise nicht auf Tastatureingaben reagieren, da es voll mit der Schleife zu tun hat. Deshalb solltest du in der Schleife hin und wieder ein
Delphi-Quellcode:
aufrufen. Damit erreichst du, das deine Anwendung auf die Events reagiert, die Windows ihr vermeldet hat. Dann kannst du in der OnKeyXXX-Procedure ein globales Flag setzen, um deine Schleife zu beeenden.
Application.ProcessMessages
Das ist aber imho ein unschöne und unübersichtliche Programmier-Art. Besser wäre an dieser Stelle ein Thread, der dein Schleife bearbeitet. //edit: Sinnvollerweise solltest du den Key-Paramter der in den OnKey-Routinen übergeben wird auserten. :stupid: |
Re: Was muss ich für OnKeyDown/Press in meinem Programm eing
Im OI noch KeyPreview auf True stellen.
|
Re: Was muss ich für OnKeyDown/Press in meinem Programm eing
Ich würde es so machen :roll:
Delphi-Quellcode:
[edit=r_kerber]Schließenden Delphi-Tag eingefügt. Mfg, r_kerber[/edit]
private
tastendruck: boolean; ... procedure tform1.keypress(key: pchar); begin if (key={die taste}'h') then tastendruck=true; end; ... repeat ... until (tastendruck=true); |
Re: Was muss ich für OnKeyDown/Press in meinem Programm eing
danke konda!
das ist genau das was ich wollte. ich danke auch chaosben und daniel für ihre antworten! so ich werde mich bestimmt noch mit irgend einer frage melden, ich arbeite nämlich an einem informatik-schul-projekt und da stößt man immer wieder auf fragen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 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