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

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

Как запихнуть форму в tPanel


Алексей А. ©   (2006-09-21 23:39:00) 

Здравствуйте.
Собственно сабж. (на подобии фрейма).
Зарание спасибо.


Алексей А.   (2006-09-23 23:13:00) [1]

Огромное спасибо всем!


clickmaker   (2006-09-22 15:00:00) [2]


> [6] Алексей А.   (22.09.06 00:04)
> Дык контролы разные. Например на 1-й странице толь Memo,
> 2-й - три Edit'a, 5-й ProgressBar и т.д. Наверное прийдётся
> всё-таки юзать Notebook...

TPageControl со свойством TabVisible = false у закладок.
Кнопки на форме под ним.
Станадртные виндозные визарды так и делаются обычно


StriderMan   (2006-09-22 14:57:00) [3]

эээээ я конечно извиняюсь но

Form1.Parent := Panel;


atruhin   (2006-09-22 13:09:00) [4]

Спорить не буду но взял с рабочего проекта.


Чапаев   (2006-09-22 09:24:00) [5]

> procedure TfrmAbstractChild.CreateParams(var Params: TCreateParams)
> ;
> begin
> inherited;
> Params.Style := Params.Style or WS_CHILD;
> end;

Ну ещё вроде Params.ParentWnd тут прописать надо.


atruhin   (2006-09-22 06:58:00) [6]

Подробно по запихиванию форм описано у Тейксейра(вроде так), Пачеко.
Но форму придется создавать динамически, т.е. как компонент в палитре не разместиш.
Вот так:
constructor TfrmAbstractChild.CreateChild(AOwner: TComponent);
begin
 FTempParent := TWinControl(AOwner);
 inherited Create (AOwner);
end;

procedure TfrmAbstractChild.CreateParams(var Params: TCreateParams);
begin
 inherited;
 Params.Style := Params.Style or WS_CHILD;
end;

procedure TfrmAbstractChild.Loaded;
begin
 inherited;
 Align := alClient;
 BorderStyle := bsNone;
 BorderIcons := [];
 Parent := FTempParent;
 Position := poDefault;
end;


DrPass   (2006-09-22 01:11:00) [7]

Можно и форму, при желании. Например, если не хочется пихать все в один модуль.
У формы Align = alClient, BorderStyle = bsNone;
Потом - MyForm.ManualDock(MyPanel); MyForm.Visible:= true;


Германн   (2006-09-22 01:04:00) [8]


> Алексей А.   (22.09.06 00:04) [6]
>
> Дык контролы разные. Например на 1-й странице толь Memo,
>  2-й - три Edit'a, 5-й ProgressBar и т.д. Наверное прийдётся
> всё-таки юзать Notebook...
>

TPageControl имхо, лучше подходит для этой задачи.
А кнопки Next, Back и т.п. лучше разместить под ним, а не на нём.


ProgRAMmer Dimonych   (2006-09-22 00:09:00) [9]

Вариант 1. Одни показывать, другие прятать... {контролы}
Вариант 2. Одну показывать, все остальные прятать... {закладки}


Алексей А.   (2006-09-22 00:04:00) [10]

Дык контролы разные. Например на 1-й странице толь Memo, 2-й - три Edit'a, 5-й ProgressBar и т.д. Наверное прийдётся всё-таки юзать Notebook...


ProgRAMmer Dimonych   (2006-09-21 23:57:00) [11]

А что, если использовать одни и те же контролы, но в определённый момент заменять их содержимое (Caption и т.п.) на нужное. У меня что-то похожее в моей научной работе по информатике (обучающая программа). Только придётся продумать, где хранить эти Caption'ы...


Алексей А.   (2006-09-21 23:51:00) [12]

Хммм...
Мне нужно сделать что-то вроде мастера (Wizard), но по несколько раз создавать одни и те же кнопки (Next, Back и т.д) не хочется. Notebook тоже не очень :(


Ketmar   (2006-09-21 23:44:00) [13]

лучше и их не надо. %-)


Алексей А.   (2006-09-21 23:41:00) [14]

неужели только фреймы можно юзать?


Ketmar   (2006-09-21 23:39:00) [15]

проще всего -- забыть об этой грустной идее. заранее пожалуйста.


Наверх

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