Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 28 мар 2024, 15:19

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Фокус на SearchPanel в DropDown форме (з)
СообщениеДобавлено: 10 дек 2019, 13:20 
Не в сети

Зарегистрирован: 27 янв 2012, 09:40
Сообщений: 65
Откуда: Питер
Все привет!
Подскажите как реализовать фокусировку курсора на SearchPanel в DropDown форме, если она (панель) имеет Location: splGridTopEh (внутренняя, вверху) ?
Изображение

Попытка повесить на событие onShow на форме такой код, приводит к AV:
Код:
procedure TfrmDR_DOWN_GETTING_CLIENT.CustomDropDownFormEhShow(
  Sender: TObject);
begin
  TWincontrolEh(grMAINTABLE1.SearchPanel).SetFocus;
end;


А такой код, приводит к AbstractError:
Код:
procedure TfrmDR_DOWN_GETTING_CLIENT.CustomDropDownFormEhShow(
  Sender: TObject);
begin
  if TWinControlEh(grMAINTABLE1.SearchPanel).CanFocus then
  TWinControlEh(grMAINTABLE1.SearchPanel).SetFocus;
end;


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Фокус на SearchPanel в DropDown форме
СообщениеДобавлено: 11 дек 2019, 10:14 
Не в сети

Зарегистрирован: 15 авг 2018, 07:39
Сообщений: 106
Можно так попробовать:

Код:
TDBGridEhHelper = class helper for TDBGridEh
  private
    function GetSearchPanelControl(): TDBGridSearchPanelControlEh;
  public
    property SearchPanelControl: TDBGridSearchPanelControlEh read GetSearchPanelControl;
  end;


Код:
function TDBGridEhHelper.GetSearchPanelControl(): TDBGridSearchPanelControlEh;
begin
  Result := Self.FSearchPanelControl;
end;


И затем grid.SearchPanelControl.FindEditor.SetFocus;

Но! C первого раза не сработет (у меня, по крайней мере, не отрабатывает), только после того, как единожды фокус будет помещён кликом мыши.
Непосредственно в OnShow тоже не будет работать - нужно разносить, например, через сообщение:

Код:
const
  WM_TEST = WM_APP + 201;

type
  TformTest = class(TForm)
  protected
    procedure WMTest(var &Message: TMessage); message WM_TEST;
  end;

procedure TformTest.WMTest(var &Message: TMessage);
begin
  grid.SearchPanelControl.FindEditor.SetFocus;
end;


ЗЫ. И я не на DropDown форме пробовал.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Фокус на SearchPanel в DropDown форме
СообщениеДобавлено: 12 дек 2019, 16:21 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

Попробуйте в событии OnShow установить SearchPanel.Active

Код:
procedure TForm1.FormShow(Sender: TObject);
begin
  DBGridEh1.SearchPanel.Active = True;
end;

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Фокус на SearchPanel в DropDown форме
СообщениеДобавлено: 12 дек 2019, 16:39 
Не в сети

Зарегистрирован: 27 янв 2012, 09:40
Сообщений: 65
Откуда: Питер
Все получилось! Спасибо!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB