powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBEditEh
3 сообщений из 3, страница 1 из 1
DBEditEh
    #39695201
igorgal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

1. На форме лежит DBEditEh
2. У него созданы две кнопки TVisibleEditButtonEh

Как отловить MouseEnter у одной из кнопок?

Если делать через WindowProc и ловить CM_MOUSEENTER, то можно заметить, что, если курсор находится над кнопками, то TControl(Message.lParam).ClassName = TEditButtonsBoxEh, т.е. это вся область какая-то, на которой расположены все кнопки, а мне нужно отловить именно у конкретной кнопки.

Подскажите, пож, как это сделать?
...
Рейтинг: 0 / 0
DBEditEh
    #39695229
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorgal,
воспользуйся протектед массивом FEditButtonControlList, он содержит все кнопки

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrlsEh;

type
  TMyC = class(TCustomDBEditEh);
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormShow(Sender: TObject);
  private
    Edh: TDBEditEh;
    { Private declarations }
    procedure OnBtnMouseEnter(Sender: TObject); virtual;
    procedure OnBtnMouseEnter2(Sender: TObject); virtual;

    procedure OnBtnMouseLeave(Sender: TObject); virtual;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.FormShow(Sender: TObject);
begin
  Edh := TDBEditEh.Create(Self);
  Edh.Parent := Self;

  Edh.EditButtons.Add;
  Edh.EditButtons.Add;
  Edh.EditButtons.Add;
  Edh.EditButtons.Add;

  TMyC(Edh).FEditButtonControlList[1].EditButtonControl.OnMouseEnter
    := OnBtnMouseEnter;
  TMyC(Edh).FEditButtonControlList[2].EditButtonControl.OnMouseEnter
    := OnBtnMouseEnter2;

  TMyC(Edh).FEditButtonControlList[1].EditButtonControl.OnMouseLeave
    := OnBtnMouseLeave;
  TMyC(Edh).FEditButtonControlList[2].EditButtonControl.OnMouseLeave
    := OnBtnMouseLeave;

end;


procedure TForm1.OnBtnMouseEnter(Sender: TObject);
begin
  Label1.Caption := 'Enter 1';
end;

procedure TForm1.OnBtnMouseEnter2(Sender: TObject);
begin
  Label1.Caption := 'Enter 2';
end;

procedure TForm1.OnBtnMouseLeave(Sender: TObject);
begin
  Label1.Caption := ''

end;

end.
...
Рейтинг: 0 / 0
DBEditEh
    #39695232
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorgal,
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBEditEh
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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