Вниз
Скачать: CL | DM;

Приклеить окно к другому окну   Найти похожие ветки 

 
Бегун   (2004-04-28 12:20) [0]

Многие из вас пользовались WinAmp.
У него есть такая интерестная функция:

Когда приближаем дополнительное окно к главному, при уменьшении расстояния меньше Rp (расстояние пороговое) - дополнительное окно прилипает к главному.

Как это сделать?
Пробую так:
---------------------------------------------------
type
 TfrmAdd = class(TForm)
 public
   procedure WMMove(var m: TMessage); message WM_MOVE;
 end;

function TfrmAdd.Oper(x1,x2,y1,y2: integer): integer;
begin
Result:=Round(Sqrt(Sqr(x1-x2)+Sqr(y1-y2)));
end;

procedure TfrmAdd.OneCorner(crn,x1,y1: integer; lbl: TLabel);
var
MinRast,i: integer;
XMin, YMin: integer;
begin
MinRast:=1000000;

i:=Oper(x1,frmMain.Left,y1,frmMain.Top);
if i < MinRast then
 begin
  MinRast:=i;
  XMin:=frmMain.Left;
  YMin:=frmMain.Top;
  sm:=s;
 end;

if MinRast < StrToInt(ledtRange.Text) then
 begin
  frmAdd.Left:=XMin;
  frmAdd.Top:=YMin;
 end;
end;

procedure TfrmAdd.WMMove(var m: TMessage);
begin
OneCorner(0,frmAdd.Left,frmAdd.Top,lblRastTopLeft);
end;
---------------------------------------------------

В ledtRange.Text - прописано диаметр области захвата/приклеивания.

Этот код работает некорректно.
Дополнительное окно при входе в область захвата начинает мигать.

Подскажите, как правильно сделать?


 
[lamer]Barmaglot ©   (2004-04-28 12:28) [1]

Drag-and-dock + F1



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
1-1083207568
Артем К.
2004-04-29 06:59
2004.05.16
Как создать ярлык программы на рабочем столе?


4-1080053136
baromir
2004-03-23 17:45
2004.05.16
Не могу проследить за процессом....как быть?


3-1082198765
Relaxxx
2004-04-17 14:46
2004.05.16
Вопрос по SQL!!!


9-1059490261
Rooo
2003-07-29 18:51
2004.05.16
Как поставить GlScene 09b на Delphi 7?


14-1082881178
Piter
2004-04-25 12:19
2004.05.16
Почему TCP/IP?




   Наверх