AGB  ·  Datenschutz  ·  Impressum  







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

ShellTreeView und Overlay-Bild

Ein Thema von e-gon · begonnen am 7. Okt 2010 · letzter Beitrag vom 22. Okt 2010
Antwort Antwort
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#1

ShellTreeView und Overlay-Bild

  Alt 7. Okt 2010, 14:21
Hallo,

um in meine umfangreiche Mediensammlung endlich etwas Ordnung zu bringen, habe ich ein Programm geschrieben, welches Ordnerinhalte mit manuell hinzugefügten Kommentaren in eine Datenbank schreibt. Da es aber nicht unbedingt sinnvoll ist beim Erstellen der Datensätze chronologisch vorzugehen, habe ich inzwischen etwas den Überblick verloren, welche Ordner in wie weit bereits abgearbeitet wurden. Da kam mir die Idee die Ordner in meinem Programm entsprechend zu markieren.
Den Verzeichnisbaum lasse ich mir durch ein ShellTreeView anzeigen. Die bereits verarbeiteten Ordner sollen nun je nach Verarbeitungsstatus einen roten, gelben oder grünen Punkt erhalten. Sinnvoll wäre dafür ja ein Overlay. Leider kann ich aber keine eigene ImageList hinzufügen, da sonst die Systemicons in ShellTreeView nicht mehr angezeigt werden.
Gibt es eine Möglichkeit auf das Image eines TreeNode direkt zuzugreifen? Vielleicht ein
ShellTreeView.Items[x].Image.Canvas.Ellipse(...) oder so?

Gruß
e-gon
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: ShellTreeView und Overlay-Bild

  Alt 8. Okt 2010, 13:08
Hat keiner eine Idee?

Oder gibt es eine andere Möglichkeit in ShellTreeView Knoten zu kennzeichnen?
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: ShellTreeView und Overlay-Bild

  Alt 12. Okt 2010, 11:32
*Push*
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: ShellTreeView und Overlay-Bild

  Alt 12. Okt 2010, 12:15
mit ShellTreeviwe kann ich Dir nicht helfen, falls Du cxShellTreeView hast:

reiner prof of concept

Delphi-Quellcode:
procedure TForm1.TreeViewCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
    State: TCustomDrawState; var DefaultDraw: Boolean);
    var r:TRect;
    var
      x:Integer;
begin
  r :=Node.DisplayRect(false);

  x := (Node.Level + 1) * 20;
  r.left := x;
  r.Right := r.Left + 16;
  r.Bottom := r.top + 16;
  sender.Canvas.StretchDraw(r, image1.Picture.Graphic);
  sender.Canvas.TextOut(r.Right,r.Top,node.Text);
  DefaultDraw := false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 cxShellTreeView1.InnerTreeView.OnCustomDrawItem := TreeViewCustomDrawItem
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: ShellTreeView und Overlay-Bild

  Alt 22. Okt 2010, 09:54
Danke für die Antwort! Aber nein, ich benutze nicht cxShellTreeView und TShellTreeView hat leider kein DrawItem-Ereignis.

Nach langem Suchen und vielen Versuchen habe ich mich nun zähneknirschend mit den System-Overlays zur Markierung abgefunden.
Delphi-Quellcode:
OverlayIndex:= 0; // Hand zur Markierung von Freigaben
OverlayIndex:= 1; // Verknüpfungssymbol
OverlayIndex:= 3; // Zeitsymbol
Falls aber noch jemandem etwas besseres einfällt, ich bin für jeden Hinweis dankbar!

Gruß
e-gon
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:20 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