Главная страница
    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.059 c
15-1351950219
Wonder
2012-11-03 17:43
2013.03.22
Какой хулиган удалил мой логин?


8-1228319255
SpecRam
2008-12-03 18:47
2013.03.22
Типа календарный план график


2-1341051183
guest
2012-06-30 14:13
2013.03.22
как работает FileMon?


15-1339585593
KSergey
2012-06-13 15:06
2013.03.22
Про собеседы-то зачем ветку удалили?!


15-1348432202
Юрий
2012-09-24 00:30
2013.03.22
С днем рождения ! 24 сентября 2012 понедельник





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский