Revan |
Отправлено: 28.09.2005, 14:52 |
|
Не зарегистрирован
|
Кто-нибудь может сказать, как можно перемещать форму за какойнибудь из компонентов на этой форме (за Image например) или, на худой конец, просто за тело формы. В Делфях у меня есть пример, но в Билдере то же самое осуществить пока не могу. |
|
CyberMind |
Отправлено: 28.09.2005, 17:27 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 29
|
Пишем в обработчике события OnMouseDown формы или компонента.
ReleaseCapture();
this->Perform(WM_SYSCOMMAND,0xF012,0);
Теперь все перемещается. |
|
Revan |
Отправлено: 29.09.2005, 08:38 |
|
Не зарегистрирован
|
Уточнение: в моем проекте у главной формы BorderStyle = bsNone.
Как быть теперь? |
|
Revan |
Отправлено: 29.09.2005, 08:43 |
|
Не зарегистрирован
|
Прошу прощения, все работает. Спасибо!
Просто я вместо 0xF012 написал SC_MOVE.
|
|
Konstantine |
Отправлено: 29.09.2005, 11:17 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
сам такое юзаю
CODE | void __fastcall TForm1::Form1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if((Old_X!=-1)&&(Old_Y!=-1))
{if(Shift.Contains(ssLeft))
{Left=Left+X-Old_X;
Top=Top+Y-Old_Y;}
else {Old_X=-1;Old_Y=-1;}
}
else
if(Shift.Contains(ssLeft)) {Old_X=X;Old_Y=Y;}
}
//---------------------------------------------------------------------------
|
и на этот обработчик цепляешь OnMouseMove всех панелек на форме...
да, ещё — Old_X и Old_Y — это int , описываешь в секции pivate формы
|
|