Hallo,
Ich habe mal wieder ein Problem:
Ich will per TAB-Taste eine Zelle im TStringGrid weiter springen. Dazu habe ich folgende Prozedur geschrieben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.GotoNextCell;
begin
if StringGrid1.Col < Grid.ColCount - 2 then
begin
StringGrid1.Col:=StringGrid1.Col+1;
end
else
begin
if StringGrid1.Row < Grid.RowCount - 2 then
begin
StringGrid1.Row:=StringGrid1.Row+1;
StringGrid1.Col := 1;
end
else
begin
StringGrid1.Col:=1;
StringGrid1.Row:=1;
end;
end;
end; |
Die Prozedur funktioniert, wenn ich sie über das OnKeyDown-Ereignis aufrufe auch
wunderbar:
Delphi-Quelltext
1:
| if Key = 13 then GotoNextCell(StringGrid1); |
Das eigentliche Problem tritt auf wenn ich Key von der Enter-Taste auf die TAB-Taste ändere. Dann wird nämlich beim Drücken der TAB-Taste eine ComboBox makiert, die sich ebenfalls auf dem Formular befindet.
Hat jemand eine Ahnung, wie man das verhindern kann? Ist es vielleicht das falsche Ereignis, um die Prozedur aufzurufen?
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt