tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
592
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sadi al Wadidrah Sadi al Wadidrah ist offline Mitglied Silber
    Registriert seit
    Jun 2005
    Ort
    Schweiz
    Beiträge
    65
    Hallo, falls jemand so lange gesucht hat wie ich:

    Die Eigenschaft "Path" Eigenschaft der TShellTreeView-Komponente liefert bei einem CD-Zugriff falsche Resultate, sobald die Pfadtiefe mehr als 1 beträgt. Bei "X:\Test1\Test2\Test.test" gibt wird nur "X:\Test1" zurückgegeben.

    Es scheint keine andere Möglichkeit zu geben, als den Bug mit einer eigenen Funktion mit "Parent" und "Item.Text" zu umgehen.

    grz Sadi

    PS: Der Bug wurde Borland(?) schon gemeldet.

    edit: Borland -> Borland: Code Gear
    Geändert von Sadi al Wadidrah (08.07.08 um 21:54 Uhr)
     
    Lächle, morgen wird alles noch schlimmer ...

  2. #2
    Sadi al Wadidrah Sadi al Wadidrah ist offline Mitglied Silber
    Registriert seit
    Jun 2005
    Ort
    Schweiz
    Beiträge
    65
    Hier ist eine Lösung zum Problem. Ein Workaround:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    function TMain_Form.GetSTWPath(Listenname: ShortString): String;
    var
      s: TShellFolder;
      isroot: boolean;
      sTemp: String;
    begin
      s := TShellTreeView(FindComponent(Listenname)).SelectedFolder;
      isroot := TShellTreeView(
        FindComponent(Listenname)).Selected.AbsoluteIndex = 0;
      if isroot or (s.PathName <> s.Parent.PathName) then
      begin
        result := s.PathName;
      end
      else begin    // Flickschusterei für CD-ROMs
        result := s.DisplayName;
        while s.PathName = s.Parent.PathName do
        begin
          s := s.Parent;
          result := IncludeTrailingPathDelimiter(s.DisplayName) + result;
        end;
        sTemp := TShellTreeView(FindComponent(Listenname)).Path;
        result :=  LeftStr(sTemp, Pos('\', sTemp)) + result;
      end;
    end;

    Sie wird so aufgerufen:

    Code :
    1
    
    string1 := GetSTWPath('ShellTreeView1');

    hoffe, eine Hilfe gewesen zu sein.

    grz Sadi
     
    Lächle, morgen wird alles noch schlimmer ...

Ähnliche Themen

  1. [Allgemein] Bugreport Tool
    Von goela im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 11.01.03, 00:33
  2. bugreport sinnvoll?
    Von melmager im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 21.08.02, 20:32