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

Вниз

Перемещение TPanel за курсором мышки влеов и вправо   Найти похожие ветки 

 
Developerr   (2005-11-18 16:46) [0]

Добрый день.
Ув. мастера, подскажите такую вещь. У меня есть 2 компонента TPanel (Panel1 и Panel2), при этом один компонент находится внутри другого.
Мне нужно чтобы Panel2 перемещался за курсором мышки и при этом если Panel2.Left=0 или Panel2.Left=Panel1.Left-Panel2.Width, то Panel2 переставал двигаться. Все бы ничего, только при достижении Panel2.Left позиции 0, Panel2 прилипает к Panel1 и перестает двигаться.
Т.е. я хочу чтобы получилось что-то подобное Арканоиду.

Делаю я так:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
код программы

 if (Panel2.Left>0) and (Panel2.Left<Panel1.Left-Panel2.Width) then
 Panel2.Left:=Panel2.Left-1;
end;


Вчем проблема? Надеюсь, что не в ДНК :-))

Спасибо.


 
Developerr   (2005-11-18 17:18) [1]

Прошу прощения ошибся в приведеннос коде. Вместо
Panel2.Left:=Panel2.Left-1;
Нужно
Panel2.Left:=Mouse.CursorPos.X;


 
злобная танька ©   (2005-11-19 13:29) [2]

замени
if (Panel2.Left>0) and (Panel2.Left<Panel1.Left-Panel2.Width) then
на
if Panel2.Left < Panel1.Left - Panel2.Width then


 
злобная танька ©   (2005-11-19 13:31) [3]

вместо Mouse.CursorPos.X
юзай обычные координаты. в событии онмаусмува на панелях можешь запоминать координаты а в таймере юзать их.


 
Developerr ©   (2005-11-20 13:16) [4]

Вот более менее нормальный вариант

procedure TForm1.Panel1MouseMove(Sender: TObject;
 Shift: TShiftState; X, Y: Integer);
begin
if Panel2.Left < Panel1.Width-Panel2.Width then
   Panel2.Left:=X
else
  Panel2.Left:=Panel1.Width-Panel2.Width;
end;

но он тоже не совсем устраивает, т.к. при движении мыши вправо Panel2 вылазит за пределы видимости, а только потом возвращается в крайнюю правую позицию.



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

Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.021 c
5-1116526530
Ralf
2005-05-19 22:15
2005.12.18
Button


1-1132324649
_Sergey_
2005-11-18 17:37
2005.12.18
Узнать размер файла, если известен путь к нему


14-1132121406
Суслик
2005-11-16 09:10
2005.12.18
Проблемы IDE


5-1116931092
Priest
2005-05-24 14:38
2005.12.18
Для чего используется функция RegisterPropertyMapper


2-1133762488
XProger
2005-12-05 09:01
2005.12.18
Позиция курсора в консоли





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский