ShellListView - endnu en gang.
Ok, denne her er lidt kryptisk, eller også har jeg stirret mig blind på den..Meningen er at hente alle fil-extension fra en ShellListView ind i en ComboBox. En extension skal selvfølgelig kun optræde én gang, og mapper og drev (som jo bliver vist i en ShellListView) skal ikke tages i betragtning. Ok, hver gang indholdet af ShellListView'en ændres, kaldes denne procedure :
----------------------------------------------------------
procedure TFormNamer.changeQuickSelect;
var
I,II : Integer;
Seen : Boolean;
Tmp : String;
begin
Tmp:='';
ComboBoxQuickSelect.Clear;
ComboBoxQuickSelect.Items.Add('..QuickSelect');
for I:=0 to (ShellListViewFiles.Items.Count-1) do begin
if not ShellListViewFiles.Folders[I].isFolder then begin
Seen:=false;
Tmp:=LowerCase(ExtractFileExt(ShellListViewFiles.Folders[I].DisplayName));
if Tmp='' then Tmp:='.<no extension>';
for II:=1 to I+1 do if Tmp=ComboBoxQuickSelect.Items[II] then Seen:=true;
if not Seen then ComboBoxQuickSelect.Items.Add(Tmp);
end; // if isFolder
end; // for I
ComboBoxQuickSelect.ItemIndex:=0;
end;
----------------------------------------------------------
Det ser tilsyneladende ud til at virke, mén.. Når jeg vælger en mappe der hedder "C:\Documents and Settings\Memnoch\Desktop\FlaskMpeg 0.78.39" som indeholder en fil "flaskmpeg_078_39.zip" og en mappe "flaskmpeg_078_39" bliver indholdet af min ComboBox kun :
"..QuickSelect"
og IKKE :
"..QuickSelect
.zip"
Som det var meningen. Hvorfor?
Håber I forstår spørgsmålet.
/Mnc
