Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

слипание форм в дельфи [D7]


простофан ©   (2012-06-07 16:41:00) 

Добрый день.

Помогите мне в трех соснах разобраться. У меня в проге 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


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


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

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


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

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


Dennis I. Komarov   (2012-06-07 22:16:00) [3]


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

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


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

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


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


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

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


Cobalt   (2012-06-07 17:34:00) [6]

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


DVM   (2012-06-07 17:28:00) [7]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо