Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом / 13 сообщений из 13, страница 1 из 1
11.01.2019, 20:34
    #39758604
Sergey-2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
Доброе время суток форумчане,

В модуле объявил:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
type
  TDBLookUpComboBoxHint = class(TCustomDBLookupComboBox)

  private
    FHint: THintWindow;

  protected
    procedure WMCTLCOLORLISTBOX(var Message: TMessage); message  ;
  end;
var
  Form2: TForm2;
  FMyLookUpComboBoxHint: TDBLookUpComboBoxHint;



Создал компонент и присвоил ему событие «OnMouseMove» компонента на форме «DBLookupComboBox»

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TForm2.FormCreate(Sender: TObject);
begin
  FMyLookUpComboBoxHint := TDBLookUpComboBoxHint.Create(self);
  with FMyLookUpComboBoxHint do
  begin
    Parent := self;
    FMyLookUpComboBoxHint.OnMouseMove := DBLookupComboBox1.OnMouseMove;
  end;
end;



и написал заготовку для обработки сообщения

Код: pascal
1.
2.
3.
4.
procedure TDBLookUpComboBoxHint.WMCTLCOLORLISTBOX(var Message: TMessage);
begin
  FHint := ‘’;
end; 



А вот как теперь его отловить сообщение которое будет генерироваться пока водишь мышкой по выпадающему списку DBLookupComboBox1?
...
Рейтинг: 0 / 0
11.01.2019, 20:52
    #39758613
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
Sergey-2008
Код: pascal
1.
procedure WMCTLCOLORLISTBOX(var Message: TMessage); message ;

1815252
...
Рейтинг: 0 / 0
11.01.2019, 20:59
    #39758619
Sergey-2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
ma1tus,

да
у меня конечно стоит
Код: pascal
1.
procedure WMCTLCOLORLISTBOX(var Message: TMessage); message WM_CTLCOLORLISTBOX;
...
Рейтинг: 0 / 0
11.01.2019, 21:07
    #39758622
Sergey-2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
и да, там не совсем то,
тамм не говорится о методе связи DBLookupComboBox1 и созданного " FMyLookUpComboBoxHint "
тем более у "DBLookupComboBox1" нет события отлавливающего перемещения мышки по выпадающему списку, а только по мамому компоненту.
...
Рейтинг: 0 / 0
11.01.2019, 23:51
    #39758651
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
WM_CTLCOLORLISTBOX
This message is sent to the parent window of a list box before Windows draws the list box.
...
Рейтинг: 0 / 0
12.01.2019, 00:27
    #39758658
Sergey-2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
DimaBr,
хорошо,
а поскольку я сделал

Код: pascal
1.
FMyLookUpComboBoxHint.OnMouseMove := DBLookupComboBox1.OnMouseMove;



то, при выпадании списка DBLookupComboBox1, будет/должна вызываться процедура

Код: pascal
1.
procedure TDBLookUpComboBoxHint.WMCTLCOLORLISTBOX(var Message: TMessage);


?
в которой я и должен обрабатывать hint?
...
Рейтинг: 0 / 0
12.01.2019, 01:18
    #39758667
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
Причём здесь OnMouseMove и WMCTLCOLORLISTBOX ?
OnMouseMove - срабатывает когда мышка перемещается по FMyLookUpComboBoxHint
WMCTLCOLORLISTBOX - когда нужно перерисовать выпадающий список
...
Рейтинг: 0 / 0
12.01.2019, 01:37
    #39758668
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
...
Рейтинг: 0 / 0
12.01.2019, 02:32
    #39758671
Sergey-2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
DimaBr,

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

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
procedure TDBLookUpComboBoxHint.WMCTLCOLORLISTBOX(var Message: TMessage);
begin
  case Message.Msg of
    WM_CTLCOLORLISTBOX:
                       begin
                         Form2.Caption := IntTostr(Random(1000));
                       end;
  end;
  inherited;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  FMyLookUpComboBoxHint := TDBLookUpComboBoxHint.Create(self);
  FMyLookUpComboBoxHint.FHint := THintWindow.Create(Self);
  with FMyLookUpComboBoxHint do
  begin
    Parent := self;
    FMyLookUpComboBoxHint.OnMouseMove := DBLookupComboBox1.OnMouseMove;
  end;
end;



или я что-то не доприсваивал, хотя в выпадающем списке DBLookupComboBox1 , активная строка не подсвечивается, как ComboBox1
...
Рейтинг: 0 / 0
12.01.2019, 12:45
    #39758725
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
Sergey-2008интересно, почему у меня сообщение не отрабатывает, как у васПотому как полное отсутствие представления о том как работают компоненты и оконные контролы в винде. Пытаешься скрестить ежа с ужом - присвоение vcl-ного обработчика события никак не повлияет на виндовые мессаги если только сам их не спровоцируешь. Надо хорошенько подтянуть матчасть, прежде чем влезать в винапи
...
Рейтинг: 0 / 0
12.01.2019, 13:38
    #39758738
Sergey-2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
white_nigger,

хорошо, накидайте мне пожалуйста пункты, которые мне нужно проработать, чтоб я сделал этот чертов хинт (если не сложно)
...
Рейтинг: 0 / 0
12.01.2019, 21:27
    #39758832
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
Вроде и код привёл, и картинку.
Скачайте готовый компонент и не мучайтесь
...
Рейтинг: 0 / 0
13.01.2019, 13:53
    #39758946
Sergey-2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом
DimaBr,
так то же для "ComboBox", а у меня "DBLookupComboBox" или суть одна и таже?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как поймать WM_CTLCOLORLISTBOX DBLookupCombobox ом / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]