Listbox i problem

0

Witam!!!
Mam mały problem. Podam teraz kod i go opisze.

procedure TForm1.PrzegladajClick(Sender: TObject);
var
i:integer;
i2:integer;
begin
if rysunek.Execute then
begin
for i:=0 to listbox1.items.count-1 do
begin
for i2:=0 to listbox1.items.count-1 do
begin
if listbox1.items.strings[i]=listbox1.items.strings[i2] then
begin
MessageBox(Handle, 'Taki plik już został wybrany', 'Błąd', MB_OK);
end;
end;
end;
listbox1.items.Add(rysunek.Files.Strings[0]);
end;
end;

Trzeba wstawic na forme lisbox1,przegladaj(Button),rysunek(OpenPictureDialog)
Piszac ten kod miałem na mysli takie cos , ze jak user programu wybierze dwa razy ten sam plik to pojawi sie blad, ale po napsaniu kodu za kazdym nastepnym(po pierwszym razie)wybraniu pojawia sie błąd. Co zrobiłem zle. Przerobiłem ten kod na taki ale tez nie działa.

procedure TForm1.PrzegladajClick(Sender: TObject);
var
i:integer;
i2:integer;
begin
if rysunek.Execute then
begin
listbox1.items.Add(rysunek.Files.Strings[0]);
end;

for i:=0 to listbox1.items.count-1 do
begin
for i2:=0 to listbox1.items.count-1 do
begin
if listbox1.items.strings[i]=listbox1.items.strings[i2] then {1}
begin
MessageBox(Handle, 'Taki plik już został wybrany', 'Błąd', MB_OK);
listbox1.items.delete(i);{ tu nie wiedziałem czy i czy i2}
end;
end;
end;
end;

1.Moze delphi przy sprawdzaniu stringów cos nawala.
Prosze o niezwłoczną odp.

0

Użyj raczej items.duplicates + f1 lub vcl.4programmers.net - o to pewnie chodzi?

0

Nie wiem czy dobrze zrozumialem, ale chyba po prostu chcesz sprawdzic czy dana sciezka juz jest na liscie i jesli jest to wyswietlic komunikat, a jesli nie ma to dodac nowa. Jesli tak to nie wiem po co te kombinacje z petlami.

procedure TForm1.PrzegladajClick(Sender: TObject);
begin

if rysunek.Execute then begin
if ListBox1.Items.IndexOf(rysunek.Files.Strings[0]) -1 then
MessageBox(Handle, 'Taki plik już został wybrany', 'Błąd', MB_OK)
else
ListBox1.Items.Add(rysunek.Files.Strings[0]);
end;

end;

Chyba cos takiego. Jesli walnalem jakas gafe to mnie poprawcie bo to mi sie za proste wydaje :)

0

Działa jeszcze lepiej niz myslałem. Bo jak u mnie byl plik dwa razy wybrany to i tak wstawiał sciezke . Dzieks

1 użytkowników online, w tym zalogowanych: 0, gości: 1