Zitat:
Ich schreibe das mal separat, damit du eine Benachrichtigung siehst:
Weiß nicht, welche Benachrichtigung.
Ich bin mittlerweile so weit:
Items zur besseren Übersicht farblich gestalten (jedes zweite):
Delphi-Quellcode:
procedure TForm2.VSTAfterItemErase(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode; ItemRect: TRect);
begin
if Odd(Node.Index) then
TargetCanvas.Brush.Color := $00E1F3FF;
TargetCanvas.FillRect(ItemRect);
end;
Im OnGetText u.a.:
Delphi-Quellcode:
procedure TForm2.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
var
Data: PVSTData;
begin
Data := VST.GetNodeData(Node);
if Node.Index = 2 then
Node.NodeHeight := 35; // <= funktioniert sogar ohne toVariableNodeHeight
....
end;
Text selber zeichnen:
Delphi-Quellcode:
procedure TForm2.VSTDrawText(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; const Text: string; const CellRect: TRect;
var DefaultDraw: Boolean);
begin
DefaultDraw := False;
TargetCanvas.TextOut(CellRect.Left, CellRect.Top + 2, Text);
if Node.Index = 2 then
begin
TargetCanvas.TextOut(CellRect.Left, CellRect.Top + 16, '123'); // Funktioniert. Wird aber erst sichtbar, wenn ich mit der Maus über das VST fahre
end;
end;
Ist das bisher eine absolute 0815-Lösung oder ist das OK so?