|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.05.2011, 13:11 | #1 |
Форумчанин
Регистрация: 01.02.2011
Сообщений: 105
|
Прилипание формы2 к форме1
Здравствуйте.
Подскажите пожалуйста, как сделать, чтобы открытая форма 2 по центру формы 1 как бы к ней прилипла, и перетаскивалась вместе с формой 1? Если не трудно, лучше с примерчиком. Заранее благодарю. |
07.05.2011, 14:40 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Program Files\Borland\Delphi7\Demos\Docking
|
07.05.2011, 14:50 | #5 |
Форумчанин
Регистрация: 01.02.2011
Сообщений: 105
|
|
07.05.2011, 15:24 | #6 |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
http://delphi-faq.zoxt.net/1563.htm - мне помогло решить такой же вопрос
|
07.05.2011, 15:25 | #7 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
читайте справку по свойству формы screensnap, думаю может помочь
а нет )) там только про края экрана, я думал и по родительской форме тоже Последний раз редактировалось phomm; 07.05.2011 в 15:29. |
07.05.2011, 16:08 | #8 |
Форумчанин
Регистрация: 01.02.2011
Сообщений: 105
|
Попробовал сделать через таймер, но результат конечно не впечатляет:
При перетаскивании формы1, форма2 перемещается с задержкой(надо чтобы намертво приклеенная была), и нельзя перемещать форму 2, она возвращается на установленную позицию. Вот код: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Timer1: TTimer; Button1: TButton; procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Form2.Show; end; procedure TForm1.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); begin Form2.Left:=form1.Left+50; Form2.Top:=Form1.Top+50; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Form2.Left:=form1.Left+50; Form2.Top:=Form1.Top+50; end; end. Если сможете, подскажите пожалуйста что не так, а то советы выше применить не получилось. |
07.05.2011, 16:24 | #9 |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
эт делается через ресайз
Код:
Последний раз редактировалось bulldog5293; 07.05.2011 в 20:34. |
07.05.2011, 16:42 | #10 |
Форумчанин
Регистрация: 01.02.2011
Сообщений: 105
|
Сделал по выше предложенному коду, только не компилируется, да и
procedure Form1.WMMove(var Msg: TWMMove); не могу найти, на ней ошибка при компиляции. Код: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Timer1: TTimer; Button1: TButton; procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); procedure FormResize(Sender: TObject); private { Private declarations } public { Public declarations } procedure WMMove(var Msg: TWMMove); message WM_MOVE; end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Form2.Show; end; procedure Form1.WMMove(var Msg: TWMMove); begin inherited; if (Visible) then FormResize(Self); end; procedure TForm1.FormResize(Sender: TObject); begin with Form2 do begin Width := Form1.Width - 10; Top := Form1.Top + GetSystemMetrics(SM_CYFRAME); Left := ((Form1.Left + Form1.Width) - Width) - 69; end; end; end. Поправьте пожалуйста, если где ошибка. Рабочий примерчик-то есть посмотреть? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi 7 Взаимное прилипание\отлипание форм в одном проекте | Dj_SheLL | Помощь студентам | 13 | 06.07.2015 17:52 |
Прилипание формы к ктоям десктопа про перетаскивании | Altera | Общие вопросы Delphi | 2 | 04.07.2008 00:38 |
Прилипание. | Черничный | Общие вопросы Delphi | 3 | 30.05.2008 15:49 |
Как разрешить Форме1 приём данных? | Rahim1993 | Общие вопросы Delphi | 12 | 19.01.2008 09:57 |