![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 01.02.2011
Сообщений: 105
|
![]()
Здравствуйте.
Подскажите пожалуйста, как сделать, чтобы открытая форма 2 по центру формы 1 как бы к ней прилипла, и перетаскивалась вместе с формой 1? Если не трудно, лучше с примерчиком. Заранее благодарю. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
![]()
Program Files\Borland\Delphi7\Demos\Docking
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 01.02.2011
Сообщений: 105
|
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
![]()
http://delphi-faq.zoxt.net/1563.htm - мне помогло решить такой же вопрос
|
![]() |
![]() |
![]() |
#7 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
![]()
читайте справку по свойству формы screensnap, думаю может помочь
а нет )) там только про края экрана, я думал и по родительской форме тоже Последний раз редактировалось phomm; 07.05.2011 в 15:29. |
![]() |
![]() |
![]() |
#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. Если сможете, подскажите пожалуйста что не так, а то советы выше применить не получилось. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
![]()
эт делается через ресайз
Код:
Последний раз редактировалось bulldog5293; 07.05.2011 в 20:34. |
![]() |
![]() |
![]() |
#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 |