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

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

Крыса и форма


Страницы:   1 2

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]

Делал, но фигня какая-то получается, и как узнать куда её двигуть


Страницы:   1 2

Наверх

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