Delphi-PRAXiS
Seite 9 von 11   « Erste     789 1011      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VirtualTreeView - Wer hat die Weiterentwicklung übernommen (https://www.delphipraxis.net/126856-virtualtreeview-wer-hat-die-weiterentwicklung-uebernommen.html)

anse 13. Apr 2009 00:37

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Oh. und noch was: Doc-O-Matic (Screenshot-Link, s.o.) scheint diese Multi-Checkboxen über den ImageIndex und den Tree.Onclick-Events gelöst zu haben - kein EditLink drin soweit man das sehen kann.

toms 13. Apr 2009 10:02

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Zitat:

Zitat von anse
Oh... das hier
Delphi-Quellcode:
VT.Header.Options := VT.Header.Options + [hoShowImages];
VT.Header.Columns[x].Checkbox := True;
... zeigt eine Checkbox in der Header-Zeile an. Also hat VT wohl leider keinen Multi-Checkbox-Support für Nodes. Seltsam außerdem daß die Header-Checkbox nur bei hoShowImages angezeigt wird.

Vielleicht hilft dir dieser Beitrag weiter:
http://support.soft-gems.net/forums/...pic.php?t=1526

Roaster 13. Apr 2009 12:23

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Zitat:

Zitat von anse
Multi-Checkboxen sind also gemeint, so wie hier zu sehen: http://www.soft-gems.net/images/stor...-shots/DOM.png

Hm, mich würde mal interessieren, wie Doc-o-matic mehrere Icons in der ersten Spalte "Topic / Symbol" je Knoten darstellen kann. Ist das mit VirtualTreeView möglich?

anse 13. Apr 2009 13:14

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Nein, mehrere Icons kannst du nur mit einem Hack da reinbasteln, am besten wohl in OnAfterCellPaint:

Delphi-Quellcode:
procedure TMainForm.MyVTAfterCellPaint(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  CellRect: TRect);
begin
  // Das 123. Icon aus ImageListMain in die linke obere Ecke der Zelle malen
  ImageListMain.Draw(TargetCanvas, CellRect.Left, CellRect.Top, 123);
end;
Wobei du den Platz für die Images dann nicht mit dem normalen Text überlappen mußt, dafür kannst du Header.Columns[x].Spacing auf einen höheren Wert einstellen (ungetestet).

anse 13. Apr 2009 19:33

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Zitat:

Zitat von toms
Vielleicht hilft dir dieser Beitrag weiter:
http://support.soft-gems.net/forums/...pic.php?t=1526

Jau, genau das richtige. Die Idee ist zwar etwas "hackisch", da die Checkboxen dann nicht mehr vom System gezeichnet werden, aber letztenendes ganz ok.

anse 26. Mai 2009 00:15

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Ich würde ja zu gern einen Issue Tracker für VirtualTree einrichten und das SVN in das gleiche System umziehen, wenn ich dürfte ... Darf ich?

Die 4.8.6 (r181) zeigt sich bei mir ungewöhnlich buggy:
  • Selektieren mehrerer Nodes per Maus-Rechteck-Ziehen nicht mehr möglich. Das Selektier-Rechteck wird gemalt, aber die Nodes werden einfach nicht selektiert. Selbst wenn ich den Code mit der neuen Eigenschaft .SelectionLocked aus VirtualTress.pas lösche und neu baue klappt das nicht mehr.
  • Sofern BottomSpace > 0 is, zeigt das Vista Theming einen einfarbigen, weißen Hintergrund mit schwarzem Rand statt "Bonbon-Hellblau"

anse 13. Jun 2009 20:11

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Mike hat jetzt einen offiziellen Bugtracker bei Google Code aufgesetzt: http://code.google.com/p/virtual-treeview/

Neue Anforderungen sowie Bugs können dort also ab sofort an zentraler Stelle gesammelt werden. Und jeder mit einem Google Account kann mitmachen, für Änderungen voten, mit diskutieren etc.

Na dann, auf die nächsten 10 Jahre VirtualTree Entwicklung... ups das stimmt ja sogar ziemlich genau, seit Juli 99 gibt es VT, siehe Mikes History.

Assertor 21. Jun 2009 19:14

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Hi,

kleiner Bugreport: wenn man per OnGetImageIndex ein Image zuweist und das NodeAlignment <> naProportional setzt, wird das Image überhaupt nicht gezeichnet.

Ziel war es, ein Image top-aligned zu zeichnen (z.B. in einer MultiLine Zeile per ivsMultiline).

Ich finde auch kein geeignetes Event mehr, die Position des Image manuell anzupassen. Als Abhilfe funktioniert nur das manuelle Zeichnen per OnAfterCellPaint oder eine Ableitung der Klasse mit override für PaintImage().

Delphi-Quellcode:
procedure TVirtualTreeEx.PaintImage(var PaintInfo: TVTPaintInfo;
  ImageInfoIndex: TVTImageInfoIndex; DoOverlay: Boolean);
begin
  // draw node images top aligned (instead of centered, use same margin as text)
  if Multiline[PaintInfo.Node] then
    PaintInfo.ImageInfo[ImageInfoIndex].YPos := TextMargin;
  inherited;
end;
Gruß Assertor

anse 21. Jun 2009 19:29

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Solche bugreports solltest du am besten im Bugtracker melden.

Assertor 21. Jun 2009 19:59

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm
 
Hi anse,

Zitat:

Zitat von anse
Solche bugreports solltest du am besten im Bugtracker melden.

Erledigt. Funktioniert richtig gut mit Google Code, irgendwie fehlte mir der offizielle Hinweis, daß Mikes SVN nun nicht mehr das aktuellste ist, sondern alle Updates da vereint werden.

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.
Seite 9 von 11   « Erste     789 1011      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz