Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Формы   Найти похожие ветки 

 
led   (2007-08-25 12:39) [0]

Можно ли как-то связать две форму, т. е. при перемещении одной вторая будет тоже перемещаться за первой.


 
Anatoly Podgoretsky ©   (2007-08-25 12:47) [1]

Можно


 
wp2 ©   (2007-08-25 12:47) [2]

конкретнее, где будет первая форма, где вторая.


 
wp2 ©   (2007-08-25 12:51) [3]

В событии MouseDown запоминаешь в булевскую переменную, что ты нажал на правую кнопку мыши.
В событии MouseMove надо написать что-то такое
Form2.Left := Form1.Left + Form1.Width;
Form2.Top := Form1.Top;

ЗЫ. Это если вторая форма будет справа от первой.


 
wp2 ©   (2007-08-25 12:53) [4]

да не забудь же в MouseMove тот код выполнять когда та булевская переменная труъ.

Да не забудь же в MouseUp ту булевскую переменную в фальш :-)


 
engine ©   (2007-08-25 12:57) [5]

> [4] wp2 ©   (25.08.07 12:53)

ShiftState есть и в MouseMove, зачем лишние переменные?

[3] - здесь форма2 будет мотаться за мышью, а не за формой1.


 
wp2 ©   (2007-08-25 13:08) [6]

Правильно, а мышь то будет мотать форму1 ;-)


 
Leonid Troyanovsky ©   (2007-08-25 13:09) [7]


> wp2 ©   (25.08.07 13:08) [6]

> Правильно, а мышь то будет мотать форму1

Форма может и не мышью перемещаться.

--
Regards, LVT.


 
wp2 ©   (2007-08-25 13:11) [8]

? курсорами? в режиме для инвалидов?


 
engine ©   (2007-08-25 13:12) [9]

> [6] wp2 ©   (25.08.07 13:08)

Пробовал?


 
wp2 ©   (2007-08-25 13:16) [10]

Так, тот способ действительно что-то не работает, так как когда по заголовку клацаешь мышкой события мышинные не генерируются.

А ведь когда-то я такое сделал.

Так, счас попробую с TAction поработать.


 
Leonid Troyanovsky ©   (2007-08-25 13:16) [11]


> wp2 ©   (25.08.07 13:11) [8]

> ? курсорами? в режиме для инвалидов?

Во-первых, это не для инвалидов.
Во-вторых, хотя бы, и для них.
В-третьих, форма может перемещаться путем установки ее свойств,
например: Top, Left.

--
Regards, LVT.


 
wp2 ©   (2007-08-25 13:20) [12]

А может Drag&Doc?


 
Anatoly Podgoretsky ©   (2007-08-25 13:25) [13]

> wp2  (25.08.2007 13:11:08)  [8]

Ты не любишь инвалидов?
А пользователей которые клавиатурой пользуются?


 
wp2 ©   (2007-08-25 13:36) [14]

ну что вы пристали к этим инвалидам?

лучше скажите какое сообщение поймать, когда мышка нажимается на заголовке окна?


 
wp2 ©   (2007-08-25 13:55) [15]

Вот:

Кинь компонент TApplicationEvent

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
   if Msg.message = WM_NCMOUSEMOVE then
   begin
       Form2.Left := Form1.Left + Form1.Width;
       Form2.Top := Form1.Top
   end;
end;


 
Turbouser ©   (2007-08-25 14:34) [16]

Так лучше :)
type
 TForm1 = class(TForm)
   Label1: TLabel;
   procedure WMWINDOWPOSCHANGED(var Message: TMessage); message WM_WINDOWPOSCHANGED;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

uses unit2;

{$R *.dfm}

procedure TForm1.WMWINDOWPOSCHANGED(var Message: TMessage);
begin
inherited;
 if (Form2 <> nil)and not(csDestroying in Form2.ComponentState) then
 begin
   if not Form2.Visible then
     Form2.Visible := True;
   Form2.Left := Left + 100;
   Form2.Top := Top + 100;
 end;
end;


 
Leonid Troyanovsky ©   (2007-08-25 17:49) [17]


> Turbouser ©   (25.08.07 14:34) [16]
> Так лучше :)

>    Form2.Left := Left + 100;
>    Form2.Top := Top + 100

Оно не совсем лучше, бо, Left & etc
отразит полжение до.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-08-25 18:00) [18]


> wp2 ©   (25.08.07 13:11) [8]
> ? курсорами? в режиме для инвалидов?

Мы пристали?


 
Turbouser ©   (2007-08-25 18:01) [19]

> [17] Leonid Troyanovsky ©   (25.08.07 17:49)

Если бы было WM_WINDOWPOSCHANGING - то да.
А у нас WM_WINDOWPOSCHANGED - т.е. уже после изменения.
О чем, собственно и сказано в хелпе:
The WM_WINDOWPOSCHANGED message is sent to a window whose size, position,
or place in the Z order has changed as a result of a call to the
SetWindowPos function or another window-management function.


 
Leonid Troyanovsky ©   (2007-08-26 07:19) [20]


> Turbouser ©   (25.08.07 18:01) [19]

> А у нас WM_WINDOWPOSCHANGED - т.е. уже после изменения.

inherited не приметил, sorry.

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
2-1187726666
Kiber1
2007-08-22 00:04
2007.09.16
Debugger Fault Notification


2-1187762201
Виктор007
2007-08-22 09:56
2007.09.16
StrAlloc на АПИ


2-1187867306
nord489
2007-08-23 15:08
2007.09.16
MainMenu и PopupMenu


1-1183635629
Tack
2007-07-05 15:40
2007.09.16
Как при открытии TOpenDialog задать формат отображения файлов?


15-1187596793
Sergey Masloff
2007-08-20 11:59
2007.09.16
Задачка. Контекстно-свободная грамматика для римских чисел.