Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
Delphi 12 Athens
|
AW: Tastatureingabe umwandeln
12. Jun 2023, 12:00
Ja, ist besser:
Delphi-Quellcode:
procedure TMyForm.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
const
SUPERSCRIPT: Array [Ord('0') .. Ord('9')] of Word =
($2070, $00B9, $00B2, $00B3, $2074, $2075, $2076, $2077, $2078, $2079);
var
Key: Word;
begin
if (ActiveControl is TEdit) then
begin
Key := Msg.CharCode;
if (Key in [Ord('0') .. Ord('9')]) then
begin
if (KeyDataToShiftState(Msg.KeyData) = [ssCtrl]) then
Key := $2080 + (Key - Ord('0'))
else if (KeyDataToShiftState(Msg.KeyData) = [ssAlt]) then
Key := SUPERSCRIPT[Key]
else
Exit;
PostMessage(ActiveControl.Handle, WM_CHAR, Key, 0);
Handled := True;
end;
end;
end;
Der Vorteil dabei ist, dass man das KeyPreview des Formulars nicht setzen muss...
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
Geändert von BigAl (12. Jun 2023 um 12:29 Uhr)
|
|
Zitat
|