Frohes Fest an alle !
Trotzdem habe ich hier ein Stringgrid, das macht nicht das was es soll.
Delphi-Quellcode:
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var ZulZeichen : set of byte;
begin
ZulZeichen := [];
with StringGrid1 do begin
if Col = 1 then
ZulZeichen := [48..57,8,13,27,VK_F9,VK_F10]
else if Col = 4 then
ZulZeichen := [48..57,8,13,27,VK_F3];
showmessage (chr(key));
if not (key in ZulZeichen) then
key := 0;
showmessage (chr(key));
Zahlen sollen immer akzeptiert werden. In Spalte 1 zusätzlich noch F3 in Spalte 4 stattdessen F9 und F10. Das zweite showmessage zeigt mir auch an, daß es so läuft wie ich vorhabe. Falsche Zeichen werden abgefangen. Key steht auf 0 ! Sie erscheinen aber trotzdem auf dem Bildschirm. Mit KeyPress habe ich es auch versucht, aber das war noch schlimmer: kein Enter wurde akzeptiert und wenn ich ein y drücke kommt das Fenster, das bei F10 kommen soll.