AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree: Problem mit ImageIndex

Ein Thema von phXql · begonnen am 15. Sep 2004 · letzter Beitrag vom 7. Mär 2010
Antwort Antwort
Seite 2 von 2     12   
kaaeton

Registriert seit: 2. Nov 2004
Ort: Klosterneuburg
13 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 9. Sep 2009, 16:53
Zitat von generic:
Der Beitrag ist von 2004.
Ja, und wo ist das Problem?
Der Beitrag ist im Forum und es können ihn auch heute noch alle lesen.
Es gab damals keine Erklärung und damit ist er genauso aktuell wie 2004, da es seit damals KEINE brauchbarere Beschreibung als die von Phillip und Sven gab und seit dem auch eine Weiterentwicklung erfolgte. Dem trage ich Rechnung und poste hier eben den aktuellen Stand.
Wenn du ein Spezialist auf dem Bereich des Virtual TreeView bist, dann trage doch was dazu bei, daß andere es leichter haben, diese tolle Komponente einzusetzen.
Deine konstruktiven Beiträge sind gerne willkommen.
mfg Wolfgang
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#12

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 9. Sep 2009, 17:08
Danke für den Hinweis, denn ich hatte bis vor ein paar Monaten noch Delphi5 und kein VirtualTreeView im Einsatz. Wollte jetzt mit D2007 schon längst mal die Komponente anschauen und das verschoben... was ich aber die Tage mit dem Tutorial mal nachholen werden.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#13

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 9. Sep 2009, 18:01
Tutorials gibt es viele:

Bei uns hier als Video:
http://www.delphipraxis.net/videos#Stammtisch_2

oder im Delphi-Treff:
http://www.delphi-treff.de/no_cache/...eeview/page/1/

Im Entwickler Magazin:
  • Entwickler Magazin (Ausgabe: 02.08/13.02.2008) Artikel: Von Bäumen und Listen - Komponente VirtualStringTree im Detail
  • Entwickler Magazin (Ausgabe: 03.08/14.04.2008) Artikel: Von Bäumen und Listen Teil 2 - Komponente VirtualStringTree im Detail
  • Entwickler Magazin (Ausgabe: 04.08/12.06.2008) Artikel: Von Bäumen und Listen Teil 3 - Komponente VirtualStringTree im Detail
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#14

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 10. Sep 2009, 13:38
Auch noch ein Tipp von mir

function AddChild(Parent: PVirtualNode; UserData: Pointer = nil): PVirtualNode; Viele wissen nicht genau, was man mit UserData anfangen kann.
Es ist aber ganz nützlich, weil man damit Daten noch vor dem OnInitNode Event dem Knoten zuweisen kann.
Der Parameter UserData wird dabei direkt auf die ersten 4 Bytes des Records gesetzt.
D.h.

Delphi-Quellcode:
Type
  PMyNodeData = ^TMyNodeData;
  TMyNodeData = record
    MyData : Pointer; <-- UserData aus AddChild
    Rest ...
  end;
Da kommen die Daten rein. Dabei muss es sich nicht um ein Pointer handeln, auch eine Klasseninstanz oder Interface geht - also alles was 4 Byte beansprucht. Nur sollte im Record auch wirklich ein 4 Byte Typ stehen und nicht etwa weniger. Sonst kommt es gerne mal zu Nebenwirkungen.

Wenn man UserData benutzt, bekommt der Knoten einen State zugewiesen, so dass man dies in OnInitNode überprüfen kann :
if vsInitialUserData in Node.States then Wichtig zu wissen ist dabei, dass der var Parameter InitialStates von OnInitNode nicht diesen Status enthält.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
kaaeton

Registriert seit: 2. Nov 2004
Ort: Klosterneuburg
13 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 17. Sep 2009, 20:53
Zitat von Dezipaitor:
Auch noch ein Tipp von mir ...
Viele wissen nicht genau, was man mit UserData anfangen kann. ...
Wenn man UserData benutzt, bekommt der Knoten einen State zugewiesen, so dass man dies in OnInitNode überprüfen kann.
Danke, aber kannst du mir auch ein Anwendungsbeispiel nennen?
Ich kann mir momentan noch keine Vorstellung für einen sinnvollen Einsatz machen.

LG Wolfgang
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#16

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 17. Sep 2009, 22:53
Naja,
wenn du deine Daten nin OnInitNode initialisieren willst, dann kannst du da gleich z.b. ein Objekt reinstecken, so dass du weitere Berechnungen eben in dieser Funktion machen kannst.

Dann gibt es noch das Problem, dass zwischen AddChild und ein folgendes GetNodeData viel passieren kann, so z.B. kann mit toAutoSort der Tree automatisch sortiert werden. Da werden dann nicht initialisierte Daten verglichen.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#17

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 7. Mär 2010, 10:47
Ich habe das genau entgegengesetzte Problem: Ich habe eine ImageList mit 4 Overlay-Icons und dahinter den normalen Icons. Im OnGetImageIndex weise ich passend den ImageIndex zu ... aber man sieht keine Overlay Icons. Muss man noch eine Option zuschalten oder was muss ich tun, damit er die Overlay-Icons auch zeichnet?
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#18

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 7. Mär 2010, 11:30
Meistens sind es eher Fehler im entwickelten Quelltext.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
kaaeton

Registriert seit: 2. Nov 2004
Ort: Klosterneuburg
13 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 7. Mär 2010, 21:47
Zitat von Codewalker:
Ich habe das ... Problem: ... ImageList mit 4 Overlay-Icons und dahinter den normalen Icons. Im OnGetImageIndex weise ich passend den ImageIndex zu ... aber man sieht keine Overlay Icons. Muss man noch eine Option zuschalten oder was muss ich tun, damit er die Overlay-Icons auch zeichnet?
Schau dir mal meinen 2.Teil des Tutorials an. Da hab ich mich mit den Icons beschäftigt. Für die OverlayIcons hab ich auch noch keine brauchbare Erklärung für die Verwendung. Ich kann mir auch noch nichts darunter vorstellen und wozu man das verwenden könne.
Tutorial: www.delphipraxis.net/topic166359,0,asc,0.html
Wenn du mir ein Beispiel geben könntest für die Verwendung (Notwendigkeit) von OverlayIcons, dann würde ich mir das mal näher ansehen.
LG Wolfgang
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#20

Re: VirtualStringTree: Problem mit ImageIndex

  Alt 7. Mär 2010, 22:43
Hallo,

um die Bilder als Overlay nutzen zu können, muss man sie einmalig anmelden:

Delphi-Quellcode:
procedure TForm1.FormCreate (Sender: TObject);
begin
  Tree.Images := ImageList1; // über OI zuweisen
  
  ImageList1.Overlay(21, 0); // Bild #21 wird Overlay-Icon #0
  ImageList1.Overlay(42, 1); // Bild #42 wird Overlay-Icon #1
end;

procedure TForm1.TreeGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
begin
  case Kind of
    ikNormal, ikSelected:
      ImageIndex := Random(16);
    ikOverlay:
      ImageIndex := Node.Index and 1;
  else
    ImageIndex := -1;
  end;
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.
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