Форум: "Начинающим";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
ВнизСобытие 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.013 c