Listboxa eklenen satırlardan iki veya daha fazlası aynı olunca listboxın temizlenmesini istiyorum. Yani listbox dinamik durumda ve sürekli birşeyler ekleniyor. Eğer iki veya daha fazla aynı satır eklenirse listbox temizlensin nasıl yapabiliriz

Kod: Tümünü seç
var
i, j: integer;
begin
for i := 0 to ListBox.ItemCount do
for j := i + 1 to ListBox.ItemCount - 1 do
if ListBox.Items[i] = ListBox.Items[j] then
begin
ListBox.Items.Clear;
break;
end;
//...
end;
s1lv3r yazdı:Arkadaşlar timer ile sürekli kontrol ettireceğim.
Listboxa eklenen satırlardan iki veya daha fazlası aynı olunca listboxın temizlenmesini istiyorum. Yani listbox dinamik durumda ve sürekli birşeyler ekleniyor. Eğer iki veya daha fazla aynı satır eklenirse listbox temizlensin nasıl yapabiliriz
Kod: Tümünü seç
function TForm1.Add2ListBox(LB : TListBox; S : String) : Boolean;
begin
Result := (LB.Items.IndexOf(S) = -1);
if Result Then
LB.Items.Add(S)
Else
LB.Clear;
//Result=True ise veri listeye eklendi.
//result=False ise veri zaten listede vardı ve listeyi sıfırladık..
end;
Kod: Tümünü seç
.
.
b := Add2ListBox(ListBox1, 'yeni metin');
b := Add2ListBox(ListBox2, 'değişik bişey');
b := Add3ListBox(ListBox2, 'delphi güzeldir');
//bu satır ile ListBox1 sıfırlanacaktır...
b := Add1ListBox(ListBox2, 'yeni metin');
//Dönüş değeri sadece bilgi olsun diye var. Gerekmiyorsa
//bu şekilde de kulanabilirsiniz.
Add2ListBox(ListBox1, 'abcde');
.
.