Вниз
Скачать: 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.021 c
14-1082899941
Piter
2004-04-25 17:32
2004.05.16
Wine


1-1083227601
siriusP
2004-04-29 12:33
2004.05.16
Очень нужна помощь. Создание компоненты.!!!


7-1081239760
[BAD]Angel
2004-04-06 12:22
2004.05.16
Как перехватить нажатие двух клавишь?


1-1083080832
volser
2004-04-27 19:47
2004.05.16
Написание класса


3-1082626833
rserg
2004-04-22 13:40
2004.05.16
FibPlus и загрузка процессора при долгой работе программы




   Наверх