Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
6-58253
Aspirin
2002-05-08 22:04
2002.07.18
Как программно подключиться к прокси серверу.


1-58221
^Sanya
2002-07-07 02:36
2002.07.18
Мастера! Дайте пожалуйста совет!


3-57954
Weare
2002-06-21 17:27
2002.07.18
Задолбали индексы в Paradox e


3-57980
Элизабет
2002-06-26 16:43
2002.07.18
Срочно HELP! Detail в отчете


1-58134
Чайник2
2002-07-09 05:28
2002.07.18
CD-ROM





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский