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