Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Debuggen: F9 löst Edit - onKeyUp aus (https://www.delphipraxis.net/191009-debuggen-f9-loest-edit-onkeyup-aus.html)

Getox 29. Nov 2016 13:04

Debuggen: F9 löst Edit - onKeyUp aus
 
Hallo,

ich habe ein seltsames Verhalten, das ich mir nicht erklären kann und hoffe, dass mir hier jemand dieses erklären kann.

Ich habe zum testen ein Projekt angelegt, welches ich hier als Beispiel nehme:

Ein einfaches Form mit einem tEdit und einem tLabel.

Das Edit hat ein onKeyUp Event:

Delphi-Quellcode:
procedure TForm3.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  Label1.Caption := Label1.Caption + char(key);
end;
- Wenn ich einfach so eine Taste drücke, wird dieses Zeichen dem Label hinzugefügt.
- Wenn ich dort einen Brechpunkt setze und dann f9 drücke wird das KeyUp Event erneut aufgerufen und ein kleines "x" wird dem Label hinzugefügt (so oft, wie ich f9 drücke)
- Wenn ich aber auf das Startsymbol klicke statt f9, wird das Event nicht noch einmal aufgerufen und das Programm läuft normal weiter.

Das Problem fiel mir in meinem Hauptprojekt auf, wo ich onKeyUp in einem Edit den Focus auf das Grid in einem anderen Form gelegt habe und wenn ich in dem Grid Enter gedrückt habe, wurde das KeyUp Event des ursprünglichen Edits auf dem anderen Form ausgelöst...

Ich ich habe schon den PC neu gestartet, eine andere Tastatur probiert und mir gehen langsam die Ideen aus.

Warum werden diese Events ausgelöst, obwohl ich die Tasten in einem ganz anderen Fenster drücke?

Aviator 29. Nov 2016 13:31

AW: Debuggen: F9 löst Edit - onKeyUp aus
 
Weil die F9 Taste im KeyDown von der IDE behandelt und somit die Ausführung des Programmes fortgesetzt wird. Dadurch ist dein Programm wieder aktiv und bekommt das KeyUp wieder mit. In dem Fall bleibt dir nichts anderes übrig als entweder den Play Pfeil zu drücken oder die F9 Taste als Taste nicht zuzulassen.

himitsu 29. Nov 2016 14:07

AW: Debuggen: F9 löst Edit - onKeyUp aus
 
Nur die Zahlen und die Großbuchstaben stimmen bei KeyCode und Char überein.
Dein 'x' ist ein $78, was dem VK_F9 enspricht.

PS: Das kleine 'x' ist hier auch ein 'X'
und das große 'X' ist ein 'X'+ssShift.

MSDN-Library durchsuchenMapVirtualKey


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.

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