AGB  ·  Datenschutz  ·  Impressum  







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

Falsche Anzeige im TreeView.

Ein Thema von Garfield · begonnen am 6. Apr 2010 · letzter Beitrag vom 7. Apr 2010
Antwort Antwort
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#1

Falsche Anzeige im TreeView.

  Alt 6. Apr 2010, 09:51
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?
Miniaturansicht angehängter Grafiken
bild_113.png  
Angehängte Dateien
Dateityp: 7z fileexplorer2010_114.7z (291,2 KB, 23x aufgerufen)
Dateityp: 7z fileexplorer2006_234.7z (168,2 KB, 9x aufgerufen)
Dateityp: 7z fileexplorer_168.7z (21,2 KB, 8x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Falsche Anzeige im TreeView.

  Alt 6. Apr 2010, 09:53
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Falsche Anzeige im TreeView.

  Alt 6. Apr 2010, 14:22
In der procedure TCustomTreeView.CNNotify gibt es diese Passage:

Delphi-Quellcode:
    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;
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.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Falsche Anzeige im TreeView.

  Alt 6. Apr 2010, 18:22
Zitat von mkinzler:
Du benötigst zudem Unicodefähige Komponenten
Das was wir bei Turbo Delphi haben, reicht in diesem Falle aus. Ich habe mich nur ins Bockshorn jagen lassen, weil beim Case einmal beide Varianten der Variable (A und W) angegeben waren. Die anderen Variablen waren aber nur A-Versionen. Deshalb waren nach dem PWideChar nur noch die ersten Buchstaben zu sehen. Und nach dem Umschalten auf Unicode-TreeView gar nichts. Jetzt geht es. Und für diejenigen, welche es brauchen können, gibt es das ganze im Anhang. Mit Turbo Delphi ist das Beispiel auch nur halb so groß wie mit Delphi 2010.
Angehängte Dateien
Dateityp: 7z fileexplorer_422.7z (21,5 KB, 7x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Falsche Anzeige im TreeView.

  Alt 7. Apr 2010, 11:24
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.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  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 16:00 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