Noch eine Möglichkeit:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then ShowMessage('Ctrl-A pressed!');
end;
Einfach ein KeyDown Event in deiner Edit-Komponente hinzufügen, den Key noch abändern und was dann passieren soll.
In diesem Beispiel, wer hätte es gedacht, wird nur auf STRG+A reagiert.
Und wenn das Memo gerade nicht den Fokus hat?
Deshalb lieber das KeyDown-Event der Form verwenden. Und Form.KeyPreview=True setzen.
Es ist auch nicht nötig auf 'a' zu prüfen, denn Key bezeichnet die Taste auf der Tastatur.
Und es ist nicht nur überflüssig sondern auch falsch.
Wenn nämlich Chr(Key)='a' ist, dann wurde die 1 auf dem Ziffernblock gedrückt.
Auch nur zu prüfen of ssCtrl in Shift enthalten ist, ist nicht ausreichend, bzw. führt zu vermutlich unerwarteten Ereignissen.
Stell dir vor du wolltest z.B. auf Ctrl-E reagieren.
Nun schreibst du deinen Text, und um ein '€' (Euro) zu tippen drückst du AltGr-E.
In dem Fall ist ssCtrl ebenfalls in Shift enthalten, denn AltGr ist ja im Prinzip [ssCtrl,ssAlt]
Aus diesem Grund:
if [ssShift,ssCtrl,ssAlt]*Shift=[ssctrl] then ...