ListBoxの項目を文字列で検索する

リストボックス中の項目を項目の値で検索するには TListBox.Items.IndexOf が使えるのですが、どうしても Win32 API でやりたい場合は LB_FINDSTRINGEXACTメッセージを使用することで実現できます。以下の例は Edit1に入力された文字列と同じ内容の項目をリストボックスから探し出します。

■ ListBox の項目を文字列で検索する例 (API)
var
  strItem      :  String;
  intIndex     :  integer;
begin
  strItem      :=      Edit1.Text;
  intIndex     :=      ListBox1.Perform(LB_FINDSTRINGEXACT, 0, Longint(PChar(strItem)));
  ListBox1.ItemIndex   :=   intIndex;
  ListBox1.SetFocus;
end

.