Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Pfade parsen um Icons zu extrahieren

  Alt 29. Sep 2016, 10:16
Wie kann ich am schnellsten die realen Pfade parsen.
Es geht mir darum die Icons zu den Pfaden zu extrahieren um diese dann zu meiner Combo zu addieren.

Also was ich bekomme sind nur die Ordner.
bsp. In der Reihenfolge.

Desktop.
Computer.
Work (D).
Musik.
Neu.
Die Hitgiganten.

usw.. Ohne vollständigen Pfad kann ich die Icons nicht extrahieren.
Wie also am schnellsten parsen?

Beim aktuell selektieren Item ist das kein Problem da habe ich den vollständigen Path und lade ich hier..

Delphi-Quellcode:
CDN_FOLDERCHANGE:
begin
  SelectedPath := PWideChar(OpenDialog.GetDlgPath(CDM_GETFOLDERPATH, WinHandle));
  Result := 1;
  Exit;
end;
Die anderen Pfade bekomme ich hier geliefert aber nicht vollständig.

Delphi-Quellcode:
    WM_DRAWITEM:
      begin
        PDis := Pointer(lp);
        case PDis^.CtlType of
          ODT_COMBOBOX:
            begin
              cbComboPath.Listclear(cbComboPath.Handle);
              TxTCount := SendMessageW(PDis.hwndItem, CB_GETCOUNT, 0, 0);
              SetLength(ComboTxt, TxTCount + 1);
              for IntI := 1 to TxTCount do
              begin
                ComboTxt[IntI] := PWideChar(ListGetText(PDis.hwndItem, IntI));
                cbComboPath.ListAdd(cbComboPath.Handle, ComboTxt[IntI]);
              end;
              Index := SendMessage(PDis.hwndItem, CB_GETCURSEL, 0, 0);
              if Index > -1 then
                cbComboPath.ListSetTopIndex(cbComboPath.Handle, Index + 1);

              Result := 1;
            end;
        end;
      end;
Das ist mein Problem

Also es geht nicht darum einen vollständigen Pfad zu parsen.. das ist kein Problem mit Findfirst/Findnext
D:\Musik\Neu\Die Hitgiganten
Sondern die einzelnen Ordner die nicht bekannt sind angefangen bei "Die Hitgiganten" rekursive zu ermitteln.
Bis ich mich letztendlich im Pfad des Desktop befinde.

gruss

Geändert von EWeiss (29. Sep 2016 um 11:19 Uhr)
  Mit Zitat antworten Zitat