AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein VirtualTreeView, no image list was supplied
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeView, no image list was supplied

Ein Thema von norwegen60 · begonnen am 7. Mai 2017 · letzter Beitrag vom 8. Mai 2017
Antwort Antwort
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
522 Beiträge
 
Delphi 12 Athens
 
#1

AW: VirtualTreeView, no image list was supplied

  Alt 8. Mai 2017, 08:43
Ich habe die TreeView seit Jahren nicht mehr angefasst. Bisher war die ImageList nur dem Property StateImages zugewiesen und von Delphi 7 bis XE10 hatte es so auch funktioniert.

Das Property ImageList gibt es nicht. Ich habe vrdbtProjNr.Images = ImageList gesetzt, dann funktioniert es. Allerdings zeigt es dann bei allen nicht selektierten Einträgen zwei LED an.

Ich habe testweise die Zuweisung nur bei Images gemacht und bei StateImages gelöscht. Dann kommt die Fehlermeldung wieder.
Nach etwas rum probieren, die Hilfe ist zu StateImages recht dürftig, bin ich auf folgendes Setting gekommen das wieder einwandfrei läuft:

Delphi-Quellcode:
Images nicht zuweisen
StateImages = ImageList1;

procedure Tfo1ProjNr.vrdbtProjNrGetImageIndex(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
  var Ghosted: Boolean; var ImageIndex: TImageIndex);
var
  Data: PTreeData;
begin
  Data := Sender.GetNodeData(Node);
  if (Kind = ikState) then begin // Verhindert die Meldung "An Image Index was supplied for TTVImagekind.ikSelected but no image list was supplied"
    // Ad hier Images zuweisen
  end;
end;

Geändert von norwegen60 ( 8. Mai 2017 um 09:28 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: VirtualTreeView, no image list was supplied

  Alt 8. Mai 2017, 15:53
Hallo.

Sorry. Ja die Property heißt nur Images und nicht ImageList .

In deinem SourceCode solltest du daher auch nicht wie oben von mir beschrieben nur auf ungleich ikSelected sondern auf if (Kind in [ikNormal, ikSelected]) then prüfen. Das verhindert, dass er die Exception wirft. Wenn du auch je nach State (also Node selektiert oder nicht) auch ein Image hinterlegen willst, dann muss du das Set entsprechend um ikState erweitern und dem Tree auch eine StateImages ImageList zuweisen. Das kann natürlich die gleiche sein wie die, die du der Images Property zugewiesen hast.

Der letzte Kind ist ikOverlay der entsprechend über eine bereits gezeichnetes Image drüber gemalt wird. Habe ich bisher aber auch noch nicht verwendet.
  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 14:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz