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

Вниз

Передвижение 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
4-34638
[lamer]Barmaglot
2003-03-11 09:15
2003.05.12
LVM_SetItemcount


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


1-34500
anbezr
2003-04-28 13:23
2003.05.12
Недопустимый дескриптор окна


14-34619
Marser
2003-04-17 13:39
2003.05.12
Пенитенциарные системы


14-34583
Style
2003-04-23 21:18
2003.05.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский