Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Stringgrid akzeptiert falsche Eingaben

  Alt 25. Dez 2003, 20:04
Der Parameter Key im OnKey Down ist mir zwar immer noch nicht ganz klar, aber es geht jetzt. Der Code drumrum, also die tatsächliche Auswertung der Tasten erfolgt im OnKeyDown. Und das OnKeyPress ist dafür zuständig, die Tasten erstmal so zu überprüfen, wie ichs gemacht habe. Alles ins OnkeyDown rein zu setzen geht also so nicht.

Mir solls recht sein. Die gesamte OnKeyDown hat jetzt schon ca. 250 Zeilen. Je kleiner die wird um so besser. Jetzt wird sie also nur noch durchlaufen, falls ein Zeichen überhaupt zulässig ist. Das hier ist also jetzt ausgelagert in OnKeyPress:

Delphi-Quellcode:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
var ZulZeichen : set of char;
begin
  ZulZeichen := [];
  with StringGrid1 do begin
    if Col = 1 then
      ZulZeichen := [#48..#57,#8,#13,#27,chr (VK_F9),chr (VK_F10)]
    else if Col = 4 then
      ZulZeichen := [#48..#57,#8,#13,#27,chr (VK_F3)];
    if not (key in ZulZeichen) then
      key := #0;
  end;
end;
Gruß
Hansa
  Mit Zitat antworten Zitat