Помощь - Поиск - Пользователи - Календарь
Полная версия: Движение форм
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
sheka
Как осуществить передвижение второй формы, когда перемещается 1я?
volvo
blink.gif Это смотря, как должна перемешаться вторая форма, и как она вообще связана с первой. Нужно больше информации, чтоб ответить на вопрос.
sheka
Цитата(volvo @ 15.11.2009 19:19) *

blink.gif Это смотря, как должна перемешаться вторая форма, и как она вообще связана с первой. Нужно больше информации, чтоб ответить на вопрос.

Это все та же программа про стеклышки. Необходимо чтобы при перемещении формы1(главной) все остальные формы(стеклышки) перемещались вместе с ней.
не нашел такого события
volvo
OnMouseDown (для определения начала перемещения) + OnMouseMove (сам процесс перемещения) + OnMouseUp (окончание перемещения формы). Это все при условии, что первую форму перетаскивает пользователь. Ты ж молчишь, я не телепат, знать, что ты там себе задумал. Нужна помощь - давай ИНФОРМАЦИЮ, а не ее обрывки.
sheka
Цитата(volvo @ 15.11.2009 20:02) *

OnMouseDown (для определения начала перемещения) + OnMouseMove (сам процесс перемещения) + OnMouseUp (окончание перемещения формы).

Оно так получится? я думал что так можно только для компонентов..


Добавлено через 3 мин.
и в таком случае форму можна будет перетаскивать нажатием на любое ее место


Добавлено через 9 мин.
сделать хочу так, чтобы перемещать можно было за верхнюю штуку, где написано Form1

Добавлено через 4 мин.
т.е. чтобы формы 2,3,4 были как бы компонентами 1й
volvo
Ну, попробуй тогда вот так изменить класс первой формы:

type
TForm1 = class(TForm)
// ...
private
px, py: integer;
started: boolean;
procedure OnMove(var aMsg:TWMMove);message WM_MOVE;
end;

procedure TForm1.OnMove(var aMsg:TWMMove);
begin
if started then
begin
form2.Left := form2.Left + (form1.Left - px);
form2.top := form2.top + (form1.top - py);
form3.Left := form3.Left + (form1.Left - px);
form3.top := form3.top + (form1.top - py);
form4.Left := form4.Left + (form1.Left - px);
form4.top := form4.top + (form1.top - py);

px := Form1.Left; py := Form1.Top;
end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
form2.Left:=(form1.Panel1.Width div 2) - (form2.Width div 2)+form1.Left;
form2.top:=(form1.Panel1.height div 2) - (form2.height div 2)+form1.Top;
px := Form1.Left; py := Form1.Top; // добавляем эти 2 строки
started := true;
end;
Тебе этого хотелось что-ли?
sheka
Цитата(volvo @ 16.11.2009 0:06) *
Тебе этого хотелось что-ли?

Оно самое! Спасибо!!! good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.