Форум: "Основная";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
ВнизПозиция курсора? Найти похожие ветки
← →
newUser (2002-07-05 11:49) [0]Как узнать что курсор покинул границы моей формы?
← →
Skier (2002-07-05 11:54) [1]>newUser
Поставь обработчики на события MOUSEENTER и MOUSELEAVE
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
← →
newUser (2002-07-05 14:55) [2]Впринципе все работает, но не так как хотелось бы. Сообщение:
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
срабатывает только когда пользователь кликнет на любом другом окне, т.е. переведет вокус, а
мне надо чтобы как только курсор вышел за границы формы я об этом сразу узнал.
← →
Skier (2002-07-05 15:10) [3]>newUser
Не знаю как у тебя, но у меня всё работает без
всяких кликов на любом другом окне.
Давай подробней : в чём проблема ?
← →
newUser (2002-07-05 16:23) [4]У меня обработчик этого сообщения:
(procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;)
вызывается только когда зажата любая из кнопок мыши.
Т.е. если с зажатой кнопкой мыши курсор вывести за пределы формы, то сработает обработчик.
А можно ли сделать чтобы не надо было зажимать кнопку?
← →
Skier (2002-07-05 16:27) [5]>newUser
- Форма модальная ?
- Форма вызывается из DLL ?
← →
newUser (2002-07-05 16:42) [6]Обычная форма, да и вообще все обычное.
Может покажешь на примере? Хотя делаю вроде все правильно.
← →
Skier (2002-07-05 16:51) [7]>newUser
File|New Application
.DFM - файл
object Form1: TForm1
Left = 192
Top = 145
Width = 696
Height = 480
Caption = "Form1"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = "MS Sans Serif"
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 120
TextHeight = 16
end
.PAS - файл
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.CMMouseEnter(var Message: TMessage);
begin
WriteLn("Mouse Enter Message");
end;
procedure TForm1.CMMouseLeave(var Message: TMessage);
begin
WriteLn("Mouse Leave Message");
end;
end.
Только не забудь поставить флажок Generate console application
(Project|Options|Linker) Это для наглядности.
← →
newUser (2002-07-05 17:13) [8]У меня все тоже самое, но надпись "Mouse Leave Message" то появится после вывода курсора с формы, то не. Вообщем когда захочет тогда и срабатывает обработчик.
← →
Skier (2002-07-05 17:22) [9]>newUser
???
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c