AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Debuggen: F9 löst Edit - onKeyUp aus
Thema durchsuchen
Ansicht
Themen-Optionen

Debuggen: F9 löst Edit - onKeyUp aus

Ein Thema von Getox · begonnen am 29. Nov 2016 · letzter Beitrag vom 29. Nov 2016
Antwort Antwort
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#1

Debuggen: F9 löst Edit - onKeyUp aus

  Alt 29. Nov 2016, 14:04
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?
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Debuggen: F9 löst Edit - onKeyUp aus

  Alt 29. Nov 2016, 14:31
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Debuggen: F9 löst Edit - onKeyUp aus

  Alt 29. Nov 2016, 15:07
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
$2B or not $2B

Geändert von himitsu (29. Nov 2016 um 15:11 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:17 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