![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Крыса и форма
markers © (2004-11-28 17:39:00)Вообщем, люди добрые опять же подскажите;) Толком нормально не могу сделать (А может это вообще не возможно?)
Вообще необходимо отбросить форму при наведении мышки на форму (Без кепчина) причем отпрыгивание (Желательно) в сторону противоположной стороны на которой находится мышка, тоесть идёт крыса по иксу настигла форму в точке допустим 150 по иксу, значит нужно отбросить форму ещё дальше допустим на пол размера формы, и ещё ложка дёктя в эту бочку мёда, чтоб можно было крысой передвигать форму (Это я сделал) по клику и передвижению конечно, вообщем запарился может хоть кто-нибудь подскажет? Заранее спасибо!
tormoz (2004-11-28 18:12:00) [1]Выбери базовую точку(например центр формы), X,Y-координаты вхождения курсора на форму, две точки задают прямую на плоскости. Можно узнать угол ее наклона (наприиер tan=(Yбаз-Y)/(Xбаз-X)), дальше вспоминай тригонометрию...
OneFragLeft (2004-11-28 18:12:00) [2]Ну, дело Ваше.
markers (2004-11-28 18:09:00) [3]то OneFragLeft © Не в трей нет, тем паче, что там иконка и так уже имеется да и неудобно энто! Круче с исчезновением;)
markers (2004-11-28 18:07:00) [4]то tormoz второе...
то OneFragLeft © Ну я уже так и понял, спасибо большое! Ладно сейчас буду мутить!
OneFragLeft (2004-11-28 18:07:00) [5]Можно её в трэй сворачивать, на при этом могут быть глюки и тормоза.
OneFragLeft (2004-11-28 18:05:00) [6]Тебе самому удобно было бы, если б окошко со статистикой у тебя по всему экрану колбасило?
Видел как панель задач убирается с экрана? Просто сделай наоборот, чтобы при наведении убиралась.
tormoz (2004-11-28 18:05:00) [7]
> markers © (28.11.04 18:02) [16] [Новое
>сообщение][Ответить]
> да проблема в основном не в этом,а в другом, как лучше
> всего организовать отскакивание формы, желательно по
> направлению движения курсора
По направлению курсора, это продолжить линию движения курсора или достаточно просто отскакивать в зависимости от того, в каком месте курсор попал на форму?
markers (2004-11-28 18:04:00) [8]то OneFragLeft © А кстати мысль, только проверять, чтоб в этом углу она уже не стоит, и сдвигать, а потом когда юзер ушел с прошлой орбиты проги, обратно! Или ещё можно сделать исчизновение!;) Неплохо! Сенкс! Может ещё что предложит!?
markers (2004-11-28 18:02:00) [9]да проблема в основном не в этом,а в другом, как лучше всего организовать отскакивание формы, желательно по направлению движения курсора
tormoz (2004-11-28 18:00:00) [10]Form1.OnMouseDown----------yes:=true;
Form1.OnMouseUp------------yes:=false;
Form1.on mouseMove---------if yes then
begin
Form1.top:=...
Form1.left:=...
end;
OneFragLeft (2004-11-28 18:00:00) [11]Лучше сделй, чтобы она не бегала по экрану, а просто держи где-нибудь около края экрана. При наведении - сдвигай. Глюков меньше будет и мешать не будет.
markers (2004-11-28 17:59:00) [12]есть вриант следить допустим за контролом....
Да кстати после того как форма отскочила, через некоторое время она должна вернутся на свои преждние позиции, но это уже не проблема...
markers (2004-11-28 17:57:00) [13]Вообще это я затеял из-за того, что это окно статистики которое будет всегда висеть на экране и допустим мне надо начать кнопку под этой формой, передвигать её туда-сюда (Если юзеру это место удобно) неудобно, вот в этом вся фича.
OneFragLeft (2004-11-28 17:56:00) [14]tormoz (28.11.04 17:56) [10]
Вот и я так ещё подумал...
tormoz (2004-11-28 17:56:00) [15]А если форма убегает от мыши, то как ее таскать мышью (кликом...)?
markers (2004-11-28 17:54:00) [16]то OneFragLeft © Примерно так......
то Andy BitOff © Было сделано пока только по иксу
markers (2004-11-28 17:53:00) [17]Примерно, потому-что правил уже сто раз
if Mouse.CursorPos.X >= StaticForm.Left Then
if Mouse.CursorPos.X <= StaticForm.Left+StaticForm.Width Then
if Mouse.CursorPos.Y >= StaticForm.Top Then
if Mouse.CursorPos.Y <= StaticForm.Top+StaticForm.Height Then
begin
if Mouse.CursorPos.X + StaticForm.Width Div 2 <= Screen.DesktopRect.Right Then
StaticForm.Left := Mouse.CursorPos.X + StaticForm.Width Div 2;
end;
OneFragLeft (2004-11-28 17:53:00) [18]Нужно чтобы форма убегала, если на неё наведёшь мышкой? Причем в сторону, противоположную той, откуда пришла мышь?
Andy BitOff (2004-11-28 17:52:00) [19]Ну покажи, тогда чего сделал.
markers (2004-11-28 17:50:00) [20]Делал, но фигня какая-то получается, и как узнать куда её двигуть