Falsche Anzeige im TreeView.
Liste der Anhänge anzeigen (Anzahl: 4)
Mit diesem Artikel bei Delphi 3000 kann man sich in einem TreeView einen Verzeichisbaum eintragen lassen. Das habe ich mit Turbo Delphi ausprobiert und es hat gut funktioniert. Nur die kyrillischen und griechischen Zeichen wollten logischerweise nicht so wie ich. Deshalb habe ich den TreeView und was dazu gehört in die Unit uPathExplorer kopiert und anschließend einige Funktionen von A nach W geändert. Aber irgend etwas fehlt noch. Denn im Tree sehe ich bei Ansistrings nur das erste Zeichen, bei Widestrings Quadrate und Sonderzeichen. Der Text der Nodes dürfte richtig sein, denn er wird im Label richtig dargestellt.
Nachdem ich stundenlang gesucht habe, habe ich jetzt die Delphi 2010 Trial installiert und da funktioniert das modizifierte TreeView. Also fehlt noch irgendwas. Hat jemand eine Idee, was ich da übersehen habe bzw wo ich suchen müsste? |
Re: Falsche Anzeige im TreeView.
Es könnte an der damals glorreichen Idee von Borland liegen die W Varianten auf die A Varianten umzuleiten.
Du benötigst zudem Unicodefähige Komponenten |
Re: Falsche Anzeige im TreeView.
In der procedure TCustomTreeView.CNNotify gibt es diese Passage:
Delphi-Quellcode:
Hier werden die Strings, welche im Treeview zu sehen sind, eingetragen (lstrcpynW im Original StrLCopy). Da es bei der Delphi 2010 Trial keine Sourcen gibt, kann ich nicht schnell mal vergleichen, ob es Unterschiede in der Deklaration gibt.
TVN_GETDISPINFO:
with PTVDispInfoW(NMHdr)^ do begin Node := GetNodeFromItem(item); if Node <> nil then begin if (item.mask and TVIF_TEXT) <> 0 then lstrcpynW(item.pszText, PWideChar(Node.Text), item.cchTextMax - 1); if (item.mask and TVIF_IMAGE) <> 0 then begin GetImageIndex(Node); item.iImage := Node.ImageIndex; end; if (item.mask and TVIF_SELECTEDIMAGE) <> 0 then begin GetSelectedIndex(Node); item.iSelectedImage := Node.SelectedIndex; end; end; end; |
Re: Falsche Anzeige im TreeView.
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Falsche Anzeige im TreeView.
In uPathExplorer kann man die Unit Widestrings aus den Uses löschen. Beim Compilieren findet man dann die Deklaration und den Free-Befehl einer Variable vom Typ TWideStringList, welche man löschen kann. Dann kann man das ganze zum Beispiel unter D7 verwenden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 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