Einzelnen Beitrag anzeigen

Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#8

Re: VST mehrzeiligen text in Celle zentrieren?

  Alt 22. Okt 2008, 10:34
@OG Karotte

Ich glaube ich hab es jetzt gelöst. Folgender Code von mir zentriert mehrzeiligen Text vertikal in der jeweiligen Zelle. Bitte mal gegentesten.
Danke an sh17 für seinen Hinweis auf die Lösung. Contentrect war das Stichwort.

Delphi-Quellcode:
procedure TForm1.vstBeforeCellPaint(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  CellPaintMode: TVTCellPaintMode; CellRect: TRect;
  var ContentRect: TRect);
var
Data: TMyData;
textheight: Integer;
differenz: Integer;
begin
Data:=TMyData(vst.GetNodeData(node)^ );
textheight:=vst.ComputeNodeHeight(targetcanvas,node,1,Data.Meldung);
differenz:=((Cellrect.Bottom-cellrect.Top)-textheight) div 2;

contentrect.Top:=contentrect.Top+differenz;
end;
//Edit
Ergänzungen der Code funktioniert nur mit Full Row select option des VST!
Bei normalem Select ergeben sich unschöne Effekte (Es wird nur Contentrect selektiert, und nicht die komplette Zelle)
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat