Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Spalten zusammenfassen im Drawgrid

  Alt 25. Mai 2010, 10:52
Ich möchte das Thema noch mal hochbringen.

Mit nachfolgender Funktion möchte ich im Draw-Grid Zeilen verbinden.
In der jeweils am weitesten links stehenden Zelle soll der Titel stehen.

Ich mache das mit folgenden Code:

Delphi-Quellcode:
procedure TForm2.PaintTitle;
var
  r1 : TRect;
  r2 : TRect;
begin
  r1 := DrawGrid1.CellRect(DrawGrid1.LeftCol ,1);
  r2 := DrawGrid1.CellRect(DrawGrid1.LeftCol + DrawGrid1.VisibleColCount,1);
  r2.Left := r1.Left;
  DrawGrid1.Canvas.Brush.Color := cllime;
  DrawGrid1.Canvas.FillRect(r2);
  Drawgrid1.Canvas.TextOut(r1.Left+2,r1.Top+2,'Hallo');
end;
Aus dem Ereignis ondrawcell des TDrawgrid verhält sich der Code beim Scrollen völlig unlogisch.
Wie es aussieht zeichnet das Drawgrid erst und verschiebt dann den Bereich beim scrollen.
Starte ich jedoch einen Timer und rufe die Procedure außerhalb von ondrawcell auf,
dann funktioniert es wie gewünscht.
Hat wer einen Tip wie ich das hinbekomme oder kann mir eine andere Componente empfehlen,
mit der das geht. Sämtliche Einträge im Grid sind farbige Flächen (Gant-Diagramm)

Mit Gruß
Peter
  Mit Zitat antworten Zitat