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

Вниз

Передвижение TPanel по координатным осям   Найти похожие ветки 

 
DDDeN ©   (2003-04-25 16:56) [0]

Такая проблема: мой вопрос почему-то потерялся... Необходимо передвигать TPanel по вертикали или горизонтали до определенных границ при помощи мыши (например до Top или Left определенного значения). Всем спасибо!


 
Dms   (2003-04-25 17:11) [1]

а зачем ?


 
MBo ©   (2003-04-25 17:13) [2]

Top и Left меняй ;)


 
Skier ©   (2003-04-25 17:16) [3]

>DDDeN
Если хочешь сделать дизайн-маркеры как в IDE, то сие не совсем
тривиально...могу дать компонент...


 
app ©   (2003-04-25 17:24) [4]

DDDeN © (25.04.03 16:56)
По ошибке, мои извинения.


 
DDDeN ©   (2003-04-27 11:11) [5]

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


 
Yanis ©   (2003-04-27 14:02) [6]

Зачем тебе это, если не секрет?


 
TButton ©   (2003-04-27 18:07) [7]

onMouseDown
...
hit:=true; //hit:boolean
oldx:=x;
oldy:=y;
...

onMouseMove
if not hit then exit;
dx:=x-oldx;
panel.top:=panel.top+dx;
dy:=y-oldy;
panel.left:=panel.left+dy;
...

onMouseUp
hit:=false;

примечания
(!)если передвигать только по вертикали - убери X, по горизонтали - Y
(!)если нужен СкроллБар юзай СкроллБар


 
DDDeN ©   (2003-04-28 17:43) [8]

2TButton
Спасибо огромное, будем пробоваать.
Это нужно для того, чтобы сделать очень маленькие скролы и в то же время использовать их на фоне, т.е. можно сделать прозрачными, а скрол не делается...


 
DDDeN ©   (2003-04-28 18:21) [9]

2 TButton
Проверил ваш пример... Не правильно работает.
Позволю себе его исправить так:

Panel1MouseDown
---------------
. . .
hit := true; // hit: bool;
oldx := x;
. . .

Panel1MouseMove
---------------
. . .
if not hit then exit;
if HiWord(GetAsyncKeyState(VK_LBUTTON)) > 0 then
panel1.Left := panel1.Left + x - oldx;
. . .

Panel1MouseUp
-------------
. . .
hit := false;
. . .

Теперь Панелька передвигается по оси Х. А как передвигать до определенных границ, н-р, по диапазону Left от 10 до 100? Т.е. когда компонент достигнет 10, то далее не двигается; или когда достигнет Left = 100, то вправо уже тоже не двигается.
Короче, ограничить диапазон передвижения... Вот...


 
TButton ©   (2003-04-29 02:09) [10]

извиняюсь, сочинял находу, в пьяном угаре. на самом деле помоему в onMouseDown надо вставить проверку if mbLeft in Button then hit:=true; помоему так... но это надо проверить... а вот насчет ограничений... вобщем проверяй координаты перед тем как panel1.Left := panel1.Left + x - oldx; и если в сумме получается слишком много то... вобщем ты сообразительный, разберешься...


 
DDDeN ©   (2003-04-29 16:04) [11]

Спасибо, будем далее искать !



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

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

Наверх




Память: 0.49 MB
Время: 0.014 c
6-34524
MMF
2003-03-14 13:25
2003.05.12
Ошибка при NMUDP.SendStream. Помогите побороть, плиз.


1-34428
oleg_sys
2003-04-28 18:03
2003.05.12
Как определить командную строку вызова программы?


7-34629
bers
2003-03-19 11:55
2003.05.12
имя пользователя


1-34471
alexus
2003-04-29 13:55
2003.05.12
Глюки TImage?


8-34517
Blastoderm
2003-01-22 14:45
2003.05.12
TAnimate->OnClick ?