Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
1-85034
Cr@sh
2002-08-09 08:04
2002.08.26
Вопрос по QReport.


3-84897
MaXie
2002-08-05 12:24
2002.08.26
DBGrid - не все так просто!


3-84926
DKalinin
2002-08-05 10:36
2002.08.26
Как сохранить в базу шаблон отчета и считать его оттуда?


3-84921
bobr12
2002-08-07 10:10
2002.08.26
Как узнать, существует ли таблица?


3-84896
ziper
2002-08-06 12:43
2002.08.26
Проблемы с с озданием *.dbf





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский