Вниз
Скачать: CL | DM;

Событие MouseMove и всплывающее окно.   Найти похожие ветки 

← →
DJones   (2008-08-28 16:48) [0]

На главной форме программы расположен объект TImage, при наведении на который курсора мыши должна появляется вторая форма... Подскажите плиз, каким образом реализовать исчезновение второй формы при покидании мыши области, занимаемой TImage


← →
workbench   (2008-08-28 17:20) [1]

Я, конечно, мягко говоря, не гуру, но почему бы и предположить...
Если именно через MouseMove нужно, то на OnMouseMove TImage можно поставить показ 2-й формы, а на OnMouseMove главной формы закрытие 2-й, хотя наверно лучше переделать это обработчику самого TApplication и отдуда исходя из полученных координат делать уже то что нужно...


← →
oldman ©   (2008-08-28 17:25) [2]


> DJones   (28.08.08 16:48)  


То есть, вторая форма чисто информативная.
Работать с ней нельзя.

А зачем такой изврат?


← →
workbench   (2008-08-28 17:32) [3]


> oldman


может у него что-то вроде image-viewer`а, TImage - маленькие картинки, а на форме у него они уже развёрнуты на всё окно, да мало ли... хз...


← →
oldman ©   (2008-08-28 17:42) [4]


> workbench   (28.08.08 17:32) [3]


Я не знаю его задач, но всплывающая форма есть изврат.

1. Для информации есть hint
2. На всплывшем окне может быть кнопка close. И окно может быть модальным и срабатывать по клику. Даже и не модальным, как на сайтах с просмотром фото - не мешает абсолютно.


← →
Vlad Oshin ©   (2008-08-28 17:57) [5]

procedure TForm1.Memo1MouseEnter(Sender: TObject);
begin
form2.show;
form1.SetFocus;
end;

procedure TForm1.Memo1MouseLeave(Sender: TObject);
begin
 form2.Hide;
end;


← →
oldman ©   (2008-08-28 18:02) [6]


> Vlad Oshin ©   (28.08.08 17:57) [5]


Я экспериментировал.
Если работать мышью с феноменальной скоростью - не срабатывает.


← →
DJones   (2008-08-29 10:31) [7]


> То есть, вторая форма чисто информативная.
> Работать с ней нельзя.


Да, туда просто выводится некоторые параметры. (Не хочу занимать ими пространство главной формы) Открываю ее как Form2.ShowModal, при уходе курсора с картинки Form2 не изчезает...
Если это не сильно рационально, подскажите как сделать грамотней...


← →
oldman ©   (2008-08-29 10:34) [8]


> Открываю ее как Form2.ShowModal


И думаешь, что после этого события мыши на Form1 отслеживаются?
Ну-ну...


← →
Palladin ©   (2008-08-29 10:37) [9]

думаю нужно устанавливать hook на мышь


← →
Vlad Oshin ©   (2008-08-29 10:40) [10]


> oldman ©   (28.08.08 18:02) [6]

а нафиг работать с феноменальной скоростью?
а если нужно работать с феноменальной скоростью, то кто будет еще и читать при этом
> некоторые параметры


← →
oldman ©   (2008-08-29 10:42) [11]


> Vlad Oshin ©   (29.08.08 10:40) [10]
>
> > oldman ©   (28.08.08 18:02) [6]
>
> а нафиг работать с феноменальной скоростью?


Навести мышь, почитать параметры и резко уйти с картинки (стрельнуло срочно открыть браузер).
Окно не закроется.


← →
oldman ©   (2008-08-29 10:45) [12]


> DJones   (29.08.08 10:31) [7]


А чем hint не устраивает?
Не устраивает стандартный, так в инете всяких кузявых навалом.


← →
Vlad Oshin ©   (2008-08-29 10:55) [13]

вот, сколько не пробовал - никогда не оставалось окно, как бы не дергал мышой.

type
 TForm1 = class(TForm)
   Image1: TImage;
   procedure Image1MouseEnter(Sender: TObject);
   procedure Image1MouseLeave(Sender: TObject);
 private
    f:tHintWindow;
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: tForm1;

implementation
  uses StdCtrls;
{$R *.dfm}

procedure TForm1.Image1MouseEnter(Sender: TObject);
var
 memo:tMemo;
 PT:tPoint;
begin
 f:=THintWindow.Create(form1);
 f.Hide;
 f.Parent:=form1;
 f.Width:=200;
 f.Height:=200;
 GetCursorPos(PT);
 f.Left:=PT.X;
 f.Top:=PT.Y;
 memo:=Tmemo.Create(f);
 memo.Parent:=f;
 memo.Align:=alClient;
 memo.Lines.Add("qqqqqqqqqqqqq");
 memo.Lines.Add("wwwwwwwwwwwww");
 f.Show;
end;

procedure TForm1.Image1MouseLeave(Sender: TObject);
begin
 freeandnil(f);
end;



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.01 c
2-1219562250
AlexDan
2008-08-24 11:17
2008.10.05
PageControl..


3-1207555954
_ozzy_
2008-04-07 12:12
2008.10.05
Как активизировать окно моего приложения?


15-1218549829
{RASkov}
2008-08-12 18:03
2008.10.05
Платежные терминалы?


2-1219409920
Bolodya
2008-08-22 16:58
2008.10.05
SQL -- выбор уникальных записей


2-1219716327
Abcdef123
2008-08-26 06:05
2008.10.05
Как заполнить список TDBComboBox.Items данными из DataSet?




   Наверх