Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Вниз
Программное создание формы Найти похожие ветки
← →
dmtr (2002-08-15 11:25) [0]Подскажите пожалуйста, можно ли программно создать форму и потом заполнить ее кодом? И если можно, то как?
← →
Виктор Щербаков (2002-08-15 11:40) [1]
> Подскажите пожалуйста, можно ли программно создать форму
> и потом заполнить ее кодом? И если можно, то как?
Создать форму программно можно, а вот про заполнение кодом - непонятно о чем речь. Обработчики что ли назначить событиям?
← →
gek (2002-08-15 11:41) [2]Заполнить компонентами что ли?
← →
dmtr (2002-08-15 11:49) [3]
> Обработчики что ли назначить событиям?
В принципе - да. Но для начала просто создать форму, да и так, чтобы она была и при следующем запуске приложения.
← →
lenin (2002-08-15 11:53) [4]Можно:
with TForm.Create(nil) do
begin
left:=10;
top:=10;
name:="MyForm";
caption:="MyForm";
show;
update;
end;
← →
dmtr (2002-08-15 11:58) [5]
> lenin ©
Но время ее жизни - до конца работы приложения. А надо, чтобы она стала частьью EXE-шника, чтоли.
← →
Виктор Щербаков (2002-08-15 11:58) [6]
> да и так, чтобы она была и при следующем запуске приложения.
>
Все формы создаются программно. Вопрос в том, твоим кодом или кодом сгенерированным VCL.
Если хочешь видеть форму при следующем запуске, то нужно сохранять состояние программы (количество форм, их расположение и т.п.), а при старте восстанавливать его, т.е. создавать формы.
← →
Виктор Щербаков (2002-08-15 11:59) [7]
> кодом сгенерированным VCL.
...сгенерированным IDE хотел сказать :)
← →
dmtr (2002-08-15 12:05) [8]
> Если хочешь видеть форму при следующем запуске, то нужно
> сохранять состояние программы (количество форм, их расположение
> и т.п.), а при старте восстанавливать его, т.е. создавать
> формы.
Ну, а как на счет обработчиков внутри форм?
← →
Виктор Щербаков (2002-08-15 12:10) [9]Обработчики можно назначать в дизайнтайме.
Даже если создашь программно, своим кодом, у её событий и событий помещенных на нее компонентов останутся назначенные обработчики.
Если нужно поменять какой-либо обработчик в рантайме, то тоже не вижу никаких проблем.
Например:
with TForm.Create(nil) do
begin
left:=10;
top:=10;
name:="MyForm";
caption:="MyForm";
OnClose := Form2.OnClose; show;
update;
end;
← →
dmtr (2002-08-15 12:18) [10]
> Виктор Щербаков ©
Проблема как раз и заключается в том, что у некоторых форм нет
дизайнтайма, и обработчики должны быть свои, заново созданные, а
не копированные с других форм.
← →
-peter- (2002-08-15 12:34) [11]А обработчики хочеш тоже в рантайме создавать ???
← →
Виктор Щербаков (2002-08-15 12:34) [12]
> и обработчики должны быть свои, заново созданные, а
> не копированные с других форм.
В любом случае код для обработки событий форм и их компонентов придется писать в дизайне.
Обработчики событий должны быть методами объекта. В этом их основное отличие от простых функций. А вот какого объекта - это уже не так важно. Можешь создать свой специально для этих целей.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c