Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2012, 17:12   #1
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию Слипание окон в дельфи

Добрый день.
Нужна помощь у меня программе три формы и эти формы должны слипаться между собой т.е. передвигаться вместе по всему экрану. Разумеется и разлипаться если пользователь зажал, выбранную им форму и хаотично начал её двигать.

Мне это надо, но я не знаю как это реализовать. Если кто хочет мне помочь то пишите на почту gleb.lucenko@mail.ru. Разумеется я выложить за работу круглую сумму.
Глеб1991 вне форума Ответить с цитированием
Старый 29.06.2012, 23:25   #2
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию

Не надо платить.
Изучаем готовое.
Вложения
Тип файла: rar 1.rar (163.3 Кб, 26 просмотров)
Тип файла: rar 2.rar (172.5 Кб, 17 просмотров)
Dj_SheLL вне форума Ответить с цитированием
Старый 30.06.2012, 00:26   #3
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

вот второй архив ближе, но увы такое и я могу сделать. Мне надо чтобы хаотично все было, а не так что одна с одной стороны, другая с другой
Глеб1991 вне форума Ответить с цитированием
Старый 30.06.2012, 00:29   #4
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

вот какая штука у меня - на склейку, но увы формы три, а не две. Третья всегда вторую затирает так как я не знаю как сделать проверку на склейку и еще не знаю как разлепить.
procedure TForm2.WMMove(var Msg: TWMMove);
begin
try
if Assigned(Form3) then
begin
if abs(Form2.Left+Form2.Width-Form3.Left)<300 then //лево
begin
Form3.Left:=Form2.Left+((Form2.Widt h div 2)+50);
Form3.Top:=Form2.Top;
end;
if abs(Form3.Left+Form3.Width-Form2.Left)<300 then //право
begin
Form3.Left:=Form2.Left-((Form3.Width div 2)+50);
Form3.Top:=Form2.Top;
end;

if abs(Form2.Left+Form2.Width-Form4.Left)<300 then //лево
begin
Form4.Left:=Form2.Left+((form2.Widt h div 2)+50);
Form4.Top:=Form2.Top;
end;
if abs(Form4.Left+Form4.Width-Form2.Left)<300 then //право
begin
Form4.Left:=Form2.Left-((form4.Width div 2)+50);
Form4.Top:=Form2.Top;
end;
end;
except
end;
end;
Глеб1991 вне форума Ответить с цитированием
Старый 30.06.2012, 00:31   #5
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

эта штука на второй форме


procedure TForm3.WMMove(var Msg: TWMMove);
begin
try
if Assigned(Form2) then
begin
if abs(Form2.Left+Form2.Width-Form3.Left)<300 then //право
begin
Form2.Left:=Form3.Left-((form2.Width div 2)+50);
Form2.Top:=Form3.Top;
end;
if abs(Form3.Left+Form3.Width-Form2.Left)<300 then //лево
begin
Form2.Left:=Form3.Left+((form3.Widt h div 2)+50);
Form2.Top:=Form3.Top;
end;
end;
if Assigned(Form4) then
if abs(Form3.Left+Form3.Width-Form4.Left)<300 then //лево
begin
Form4.Left:=Form3.Left+((form3.Widt h div 2)+50);
Form4.Top:=Form3.Top;
end;
if abs(Form4.Left+Form4.Width-Form3.Left)<300 then //право
begin
Form4.Left:=Form3.Left-((form4.Width div 2)+50);
Form4.Top:=Form3.Top;
end;
except
end;
end;
Глеб1991 вне форума Ответить с цитированием
Старый 30.06.2012, 00:31   #6
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

эта фигня на последней- третей

procedure TForm4.WMMove(var Msg: TWMMove);
begin
try
if Assigned(Form2) then
begin
if abs(Form4.Left+Form4.Width-Form2.Left)<240 then //лево
begin
Form2.Left:=Form4.Left+((form4.Widt h div 2)+50);
Form2.Top:=Form4.Top;
end;
if abs(Form2.Left+Form2.Width-Form4.Left)<240 then //право
begin
Form2.Left:=Form4.Left-((form2.Width div 2)+50);
Form2.Top:=Form4.Top;
end;
end;

if Assigned(Form3) then
begin
if abs(Form3.Left+Form3.Width-Form4.Left)<240 then //право
begin
Form3.Left:=Form4.Left-((form3.Width div 2)+50);
Form3.Top:=Form4.Top;
end;
if abs(Form4.Left+Form4.Width-Form3.Left)<240 then //лево
begin
Form3.Left:=Form4.Left+((form4.Widt h div 2)+50);
Form3.Top:=Form4.Top;
end;
end;
except
end;
end;
Глеб1991 вне форума Ответить с цитированием
Старый 30.06.2012, 13:41   #7
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

Народ, тема еще актуальна - помогите по этой проблеме, я в долгу не останусь
Глеб1991 вне форума Ответить с цитированием
Старый 01.07.2012, 06:16   #8
Igor[Игорь]
Пользователь
 
Аватар для Igor[Игорь]
 
Регистрация: 25.11.2011
Сообщений: 52
По умолчанию

Igor23dec@yandex.ru
ICQ 2168364
e-mail: igor23dec@yandex.ru , ICQ: 2168364 , Telegram: @IgorVN
Delphi, PHP
Примеры http://igorvn.ucoz.ru/
Igor[Игорь] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
слипание форм Глеб1991 Помощь студентам 3 07.06.2012 18:48
Дельфи - информационную программу из пяти окон, с возможностью последовательного перехода из одного окна в другое alexander91 Помощь студентам 1 24.05.2012 06:59
таблицы подстановок в дельфи(базы данных в дельфи) ManiagoZ БД в Delphi 0 15.05.2011 15:07
“Слипание” букв в MS Word qaaqasqad Microsoft Office Word 1 09.11.2010 11:42
Слипание 2-х окон AlexeiDelejov Мультимедиа в Delphi 2 19.05.2010 17:07