Главная страница
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.017 c
1-87912
hawkins
2003-03-14 09:01
2003.03.27
Есть ли компонент, такой же как TLabel, но многострочный?


8-88088
Ssergy
2002-12-15 00:09
2003.03.27
Вычитание из одной поверхности другой


1-87994
MiXen
2003-03-13 22:02
2003.03.27
замена Yes на Да


14-88184
NetKnight
2003-03-10 11:09
2003.03.27
Вэб приложения на дельфи, которые исполняются на стороне клиента


3-87816
Dimasn
2003-03-08 20:07
2003.03.27
Помогите создать LookUp поле в EhLib