Moin Hansa,
wieso, geht doch:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if ARow mod 2 = 0 then begin
StringGrid1.RowHeights [ARow] := StringGrid1.DefaultRowHeight*2;
end else begin
StringGrid1.RowHeights [ARow] := StringGrid1.DefaultRowHeight;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
iIndex: Integer;
begin
for iIndex := 0 to StringGrid1.RowCount-1 do begin
if iIndex mod 2 = 0 then begin
StringGrid1.Cells [2,iIndex] := 'doppelt hoch';
end else begin
StringGrid1.Cells [2,iIndex] := 'einfach hoch';
end;
end;
end;
Du musst halt statt StringGrid1.Row ARow verwenden, da Du sonst immer den gleichen Wert abfragst, und nicht den der gerade gezeichneten Zeile.
Ausserdem solltest Du nicht im OnDrawCell einer Zelle einen Wert zuweisen, dann wird wieder neu gezeichnet.
Das flackert dann "so schön".
Wozu eigentlich
StringGrid1.RowCount:=StringGrid1.RowCount+1;
Das ist eine Endlosschleife.