Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - auf Escape Taste in DateTimePicker reagieren


Daniel L. - Di 07.12.10 22:48
Titel: auf Escape Taste in DateTimePicker reagieren
Hi,

öffnet man als User in einem DateTimePicker den Kalender, so kan man ihn mit <ESC> wieder verlassen, ohne eventuelle Änderungen zu übernehmen.
Auf dieses Tastaturereigniss würde ich gerne reagieren können, es wird jedoch kein OnKeyDown Ereigniss ausgelöst (dafür aber ein ONChange, obwohl sich ja garnichts geändert hat :?!?: )
Andere Tasten. z. B. die Pfeiltaten, lassen sich in diesem Zusammenhang problemlos abfangen.

Hat jemand eine Idee, wie man da rankommt?


Gerd Kayser - Mi 08.12.10 01:02

user profile iconDaniel L. hat folgendes geschrieben Zum zitierten Posting springen:
Auf dieses Tastaturereigniss würde ich gerne reagieren können
Ansatzpunkt (nicht voll ausgetestet):

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.DateTimePicker1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 27 then
    ShowMessage('Escape gedrückt');
end;


Daniel L. - Mi 08.12.10 01:25

Danke dafür - komisch, dass nur ein KeyUp angestossen wird und kein KeyDown.
Jetzt müsste ich nur noch rauskriegen, ob der Tastendruck auf dem Kalender oder auf dem Hautpfenster des Pickers erfolgte - Sender.ClassName ist ja beidemal TDateTimePicker.

edit: man kann es mit OnDropDown und OnCloseUp kombinieren - so sollte es gehen

noch mal Danke + Gruss: Daniel