Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

TStringGrid: über mehrere Zellen schreiben

  Alt 14. Sep 2009, 17:46
Hallo #,

der folgende Code versucht, Zelle 1,0 über 2 Zellen zu schreiben.
Das soll aber ohne DefaultDrawing=False gemacht werden.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Grid.DefaultColWidth:= 28;
  Grid.Cells[1,0]:= 'Januar';
end;

procedure TForm1.GridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  MyRect: TRect;
begin
  if (ACol=1) and
     (ARow=0) then
  begin
    Grid.DefaultDrawing:= False;
    MyRect.TopLeft:= Rect.TopLeft;
    MyRect.BottomRight:= Rect.BottomRight;
    MyRect.Right:= Rect.Right*2;

    Grid.Canvas.FillRect(MyRect);
    DrawText(Grid.Canvas.Handle, PChar(Grid.Cells[ACol,ARow]),
      Length(Grid.Cells[ACol,ARow]), MyRect, DT_LEFT);
  end
  else
  begin
    Grid.DefaultDrawing:= True;
  end;
end;
Klappt aber nicht so richtig ;(
Sieht einfach nur doof aus ... (siehe Screenshot)
Z.B, die weisse Line hinter "Januar"

Wie macht man das richtig ?


Heiko
Miniaturansicht angehängter Grafiken
image1_178.jpg  
Heiko
  Mit Zitat antworten Zitat