Einzelnen Beitrag anzeigen

synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#1

OpenDialog, Multiselect, Listbox

  Alt 15. Okt 2003, 20:28
Hi Leute!

Ich hab ein Problem:

Ich habe einen OpenDialog, bei dem Multiselect eingeschaltet ist.
Dann habe ich noch 2 Listboxen. In die eine kommt der Dateiname ohne Pfad (Listbox1) und in die andere (Listbox2) kommt der Pfad noch dazu, also Pfad+Dateiname.

Das klappt auch wunderbar, ich kann mehrere Dateien im OpenDialog auswählen und sie werden wunderbar in die Listboxen eingefügt. Aber wenn ich jetzt nur eine Datei auswähle, dann wird sie nicht eingefügt.
Ich habe ncoh eine Funktion eingebaut, dass kein doppelter Eintrag vorkommt.

Hier ist der Code:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var i,ii:Integer;
begin
opendialog1.Options:=[ofAllowMultiSelect,ofEnableSizing]; //multiselect erlauben
if opendialog1.Execute then
begin
if opendialog1.Files.Count>1 then //falls multiselect
begin
for ii:= 0 to opendialog1.Files.Count-1 do
begin
i:=listbox1.items.IndexOf(extractfilename(opendialog1.Files.Strings[ii]));
if i<0 then //falls der Eintrag noch nicht existiert
begin
listbox1.Items.Append(extractfilename(opendialog1.Files.Strings[ii]));
listbox2.Items.Append(opendialog1.Files.Strings[ii]);
end;
end;
end;
end
//----------ende von multiselect
else
begin
i:=listbox1.items.IndexOf(extractfilename(opendialog1.Files[0]));
if i<0 then //falls der Eintrag noch nicht existiert
begin
listbox1.Items.Append(extractfilename(opendialog1.Files[0]));
listbox2.Items.Append(opendialog1.Files[0]);
end;
end;
end;
Mir scheint als würde er garnichterst zum else-Abschnitt kommen sondern sich schon vorher aus der Schleife verabschieden.

Wäre nett wenn mir einer weiterhelfen könnte

mfg synex
  Mit Zitat antworten Zitat