Получить доступ к элементам списка с помощью APIDelphi , Компоненты и Классы , СпискиПолучить доступ к элементам списка с помощью API
Оформил: DeeCo { This code might be useful for nonVCL applications or to read Listbox items from another application. } { Die folgenden Funktionen konnen z.B fur nonVCL Projekte verwendet werden oder auch zum Auslesen von Listboxen aus anderen Applikationen. } // Retrieve the number of items in a ListBox // Anzahl Eintrage einer ListBox ermitteln function LB_GetItemCount(hListBox: THandle): Integer; begin Result := SendMessage(hListBox, LB_GETCOUNT, 0, 0); end; // Delete a string in a ListBox // Einen String in einer ListBox loschen procedure LB_DeleteItem(hListBox: THandle; Index: Integer); begin SendMessage(hListBox, LB_DELETESTRING, Index, 0); end; // Retrieve the selected item from a ListBox // Gibt den Text des markiertes Items einer ListBox zuruck function LB_GetSelectedItem(hListBox: THandle): string; var Index, len: Integer; s: string; buffer: PChar; begin Index := SendMessage(hListBox, LB_GETCURSEL, 0, 0); len := SendMessage(hListBox, LB_GETTEXTLEN, wParam(Index), 0); GetMem(buffer, len + 1); SendMessage(hListBox, LB_GETTEXT, wParam(Index), lParam(buffer)); SetString(s, buffer, len); FreeMem(buffer); Result := IntToStr(Index) + ' : ' + s; end; // Example, Beispiel: procedure TForm1.Button1Click(Sender: TObject); var hListBox: THandle; begin hListBox := {...}; // listbox handle ListBox1.Items.Text := LB_GetSelectedItem(hListBox); end; // Retrieve a string from a ListBox // Gibt den Text eines bestimmten Items einer ListBox zuruck function LB_GetListBoxItem(hWnd: Hwnd; LbItem: Integer): string; var l: Integer; buffer: PChar; begin l := SendMessage(hWnd, LB_GETTEXTLEN, LbItem, 0); GetMem(buffer, l + 1); SendMessage(hWnd, LB_GETTEXT, LbItem, Integer(buffer)); Result := StrPas(buffer); FreeMem(buffer); end; // Example, Beispiel: procedure TForm1.Button2Click(Sender: TObject); var hListBox: THandle; begin hListBox := {...}; // listbox handle ListBox1.Items.Text := LB_GetListBoxItem(hListBox, 2); end; // Gibt den gesamten Text einer ListBox zuruck // Retrieve all listbox items function LB_GetAllItems(hWnd: Hwnd; sl: TStrings): string; var RetBuffer: string; i, x, y: Integer; begin x := SendMessage(hWnd, LB_GETCOUNT, 0, 0); for i := 0 to x - 1 do begin y := SendMessage(hWnd, LB_GETTEXTLEN, i, 0); SetLength(RetBuffer, y); SendMessage(hWnd, LB_GETTEXT, i, lParam(PChar(RetBuffer))); sl.Add(RetBuffer); end; end; // Example, Beispiel: procedure TForm1.Button3Click(Sender: TObject); var sl: TStringList; ListBox_Handle: THandle; begin hListBox := {...}; // listbox handle sl := TStringList.Create; try LB_GetAllItems(ListBox_Handle, sl); finally ListBox1.Items.Text := sl.Text; sl.Free; end; end; Вот перевод текста на русский язык: Это фрагмент кода Delphi, который предоставляет несколько функций для взаимодействия с контролем списка (listbox) с помощью Windows API. Код включает в себя четыре основные функции:
Также есть три примера, которые демонстрируют использование этих функций:
Рассмотрим каждый функцию: LB_GetItemCount
Эта функция отправляет сообщение LB_DeleteItem
Процедура отправляет сообщение LB_GetSelectedItem
Функция отправляет сообщение LB_GetListBoxItem
Функция отправляет сообщение В отношении альтернативных решений, вы можете использовать встроенный компонент Обратите внимание, что placeholders Получить доступ к элементам списка с помощью API: код на Delphi для чтения и записи данных из listbox. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |