Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
ВнизЧто за сообщения такие Найти похожие ветки
← →
anod (2002-08-14 11:48) [0]CM_MOUSEENTER и CM_MOUSELEAVE, какие передаются параметры. Я посмотрел хелп, но ничего не нашел.
← →
Sedunov Vitaly (2002-08-14 12:11) [1]CM_MOUSELEAVE - возникает когда указатель мыши ушел за пределы формы, CM_MOUSEENTER - когда вернулся. А вот про параметры не подскажу... Скорее всего, MSDN читать надо.
← →
Skier (2002-08-14 12:17) [2]>anod
... LParam = Longint(Self) ... Больше никакой информации :(
← →
McSimm (2002-08-14 12:19) [3]MSDN ни при чем.
Это внутренние сообщения VCL.
Параметры (судя по исходникам) -
(0, 0),
либо (0, Self) при передаче сообщения от контрола своему Parent
← →
Внук (2002-08-14 12:19) [4]MSDN читать не надо, так как сообщения не системные, а определенные в VCL, исходники посмотреть надо, в частности Controls.pas
← →
Игорь Шевченко (2002-08-14 12:28) [5]Лучше forms.pas
← →
anod (2002-08-14 16:09) [6]Но эти сообщения только для формы Мне нужно обработать сообщения от кнопок, но WM_MOUSEMOUVE неудобно.
← →
Skier (2002-08-14 16:13) [7]>anod
> Но эти сообщения только для формы
Не только ! Если у тебя компонет - наследник TControl, то
можешь смело этими сообщениями пользоваться...
← →
anod (2002-08-14 16:17) [8]Нет, не наследник, а обычное окно типа "Button".
← →
Skier (2002-08-14 16:19) [9]>anod
TControl-
|-TWinControl-
|-TButtonControl-
|- TButton
Иерархию классов можешь смотреть в Help-е...
← →
Arhangel (2002-08-14 16:20) [10]Абалдеть;)
А вы тут распинались:)
← →
Arhangel (2002-08-14 16:20) [11]А как это окно типа Button&
← →
Skier (2002-08-14 16:22) [12]>Arhangel
Наследуется от TWinControl - значит оконный компонент
(он же визуальный), так что это окно - всё правильно !
← →
anod (2002-08-14 16:31) [13]У меня программа на ВинАпи, нет там TButton
← →
Skier (2002-08-14 16:32) [14]>anod
Тогда TrackMouseEvent...
The TrackMouseEvent function posts messages when the mouse pointer leaves a window or hovers over a window for a specified amount of time.
← →
anod (2002-08-14 16:33) [15]Ладно, а как же обрабатывать сообщение, если TButton,
примерчик можно?
← →
Skier (2002-08-14 16:35) [16]>anod
TExButton = class(TButton)
private
procedure CMMouseEnter(var Message: TMessage); message
CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message
CM_MOUSELEAVE;
end; //TExButton
{ TExButton }
procedure TExButton.CMMouseEnter(var Message: TMessage);
begin
inherited;
//your code goes here...
end;
procedure TExButton.CMMouseLeave(var Message: TMessage);
begin
inherited;
//your code goes here...
end;
← →
anod (2002-08-14 16:37) [17]>Skier
Большое спасибо.... и за TrackMouseEvent тоже
← →
anod (2002-08-14 16:55) [18]Выдает ошибку
var EventTrack: TTRACKMOUSEEVENT;
EventTrack.cbSize:=SizeOf(TTrackMouseEvent);
EventTrack.dwFlags:=TME_HOVER or TME_LEAVE;
EventTrack.hwndTrack:=B_Prev;
EventTrack.dwHoverTime:=HOVER_DEFAULT;
TrackMouseEvent(EventTrack);
[Error] MPL2.DPR(172): Types of actual and formal var parameters must be identical
И ещё, мне эту функцию всего один раз нужно выполнять (при старте программы)?
← →
Skier (2002-08-14 17:05) [19]>anod
TrackMouseEvent(@EventTrack) ?
Хотя у меня и так работает...(у меня NT)
← →
Anatoly Podgoretsky (2002-08-14 17:16) [20]anod © (14.08.02 16:31)
Тогда и сообщений этих нет
← →
anod (2002-08-14 17:25) [21]>Skier
Нет. тоже самое.
>Anatoly Podgoretsky
Ну я пишу в WM_MOUSEMOVE???
← →
Skier (2002-08-14 17:38) [22]>anod
Это не поможет ?
var EventTrack: PTRACKMOUSEEVENT;
begin
EventTrack := AllocMem(SizeOf(TTrackMouseEvent));
try
with EventTrack^ do begin
cbSize:=SizeOf(TTrackMouseEvent);
dwFlags:=TME_HOVER or TME_LEAVE;
hwndTrack:=B_Prev;
dwHoverTime:=HOVER_DEFAULT;
end; //with
TrackMouseEvent(EventTrack);
finally
FreeMem(EventTrack, SizeOf(TTrackMouseEvent));
end; //try
end;
← →
Anatoly Podgoretsky (2002-08-14 17:47) [23]Ты можешь подсмотреть реализацию в исходниках VCL и применить тож метод у себя в WinApi
← →
Игорь Шевченко (2002-08-14 18:04) [24]Anatoly Podgoretsky © (14.08.02 17:47)
CM_MOUSEENTER/CM_MOUSELEAVE вызываются из Application.Idle (TApplication.DoMouseIdle) Сомневаюсь я, что в программу на WinApi это будет легко и просто перенести...
← →
Набережных С. (2002-08-14 22:01) [25]
> anod © (14.08.02 16:55)
Попробуй так:
var EventTrack: Windows.TTRACKMOUSEEVENT;
Вдруг поможет.
← →
anod (2002-08-14 22:08) [26]2Набережных С.
Спасибо. Именно в этом и проблема.
← →
Anatoly Podgoretsky (2002-08-14 22:25) [27]Игорь Шевченко © (14.08.02 18:04)
Тогда плохо дело, но принцип все равно можно посмотреть
← →
anod (2002-08-14 23:08) [28]2Anatoly Podgoretsky
Ууу, я там много чего смотрел, но блин не понятно, как это все в конкретную задачу вставить.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c