Показать сообщение отдельно
  #3  
Старый 16.04.2013, 02:33
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,024
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Если добавление из БД, соответсвенно, регистр будет одинаковый для любой попытки, то можно так:
Код:
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;
Ответить с цитированием