Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
простофан   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.071 c
15-1329165002
Юрий
2012-02-14 00:30
2013.03.22
С днем рождения ! 14 февраля 2012 вторник


2-1331468421
Димка На
2012-03-11 16:20
2013.03.22
Создать несколько экз. класса сразу.


2-1337757483
serge
2012-05-23 11:18
2013.03.22
нужна помощь с событием onkeydown


15-1340637706
Барлог_
2012-06-25 19:21
2013.03.22
щебенка в колодец. как отфильтровать?


15-1332606036
alexdn
2012-03-24 20:20
2013.03.22
Вордпресс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский