уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Компонент TSearchBox появился впервые в Delphi 10 Seattle и представляет собой обычный TEdit со встроенной кнопкой поиска, которая может менять свой внешний вид (иконку) в зависимости от настроек компонента.

Основная информация по компоненту
Вкладка палитры компонентов Windows 10
Исходник официального примера и документация SourceForge DocWiki

Демонстрационный пример показывает как использовать элемент управления TSearchBox и его событие OnInvokeSearch.

Приложение использует следующие элементы управления:

  • SB: компонент TSearchBox.
  • lstLog: список TListBox для сообщений.
  • grpBiDiMode: переключатели TRadioGroup, которые позволяют вам изменить свойство BiDiMode.
  • grpSearchIndicator: переключатели TRadioGroup, позволяющие изменить значок индикатора поиска.
  • chkEnabled: TCheckBox включает или отключает окно поиска.
  • cbxVclStyles: поле со списком TComboBox, которое позволяет вам изменить стиль приложения.

Внешний вид демонстрационного приложения представлен на рисунке ниже:

Использование компонента

Для смены внешнего вида кнопки компонента TSearchBox используется свойство:

TSearchBoxIndicator = (sbiText, sbiAudio);

Когда пользователь вводит текст в строку поиска (TSearchBox) и нажимает на клавишу Enter или же на кнопку, то у компонента срабатывает событие:

OnInvokeSearch: TNotifyEvent

Демонстрационный пример

В демонстрационном примере показывается использование свойств TSearchBox, а также использование его событие OnInvokeSearch.

Смена значка кнопки у TSearchBox осуществляется следующим образом:

procedure TSearchBoxForm.grpSearchIndicatorClick(Sender: TObject);
begin
  SB.SearchIndicator := TSearchBoxIndicator(grpSearchIndicator.ItemIndex);
  ....
end;

Обработчик события OnInvokeSearch выглядит следующим образом:

procedure TSearchBoxForm.SBInvokeSearch(Sender: TObject);
begin
  //если значок кнопки для текстового поиска
  if SB.SearchIndicator = sbiText then 
     Log('Text: OnInvokeSearch - "' + SB.Text + '"')
  //если значок кнопки для аудио поиска
  else
    Log('Audio: OnInvokeSearch');
end;

На рисунке ниже представлен пример работающего демонстрационного приложения, в котором показано как выглядит TSearchBox с иконкой для аудио поиска:

При подготовке статьи использовалась информация со следующих ресурсов:

  1. Официальный репозиторий демострационных примеров Delphi на SourceForge
  2. Документация по компоненту на сайте Embarcadero

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.