Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: doppelte Zeilenhöhe im Stringgrid

  Alt 25. Nov 2004, 01:03
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat