Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

Фокус формы, события OnMouseEnter, Leave   Найти похожие ветки 

 
Colonel   (2005-01-07 01:21) [0]

Доброй ночи всем тем, кто не спит. Столкнулся с следующей проблемой, нужно отловить вхождение/покидание курсора на форму, т.е при попадании курсора на форму делать что-то и при покидании формф - тоже производить действие. Вся проблема в том, что я использую форму без заголовка. И событие OnMouseMove работает некорректно. Нужен обработчик OnMouseEnter, Leave или обработчик фокуса. Да, еще вот что, при наведении курсора на форму, форма не активизирутся.

Есть ли какие соображения по этому поводу ?


 
Gero ©   (2005-01-07 01:25) [1]

CM_MOUSEENTER/CM_MOUSELEAVE


 
Colonel   (2005-01-07 01:59) [2]

Как сие добро обрабатывать ? И где ?


 
Gero ©   (2005-01-07 02:04) [3]

type
 TForm1 = class(TForm)
 private
   procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;


 
Colonel   (2005-01-07 02:12) [4]

Буду пробовать юзать. Пасиб.


 
Colonel   (2005-01-07 02:27) [5]

To Gero [3]

Так, что-то я не понял, а как проверять это все ?
Условие какое ?
И какой параметр у msg проверять ?
Что писать в самой процедуре ?


procedure CMMouseEnter(var Msg: TMessage);
begin
 if msg. и как здесь и на что проверять ?
end;


Буду очень признателен.


 
Colonel   (2005-01-07 02:43) [6]

Все я разобрался. Пасиб тебе Gero за помощь.


 
Colonel   (2005-01-07 03:05) [7]

Теперь возникла другая проблема:
У меня есть обработчик нажатия на форму :


procedure TMain.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 ReleaseCapture;
 Perform(WM_SYSCOMMAND,$F012,0);
end;


Для того чтобы форму можно было перетаскивать за любой участок, т.к заголовка у моей формы нет, но это событие срабатывает только после 2-го нажатия на форме. В чем может быть проблема ?

Код моего обработчика по OnMouseEnter, Leave :


procedure TMain.CMMouseEnter(var Msg: TMessage);
begin
 f_space.show;
 inherited;
end;

procedure TMain.CMMouseLeave(var Msg: TMessage);
begin
 f_space.hide;
 inherited;
end;


И обработчик на нажатие правой кнопки мыши тоже срабатывает с 2-го нажатия. В чем может быть дело ?


procedure tmain.WMRBUTTONDOWN(var mes:TMessage);
begin
 if mes.WParam=2 then close;
 inherited;
end;


Thnx


 
grom   (2005-01-07 17:26) [8]

var
d: boolean;
x0,y0: integer;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d := true;
x0 := x;
y0 := y;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d := false;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if d then
begin
Left := Left + x - x0;
Top := Top + y - y0;
end;
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.049 c
10-1078839209
zquestion
2004-03-09 16:33
2005.01.23
Как работать с POA в Delphi 7.


1-1105263770
Андрей М.
2005-01-09 12:42
2005.01.23
SelectDirectory с возможностью создать папку


1-1104840516
frEE)stylEr
2005-01-04 15:08
2005.01.23
Сохранить данные


8-1097729787
vlgrig1961
2004-10-14 08:56
2005.01.23
TIF формат ???


3-1103542973
IBChaynik
2004-12-20 14:42
2005.01.23
BLOB поле





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский