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

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

Как вывести форму на панельке или табшите другой формы? [D7]


Яцхен ©   (2010-04-30 15:56:00) 

Делаю вот так:

procedure TEmbeddedFormList.AddForm(AFormClass: TFormClass; AParent: TWinControl);
var
 AWinControl: TForm;
begin
 AWinControl := AFormClass.Create(AParent);
 AWinControl.Parent := AParent;
 //TForm(AWinControl).SendToBack;
 TForm(AWinControl).Show;
end;

не помогает...


_Юрий   (2010-05-02 19:35:00) [1]


> DVM ©   (01.05.10 19:02) [9]

+1


DVM   (2010-05-01 19:02:00) [2]


> Юрий Зотов ©   (30.04.10 19:19) [8]


> Не лучше ли использовать фрейм?

Имхо не лучше. Я долго использовал фреймы, в результате перешел на формы. Проблем именно с фреймами оказалось больше.


Юрий Зотов   (2010-04-30 19:19:00) [3]


> Яцхен   (30.04.10 17:15) [7]

Такой прием может оказаться не вполне безопасным. Все-таки форма предназначена не для этого, сообщения системы она обрабатыает по-своему и поэтому могут возникнуть проблемы.

Не лучше ли использовать фрейм? Он ведь как раз под такие штуки и заточен.


Яцхен   (2010-04-30 17:15:00) [4]

вернее вот так:

procedure AddForm(AFormClass: TFormClass; AParent: TWinControl);
var
 AForm: TForm;
begin
 AForm := AFormClass.Create(AParent);
 AForm.Parent := AParent;
 AForm.BorderStyle := bsNone;
 AForm.ParentFont := true;
 AForm.Align := alClient;
 AForm.Show;
end;


Яцхен   (2010-04-30 17:12:00) [5]

спасибо! помогло.

Вармант, который меня устроил,выглядит вот так:

procedure AddForm(AFormClass: TFormClass; AParent: TWinControl);
var
 AWinControl: TForm;
begin
 AWinControl := AFormClass.Create(AParent);
 AWinControl.Parent := AParent;
 AWinControl.BorderStyle := bsNone;
 AWinControl.ParentFont := true;
 AWinControl.Align := alClient;
 TForm(AWinControl).Show;
end;


{RASkov}   (2010-04-30 16:11:00) [6]

procedure AddForm(AFormClass: TFormClass; AParent: TWinControl);
var AWinControl: TForm;
begin
AWinControl := AFormClass.Create(AParent);
AWinControl.Parent := AParent;
AWinControl.Left:=10;
AWinControl.Top:=10;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 AddForm(TForm2, Form3.Panel1);
end;


{RASkov}   (2010-04-30 16:10:00) [7]

> [3] Яцхен   (30.04.10 16:08)
> а в какой системе координат их выставлять?

В области нового парента.... т.е. AParent'а


Яцхен   (2010-04-30 16:08:00) [8]


> {RASkov} ©

а в какой системе координат их выставлять?


> Игорь Шевченко ©

для вашего случая тоже потом нужно править координаты?


{RASkov}   (2010-04-30 16:06:00) [9]

> [0] Яцхен   (30.04.10 15:56)

Left и Top у AWinControl выставь правильные


Игорь Шевченко   (2010-04-30 16:00:00) [10]

InsertControl ?


Наверх

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