Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.27;
Скачать: CL | DM;

Вниз

Как таскать форму за клиентскую часть?   Найти похожие ветки 

 
An   (2003-03-17 11:12) [0]

Привет, Мастера!
Есть форма без заголовка (делаю это при помощи SetParams, как учили), надо, чтобы ее можно было таскать мышкой ухватившись за клиентскую часть. Опять же как учили, делаю обработчик события, что-то там WM_???CHITTEST, и в нем подменяю msg.result, как будто мышь нажата в caption. Все работает. Усложняю задачу.
К форме прицепляю окно, созданное без VCL- например IVideoWindow,
при помощи put_owner, теперь в клиентской части моей формы содержимое другого окна и, естественно, на событие WM_???CHITTEST она не реагирует. Что делать? Пробовал подменить у IVideoWindow процедуру WndProc на WndProc моей формы- не помогает.Научите, а?


 
vlad40 ©   (2003-03-17 12:34) [1]

А если так попробовать?:


var
px,py: integer;

procedure TForm1.AppMessage( var Msg: TMsg; var Handled: Boolean);
begin
if (Msg.message=WM_MOUSEMOVE) and (sd) then
begin
left:=Msg.pt.x-px;
top:=Msg.pt.y-py;
end;
if (Msg.message=WM_LBUTTONDOWN) then
begin
px:=Msg.pt.x-Left;
py:=Msg.pt.y-Top;
sd:=true;
end;
if (Msg.message=WM_LBUTTONUP) then
begin
sd:=false;
end;
end;


 
Intell ©   (2003-03-17 20:34) [2]

procedure TForm1.Form1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012; { a magic number }
begin
ReleaseCapture;
form1.perform(WM_SysCommand, SC_DragMove, 0);
end;


другой:

var

Form1: TForm1;
MX: integer;
MY: integer;

implementation

{$R *.DFM}

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);
begin
if Shift<>[ssLeft] then
begin
MX:=X;
MY:=Y;
end else
begin
Left:=Left+X-MX;
Top:=Top+Y-MY;
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.03.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
14-88231
Alexsys
2003-03-10 10:28
2003.03.27
25-й кадр


14-88198
NetBreaker666
2003-03-11 17:15
2003.03.27
Так, кстати, никто здесь USB не программировал ?


8-88078
Yasha
2002-12-19 18:04
2003.03.27
печать графики


6-88111
s22_shura
2002-12-15 20:19
2003.03.27
Буфер UDP


9-87765
Kir.
2002-10-26 16:39
2003.03.27
Задержка при движении