IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Динамическое создание формы
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Рузультат слудеющих действий будет подходить под критерий "Динамически созданная форма" ?

Создаем стандартное приложение Delphi. Имеем Form1 in Utin1.pas.
Добваляем к проекту еще одну форму (Form2 in Unit2.pas)
На вторую форму кидам с панелей всякую всячину (лейблы, эдиты, стринггриды итд)

Из Project1.dpr удаляем
Application.CreateForm(TForm2, Form2);


На Form1 кидаем кнопку, в обработчике нажатия на которую пишем следующее:

procedure TForm1.Button1Click(Sender: TObject);
var
Form2: TForm2;
begin
Form2 := TForm2.Create(Application);
Form2.ShowModal;
end;


Созданная таким образом форма является динамической ? Почему меня интересует этот вопрос. На соклько я понял надо это делать по другому, все руками.Самому создавать юнит, руками описывать там класс формы, писать какие компоненты будут на форме, в конструкторе класса регестрировать эти компоненты, задвать их свойства...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Созданная таким образом форма является динамической ?
Она является динамически (а не автоматически) созданной...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Цитата(klem4 @ 11.11.2006 12:33) *

На соклько я понял надо это делать по другому, все руками.Самому создавать юнит, руками описывать там класс формы, писать какие компоненты будут на форме, в конструкторе класса регестрировать эти компоненты, задвать их свойства...

Почти руками: я этого "руками" не делаю, создаю обычную форму и делаю все как обычно, потом в том unit где твоя форма удаляю строку var Form2: TForm2; , в Project1.dpr удаляю этот юнит из объявления uses и строчку Application.CreateForm(TForm2, Form2);
Вуаля! Все smile.gif


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


hiv, я так и делаю, только боюсь как бы препод не начал возмущаться, а программа не маленькая и форм много (приложение для работы с БД) и везде все писать вручную типа


var
f: TForm;
Panel1, ... Panel5: TPalen;
StrGrdStore: TDBGrid;

...

begin
F := TForm.Create(Application);
wirh F do begin
Top := 10;
//...
Panel1 := TPanel.Create(f);
with Panel1 do begin
Parent := F;
// ... всякие настройки
end;
end;
...
end;


А он ведь имеено так на лекции объяснял, хорошо что меня там не было smile.gif) Я бы сильно разозлился smile.gif

Я просто не вижу никакого смысла в этом гемморое ... Не дай Бог переделывать рпидется !fire.gif



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(klem4 @ 21.11.2006 15:43) *

Не дай Бог переделывать рпидется !fire.gif

Мне кажется придется.. Чтобы немного упростить переделку можно сделать "View as text" на форме, там все уже почти красиво.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Боже!!! mega_chok.gif
Это даже хуже чем я думал!
Вашего препода нада поучить Turbo Pascal for Windows 1.0 (начало 90-х) вместе с Resource Workshop, даже там это проще чем он предлагает sad.gif
Сочувствую...


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.11.2024 1:59
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name