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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.043 c
2-1187689604
em240
2007-08-21 13:46
2007.09.16
Обработка результата нажатия кнопки


15-1187213795
SaMar
2007-08-16 01:36
2007.09.16
Предлагаю книги по DELPHI для скачивания!!!


15-1187432782
Riply
2007-08-18 14:26
2007.09.16
Удаление анкеты.


3-1179423532
Lavrenty
2007-05-17 21:38
2007.09.16
Log, debug или что-то вроде этого?


15-1187317150
Slider007
2007-08-17 06:19
2007.09.16
С днем рождения ! 17 августа 2007 пятница





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