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

Вниз

слипание форм в дельфи   Найти похожие ветки 

 
простофан   (2012-06-07 16:41) [0]

Добрый день.

Помогите мне в трех соснах разобраться. У меня в проге 3 формы - эти три формы должны слипаться по центру друг с другом если одна находиться на расстоянии 50пик. т.е. есть одну форму подвести к другой то она склеиться по центру первой формы и их можно спокойно(не быстро) двигать по монитору, тогда они не расклеятся - это все просто, я сделал, но вот есть 3 форма и нужно сделать проверку не склеены ли уже две первые. Проверку сделать не могу, уже крыша едет от этого - просто, а не получается у меня во что - если подвести 3-ю форму к уже созданной склейки то она затирает одну из 1-ых двух собой.

Я вам приведу код 1-двух склеек, вы пож. помогите мне его расширить и на 3-ю

procedure TForm1.WMMove(var Msg: TWMMove);
begin
if Assigned(Form2) then
 begin
   if abs(Form1.Left+Form1.Width-Form2.Left)<75 then //влево
    begin
     Form2.Left:=Form1.Left+(Form1.Width div 2);
     Form2.Top:=Form1.Top;
    end;
   if abs(Form2.Left+Form2.Width-Form1.Left)<75 then    //вправо
    begin
     Form2.Left:=Form1.Left-Form2.Width;
     Form2.Top:=Form1.Top;
    end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;


procedure TForm2.WMMove(var Msg: TWMMove);
begin
if abs(Form1.Left+Form1.Width-Form2.Left)<75 then   //вправо
 begin
   Form1.Left:=Form2.Left-Form1.Width;
   Form1.Top:=Form2.Top;
 end;
if abs(Form2.Left+Form2.Width-Form1.Left)<75 then //влево
 begin
   Form1.Left:=Form2.Left+(form2.Width div 2);
   Form1.Top:=Form2.Top;
 end;
end


 
DVM ©   (2012-06-07 17:28) [1]

Имхо правильнее обрабатывать WM_MOVING а не WM_MOVE


 
Cobalt ©   (2012-06-07 17:34) [2]

Удалено модератором


 
robt   (2012-06-07 17:45) [3]


> эти три формы должны слипаться по центру друг с другом

и зачем люди тратят время на всякую херню...


 
простофан   (2012-06-07 17:55) [4]

WM_MOVING - сейчас посмотрю, как этот зверь работает


 
Dennis I. Komarov ©   (2012-06-07 22:16) [5]


> и зачем люди тратят время на всякую херню...

это путь, который надо пройти... и пусть юзвери проклянут автора за разные глюки из-за подобного поведения форм, но это же суперпупермегакруто (СПМК)


 
простофан   (2012-06-08 00:48) [6]

Dennis I. Komarov ээээ я все на советь делаю и тестирую по несколько раз - кстати разобрался со всеми проблемами.


 
robt   (2012-06-08 11:56) [7]


> простофан   (08.06.12 00:48) [6]

да можеш хоть вусмерть обтестироваться, но на другом компе\другой винде , будет работать по другому
особенно если у хозяина оного установлено стописят шняжных утилит от таких же умельцев вроде тебя



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

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

Наверх




Память: 0.48 MB
Время: 0.242 c
15-1332788348
IceKhan
2012-03-26 22:59
2013.03.22
как включить отображение системных файлов в OpenDialog


2-1338103248
moor38
2012-05-27 11:20
2013.03.22
Динамически созданный TImage


2-1329298711
ixen
2012-02-15 13:38
2013.03.22
Вопросы по потокам


2-1345377153
Gedimen
2012-08-19 15:52
2013.03.22
FastReport Помогите. Выделение строк по условию


6-1260441642
wind1
2009-12-10 13:40
2013.03.22
Как создать работающий проект с использованием Corba