Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Крыса и форма   Найти похожие ветки 

 
markers ©   (2004-11-28 17:39) [0]

Вообщем, люди добрые опять же подскажите;) Толком нормально не могу сделать (А может это вообще не возможно?)
Вообще необходимо отбросить форму при наведении мышки на форму (Без кепчина) причем отпрыгивание (Желательно) в сторону противоположной стороны на которой находится мышка, тоесть идёт крыса по иксу настигла форму в точке допустим 150 по иксу, значит нужно отбросить форму ещё дальше допустим на пол размера формы, и ещё ложка дёктя в эту бочку мёда, чтоб можно было крысой передвигать форму (Это я сделал) по клику и передвижению конечно, вообщем запарился может хоть кто-нибудь подскажет? Заранее спасибо!


 
Gero ©   (2004-11-28 17:43) [1]

Мда. Без 0.5 не разобраться.


 
markers ©   (2004-11-28 17:46) [2]

не разобраться в моеё писанине или с этой проблемой.
На тему проблемы, есть соображения (И даже пробовал но не нравится), но это всё не то! Может подскажите? Я давно уже спрашивал, мне один ответил кодиком, но что-то он не пахал...


 
markers ©   (2004-11-28 17:48) [3]

Я сказал "чтоб можно было крысой передвигать форму (Это я сделал) по клику и передвижению", потому, что не знаю как совместить это всё вместе, нормально!


 
Andy BitOff ©   (2004-11-28 17:49) [4]

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


 
markers ©   (2004-11-28 17:50) [5]

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


 
Andy BitOff ©   (2004-11-28 17:52) [6]

Ну покажи, тогда чего сделал.


 
OneFragLeft ©   (2004-11-28 17:53) [7]

Нужно чтобы форма убегала, если на неё наведёшь мышкой? Причем в сторону, противоположную той, откуда пришла мышь?


 
markers ©   (2004-11-28 17:53) [8]

Примерно, потому-что правил уже сто раз
  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;


 
markers ©   (2004-11-28 17:54) [9]

то OneFragLeft © Примерно так......
то Andy BitOff © Было сделано пока только по иксу


 
tormoz   (2004-11-28 17:56) [10]

А если форма убегает от мыши, то как ее таскать мышью (кликом...)?


 
OneFragLeft ©   (2004-11-28 17:56) [11]

tormoz   (28.11.04 17:56) [10]
Вот и я так ещё подумал...


 
markers ©   (2004-11-28 17:57) [12]

Вообще это я затеял из-за того, что это окно статистики которое будет всегда висеть на экране и допустим мне надо начать кнопку под этой формой, передвигать её туда-сюда (Если юзеру это место удобно) неудобно, вот в этом вся фича.


 
markers ©   (2004-11-28 17:59) [13]

есть вриант следить допустим за контролом....
Да кстати после того как форма отскочила, через некоторое время она должна вернутся на свои преждние позиции, но это уже не проблема...


 
OneFragLeft ©   (2004-11-28 18:00) [14]

Лучше сделй, чтобы она не бегала по экрану, а просто держи где-нибудь около края экрана. При наведении - сдвигай. Глюков меньше будет и мешать не будет.


 
tormoz   (2004-11-28 18:00) [15]

Form1.OnMouseDown----------yes:=true;
Form1.OnMouseUp------------yes:=false;
Form1.on mouseMove---------if yes then
begin
 Form1.top:=...
 Form1.left:=...
end;


 
markers ©   (2004-11-28 18:02) [16]

да проблема в основном не в этом,а в другом, как лучше всего организовать отскакивание формы, желательно по направлению движения курсора


 
markers ©   (2004-11-28 18:04) [17]

то OneFragLeft © А кстати мысль, только проверять, чтоб в этом углу она уже не стоит, и сдвигать, а потом когда юзер ушел с прошлой орбиты проги, обратно! Или ещё можно сделать исчизновение!;) Неплохо! Сенкс! Может ещё что предложит!?


 
tormoz   (2004-11-28 18:05) [18]


> markers ©   (28.11.04 18:02) [16] [Новое
>сообщение][Ответить]
> да проблема в основном не в этом,а в другом, как лучше
> всего организовать отскакивание формы, желательно по
> направлению движения курсора

По направлению курсора, это продолжить линию движения курсора или достаточно просто отскакивать в зависимости от того, в каком месте курсор попал на форму?


 
OneFragLeft ©   (2004-11-28 18:05) [19]

Тебе самому удобно было бы, если б окошко со статистикой у тебя по всему экрану колбасило?
Видел как панель задач убирается с экрана? Просто сделай наоборот, чтобы при наведении убиралась.


 
OneFragLeft ©   (2004-11-28 18:07) [20]

Можно её в трэй сворачивать, на при этом могут быть глюки и тормоза.


 
markers ©   (2004-11-28 18:07) [21]

то tormoz второе...
то OneFragLeft ©  Ну я уже так и понял, спасибо большое! Ладно сейчас буду мутить!


 
markers ©   (2004-11-28 18:09) [22]

то OneFragLeft ©  Не в трей нет, тем паче, что там иконка и так уже имеется да и неудобно энто! Круче с исчезновением;)


 
OneFragLeft ©   (2004-11-28 18:12) [23]

Ну, дело Ваше.


 
tormoz   (2004-11-28 18:12) [24]

Выбери базовую точку(например центр формы), X,Y-координаты вхождения курсора на форму, две точки задают прямую на плоскости. Можно узнать угол ее наклона (наприиер tan=(Yбаз-Y)/(Xбаз-X)), дальше вспоминай тригонометрию...



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

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.038 c
1-1101799104
Progh
2004-11-30 10:18
2004.12.12
Сохранения TListView в виде HTML


14-1100806544
gn
2004-11-18 22:35
2004.12.12
M$ признала часть вины в распространении вирусов


1-1101423144
Rand
2004-11-26 01:52
2004.12.12
Необязательные параметры


14-1100873270
by
2004-11-19 17:07
2004.12.12
Есть ли в Delphi 7 Professional компонент TClientDataSet?


1-1101731361
race1
2004-11-29 15:29
2004.12.12
tobject