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?