Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

закрыть окно


9899100 ©   (2007-12-05 15:28:00) 

Уважаемые! подскажите, надо закрыть окно, когда пользователь вывел курсор мышки за пределы окна, возможно это сделать?? и если да то как??
у TForm нет события типа onMouseLeave :(


Игорь Шевченко   (2007-12-05 16:59:00) [1]

SetCapture/ReleaseCapture


Eraser   (2007-12-05 16:34:00) [2]


> 9899100   (05.12.07 16:10) [7]

ээ.. если форма пустая, то CM_CM_MOUSELEAVE вызываться не должен ;)


{RASkov}   (2007-12-05 16:12:00) [3]

> [7] 9899100   (05.12.07 16:10)

Эх... точно.... у меня-то в голове пустая форма :)


9899100   (2007-12-05 16:10:00) [4]


> {RASkov}

нее, проект новый ничего акромя этого там нету :)
видимо Eraser прав


{RASkov}   (2007-12-05 16:09:00) [5]

> [5] 9899100   (05.12.07 16:08)

PtInRect


{RASkov}   (2007-12-05 16:08:00) [6]

> [2] 9899100   (05.12.07 15:53)
> оно закрывается как только я навожу мышку на открытое окно
> :((
> чего не так??

:)
Не должно.... сделай новый проект и проверь.
Возможно у тебя остались "старые попытки" закрытия, вот они и "косячат"....
Но данный [1] способ "не надежный" из-за "ненадежности" приведенных сообщений....
Попробуй мышку убать с формы резко)


9899100   (2007-12-05 16:08:00) [7]

а как это узнать ??
что у казатель над компонентом этой формы ?


Eraser   (2007-12-05 15:56:00) [8]


> 9899100   (05.12.07 15:53) [2]

CM_CM_MOUSELEAVE срабатывает как только указатель переходит на какой-то другой визуальный компонент, даже если он находится на форме.


9899100   (2007-12-05 15:53:00) [9]

оно закрывается как только я навожу мышку на открытое окно
:((
чего не так??

procedure TForm2.CMMouseLeave;
Begin
Close;
End;


{RASkov}   (2007-12-05 15:36:00) [10]

> [0] 9899100   (05.12.07 15:28)
> у TForm нет события типа onMouseLeave

Добавь
 TForm1 = class(TForm)
 private
   procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
   procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
   { Private declarations }
 public
   { Public declarations }
 end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо