Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Внизформа Найти похожие ветки
← →
Алексей Филонович (2006-12-20 04:16) [0]народ,подскажите как мне при зажатии на картинку двигать форму?
← →
balepa © (2006-12-20 05:16) [1]Самый простой:
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button == mbLeft)
{
fX = X;
fY = Y;
_Move = true;
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
unsigned long dX, dY;
if (_Move == true)
{
dX = X - fX;
dY = Y - fY;
Form1->Left += dX;
Form1->Top += dY;
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
_Move = false;
}
Можно так:
void __fastcall TForm1::ONTest(TMessage& msg);
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_NCHITTEST, TMessage, ONTest);
END_MESSAGE_MAP(TForm)
void __fastcall TForm1::ONTest(TMessage& msg)
{
TForm::Dispatch(&msg);
if(msg.Result == HTCLIENT)
msg.Result = HTCAPTION;
}
← →
Loginov Dmitry © (2006-12-20 07:33) [2]
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
Sc_dragmove = $F012;
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, Sc_dragmove, 0);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c