Thx Christian,
sieht gut aus. Das mit dem Flackern fiel mir auch schon auf. Aber mir Deinem Code flackert eigentlich nichts. Jetzt sind aber noch folgende Fragen aufgetaucht :
1. ich kriege keine 2 Zeilen in die doppelt hohen Zellen. Das war eigentlich der Sinn des Ganzen.
2. Du legst die Spaltenhöhe bereits im FormCreate fest. Vielleicht flackert es auch deshalb nicht. Wo soll ich das am besten hinmachen, wenn die Zeilenhöhe erst zur Laufzeit feststeht ?
3. Du benutzt ja selber das OnDrawCell und nichts flackert, was jetzt ? bzw. wo geht das besser ?
Zitat:
StringGrid1.RowCount:=StringGrid1.RowCount+1;
Das ist eine Endlosschleife.
Wieso das ?
Wenn ich die rechteste Spalte verlasse, dann soll eine neue Zeile erzeugt werden und der Cursor dort in die erste Spalte wandern. So siehts richtig aus :
Delphi-Quellcode:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then begin
case Stringgrid1.Col of
1 : Stringgrid1.Col := 4;
4 : begin
Stringgrid1.Col := 1;
Stringgrid1.RowCount := Stringgrid1.RowCount + 1;
Stringgrid1.Row := Stringgrid1.Row + 1;
end;
end;
end;
end;
Habe ich da was übersehen ?
P.S.:
oh je, da habe ich noch was übersehen. 8) Geht es auch, die Zeilenhöhe in Abhängigkeit von dem eingegeben Wert in Spalte 1 zu verändern ?