Компонент TComboBox с пошаговым поиском в спискеDelphi , Компоненты и Классы , СпискиКомпонент TComboBox с пошаговым поиском в списке
Оформил: DeeCo Автор: Роман Журавлев Мне понадобился компонент TComboBox с пошаговым поиском в списке.Несколько модифицированный стандартный TComboBox компонент с возможностью инкрементального поиска нашел на lithops.mastak.com. Для Borland C++ Builder. Переписал его на Delphi, может кому пригодится. Всю критику по коду приму по мылу. Here's the translation of the Delphi code into Russian: Единица ComboSearch; интерфейс uses Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs; тип TComboSearch = класс (TComboBox) private FSearching: Boolean; procedure DoSearch(Param: integer); protected procedure DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); override; public constructor Create(AOwner: TComponent); override; end; var ComboSearchClass: TComboSearch; implementation uses ComCtrls, Edit; constructor TComboSearch.Create(AOwner: TComponent); begin inherited Create(AOwner); FSearching := False; end; procedure TComboSearch.DoSearch(Param: integer); begin if FSearching then SearchEdit.Text := SearchEdit.Text + Chr(Param); end; procedure TComboSearch.DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var Str: string; StartPos: integer; begin if FSearching then begin Str := Items.Strings[Index]; StartPos := SearchEdit.TextLength + 1; if Pos(UpCase(SearchEdit.Text), UpCase(Str)) > StartPos then Rect.Left := Rect.Left - (Rect.Right - Rect.Left) * (StartPos / Length(Str)); end; inherited DrawItem(Control, Index, Rect, State); end; end. Автор статьи Роман Журавлев создал модифицированный компонент TComboBox с пошаговым поиском в списке, который он переписал из версии для Borland C++ Builder на Delphi и предоставил его для использования. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |