Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Virtual String Tree: Checkbox in Column 3 anzeigen?


winx - Sa 30.07.05 14:54
Titel: Virtual String Tree: Checkbox in Column 3 anzeigen?
Hi,

ich verwende den VST. Möchte da jetzt eine Checkbox an meinen Knoten hinhängen, allerdings in Spalte 3, also nich ganz vorne.

Wie kann ich das ganze machen???

Mein Source Code sieht im Moment so aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
for i:=0 to Positions.Count-1 do begin

       node := VSTOrderPrintPositions.AddChild(nil);
       node.CheckType := ctCheckBox; 

       data := VSTOrderPrintPositions.GetNodeData(node);
       data^.position := TPosition(Positions[i]);

end;


Hat jemand nen Tipp?

danke

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.


Martin1966 - So 31.07.05 09:12

hi Du!

Ich habe auch mal mit dieser TreeView Komponente gearbeitet und ich glaube, dass das nicht möglich ist. Einzige Möglichkeit wäre wohl die erste Spalte zu verschieben. Aber das ist natürlich auch nicht so das wahre...

lg martin


winx - Mo 01.08.05 07:47

Hmm,

denke aber, da mit dieser Komponenten so ewig viel möglich ist, dass es auch hier ne Möglichkeit gibt...

Vielleicht hat doch jemand eine Idee ?!?

Wär super,
danke


CopymenAD - Di 02.08.05 08:24

Hallo !

Ich hatte auch schon dieses Problem.
Ich hatte es mal wie folgt gelöst:

Zeichnen der Boxen

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TDShowFileOptionenForm.FarbenAfterCellPaint(
  Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
  Column: TColumnIndex; CellRect: TRect);
var data:PHighlightRecord;
begin
  data:=farben.GetNodeData(node);
  if data.Fett then
    drawframecontrol(targetcanvas.Handle,CellRect,DFC_BUTTON,DFCS_CHECKED)
  else
    drawframecontrol(targetcanvas.Handle,CellRect,DFC_BUTTON,DFCS_BUTTONCHECK);
end;


Auswahl ändern

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TDShowFileOptionenForm.FarbenColumnClick(
  Sender: TBaseVirtualTree; Column: TColumnIndex; Shift: TShiftState);
var data:PHighlightRecord;
    select:PVirtualNode;
begin
  data:=farben.GetNodeData(select);
  data.Fett:=not data.Fett;
  farben.RepaintNode(select);
end;


Gruss CopymenAD