Главная страница
    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
8-34518
sachem
2003-01-30 23:01
2003.05.12
менять картинки с эффектами


14-34561
Style
2003-04-23 18:39
2003.05.12
Delphi Challenge! Пришло письмо с просьбой перенести 1-й тур


14-34596
djon007
2003-04-09 20:17
2003.05.12
Загрузить сайт?


8-34519
SN
2003-01-30 00:59
2003.05.12
DS PACK


14-34589
Mystic
2003-04-21 10:52
2003.05.12
Соревнование по программированию (Delphi)





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