Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: 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 вся ветка

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

Наверх




Память: 0.46 MB
Время: 0.065 c
14-1082696455
V.exeR
2004-04-23 09:00
2004.05.16
"Улица ремесел"


3-1082363789
}|{yk
2004-04-19 12:36
2004.05.16
Как бы переписать такой запрос на Interbase


1-1083126012
random
2004-04-28 08:20
2004.05.16
про Реестр


11-1068963605
Ciber SLasH
2003-11-16 09:20
2004.05.16
Какие есть компоненты для загрузки JPG из ресурсов


1-1083235947
ArtIcons
2004-04-29 14:52
2004.05.16
Изменить иконку программы