|
|
|
Перемещение панели по горизонтали в Run-Time
|
|||
|---|---|---|---|
|
#18+
Нужно перемещать мышью панель по горизонтели но не по вертикали. Нашел такой пример: void __fastcall TForm1::Panel1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { int SC_DRAGMOVE = 0xF012; ReleaseCapture(); Panel1->Perform(WM_SYSCOMMAND,SC_DRAGMOVE, 0); } Перемещается по всем направлениям. Как сделать сабж? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 09:49 |
|
||
|
Перемещение панели по горизонтали в Run-Time
|
|||
|---|---|---|---|
|
#18+
___neznayka__Нужно перемещать мышью панель по горизонтели но не по вертикали. Нашел такой пример: void __fastcall TForm1::Panel1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { int SC_DRAGMOVE = 0xF012; ReleaseCapture(); Panel1->Perform(WM_SYSCOMMAND,SC_DRAGMOVE, 0); } Перемещается по всем направлениям. Как сделать сабж? Думаю, нужно "двигать" панель не через Perform, а вручную, изменяя ее координаты. Попробуй поиграться с событиями OnMouseDown (установить флаг, что пользователь "зажал" мышью панель), OnMouseMove (если флаг установлен, меняем координаты панели в зависимости от координат курсора мышки), OnMouseUp (сбрасываем флаг). Координаты курсора над панелью переводим в глобальные координаты рабочего стола, после чего их переводим в координаты внутри формы, в которой находится панель, двигаем саму панель(ScreenToClient/ClientToScreen). Слегка наворочено, но должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 11:37 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=340&tid=2030698]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 358ms |

| 0 / 0 |
