Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.039 c
3-1100407797
lav
2004-11-14 07:49
2004.12.12
Как получить список запросов из базы MS Access


14-1101200631
Nikolay M.
2004-11-23 12:03
2004.12.12
Excel повисает при открытии внешних данных :(


14-1100840649
Danilka
2004-11-19 08:04
2004.12.12
Вот, знакомый прислал


3-1100598443
Explorer
2004-11-16 12:47
2004.12.12
Работа со справочниками


1-1101802891
Гриша
2004-11-30 11:21
2004.12.12
Сканирование файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский