Если добавление из БД, соответсвенно, регистр будет одинаковый для любой попытки, то можно так:
Код:
procedure AddItemToListBox(AListBox : TListBox; AItem : String);
begin
If AListBox.Items.IndexOf(AItem) = -1
Then AListBox.Items.Add(AItem)
Else
If MessageDlg('Элемент уже есть. Добавляем?',mtConfirmation,[mbYes,mbNo],0) = mrYes
Then AListBox.Items.Add(AItem);
end;
Если надо проверять без учета регистра, то можно сделать свою функцию IndexOf, например:
Код:
function IndexOfText(AList : TStringList; AStr : String) : Integer;
var
I : Integer;
begin
Result := -1;
For I := 0 To AList.Count-1 Do
If AnsiCompareText(AList[i],AStr) = 0 Then
Begin
Result := I;
Break;
End;
end;