Ich grüße euch!
Wir versuchen gerade, in einem DBGrid mit der Eingabe eines Anfangsbuchstabens zur nächsten passenden Zeile zu springen, auch wenn Standardshortcuts am Formular vorhanden sind (zB Schli&eßen am Close Button).
Im Form ein OnShortcut implementiert:
Delphi-Quellcode:
procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
var Key: Char;
begin
if ActiveControl = DBGrid then
begin
if (HiWord(Msg.KeyData) and KF_ALTDOWN = 0) then
begin
Key := Chr(Msg.CharCode);
if IsLetter(Key) then
begin
DBGridKeyPress(self, Key);
Handled := true;
end;
end;
end;
end;
So weit so gut. Leider versagt es bei Umlauten (und sauber ist es bei Cursortasten auch nicht): Ein Ü zum Beispiel wird mir als '°' geliefert.
Wie macht man sowas sauber? Cursortasten sind in dem Fall kein Problem, weil die CharCodes 37,38,39,40 ohnehin keine Buchstaben sind und das in dem Fall funktioniert, aber wie würde ich unterscheiden, ob es ein &, (, ' ist oder die "zugehörigen" Cursortasten?
Und was mache ich mit Umlauten?
Danke fürs Augenöffnen
Stefan