Hi,
vielleicht kann sich das mal jemand ansehen :
Delphi-Quellcode:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then begin
if StringGrid1.Col = 1 then with StringGrid1 do begin
if col = 1 then
Col := 4
end
else if StringGrid1.Col = 4 then with StringGrid1 do begin
if ((StringGrid1.Row ) mod 2 <> 0) then begin
StringGrid1.RowCount := StringGrid1.RowCount+1;
StringGrid1.Row := StringGrid1.RowCount - 2;
end
else
StringGrid1.Row := StringGrid1.RowCount - 1;
StringGrid1.RowCount := StringGrid1.RowCount+1;
Col := 1;
end;
end;
end;
Es geht um ein Stringgrid, wobei die Spalten 1 und 4 zur Eingabe dienen. Mit Return soll von Spalte 1 in 4 gewechselt werden, sofern das in Spalte 1 gedrückt wird.
Wird Return in Spalte 4 gedrückt, so soll folgendes passieren : abwechselnd soll man in die nächste Zeile gelangen oder aber zuerst wird eine Leerzeile erzeugt und dann noch eine Zeile in der der Cursor dann steht. Ungefähr in diesem Stil :
Code:
xxxx xxxx
xxxx xxxx
leere Zeile
xxxx xxxx
xxxx xxxx
leere Zeile
usw.
Mit obigem Code sieht es so aus :
Code:
xxxx xxxx
xxxx xxxx
xxxx xxxx
leere Zeile
xxxx xxxx
xxxx xxxx
xxxx xxxx
leere Zeile
usw.
Wo ist da jetzt der Fehler, daß eine Zeile zuviel angezeigt wird, bzw. die Leerzeile zu spät ?