Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание TControl в произвольном окне с известным дескриптором [FPC, Windows]


Пётр ©   (2007-08-26 15:19:00) 

Здраствуйте.
Есть задача разместить контрол(панель) в произвольном окне. Известен хэндл окна. Хотелось бы, чтобы кроме процедуры создания панели, вся остальная работа проходила именно с PControl. Возможноли тако и что для этого нужно?
Если данный вопрос уже поднимался, пожалуйста дайте ссылку.
Спасибо.


Пётр   (2007-08-27 19:52:00) [1]

Проблема была не в этом, но она уже решена.
По умолчанию, windows.setParent работает для окон и контролов одного приложения, то есть если у меня в программе есть две формы, то я могу "перекинуть" панель с одной на другую. Но если "перекинуть" панель на форму другого приложения, то при первом же обращении к контролу панель возвращалась на ту форму, которой она принадлежала. Не знаю почему, но принудительное установление
panel.Style:=panel.Style OR WS_CHILD
решило проблему...
Спасибо за вашу помощь.


ANTPro   (2007-08-26 21:54:00) [2]


procedure TForm1.Button1Click(Sender: PObj);
begin
 Ctrl := NewPanel(Form, esRaised).SetPosition(10, 10).SetClientSize(50, 50);
 SetParent(Ctrl.Handle, Panel1.Handle);
 Ctrl.Show;
 Ctrl.Left:=50;//Работает
 Ctrl.Caption:='sdfsdfwsf';//Работает
end;


Пётр   (2007-08-26 20:44:00) [3]

Ваш метод работает. НО только до первого изменения свойств контрола. После изменения свойств контрол возвращается на прежнее место к прежнему родителю.


ANTPro   (2007-08-26 16:40:00) [4]

Возможно создать как обычно, а потом сменить предка функцией SetParent.


Наверх

Титульная страница Поиск, карта сайта Написать письмо