Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.24;
Скачать: CL | DM;

Вниз

Две формы одного класса   Найти похожие ветки 

 
Виталька 2006   (2006-09-07 12:59) [0]

Здравствуйте,  мастера.
Такая вроде несложная задача, но чето никак:(
У меня есть форма myForm ксасса TmyForm.
И я хочу создать ещё одну форму myFormR того же класса.
Написал
Application.CreateForm(TmyForm, myFormR);
и в модуле формы
var myForm, myFormR: TmyForm
Но при запуске создаётся форма myForm_1, и соответственно
все  обращения к myFormR на неё не влияют:(
В чём дело?


 
Loginov Dmitry ©   (2006-09-07 13:04) [1]

Обманываете.
Если
Application.CreateForm(TmyForm, myFormR);
выполнится, то указатель myFormR будет инициализирован.


 
Ega23 ©   (2006-09-07 13:05) [2]

var
MyFormR:TMyForm
begin
MyFormR:=TMyForm.Create(Application) (или от nil, если сам убивать будешь)


 
Виталька 2006   (2006-09-07 13:21) [3]

Теперь работает.
Но остались вопросы:
1. если у меня вторая форма называется myFormR, то при просмотре в Evaluate значения Self.name отображается myForm_1. Это что, как бы внутренее имя этой формы?
2. MyFormR:=TMyForm.Create(Application) эквивалентно Application.CreateForm(TmyForm, myFormR) ?


 
Loginov Dmitry ©   (2006-09-07 15:59) [4]

> 2. MyFormR:=TMyForm.Create(Application) эквивалентно Application.CreateForm(TmyForm, myFormR) ?


Не совсем.
CreateForm сначала инициализирует указатель, а только потом создает объект. Таким образом переменную формы можно использовать в обработчике события OnCreate.


 
Германн ©   (2006-09-07 16:10) [5]


> 1. если у меня вторая форма называется myFormR, то при просмотре
> в Evaluate значения Self.name отображается myForm_1.

А ты присваивал имя? Типа MyFormR.name:="MyFormR";?


 
Ega23 ©   (2006-09-07 16:12) [6]


> Это что, как бы внутренее имя этой формы?


У тебя у базового класса уже есть Name=myForm


 
evvcom ©   (2006-09-07 16:33) [7]

> [4] Loginov Dmitry ©   (07.09.06 15:59)
> переменную формы можно использовать в обработчике события
> OnCreate.

С вариантом "несколько объектов класса TMyForm" этого делать нельзя, но можно использовать в обработчике Sender


 
Виталька 2006   (2006-09-07 19:30) [8]

>А ты присваивал имя? Типа MyFormR.name:="MyFormR";?
Нет) Теперь всё понял. Запутался в понятиях "имя формы" и "переменная формы". Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2006.09.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
3-1152879525
MsGuns
2006-07-14 16:18
2006.09.24
Загрузка объемных данных в рамках одной транзакции


2-1157132770
VEZ
2006-09-01 21:46
2006.09.24
Overriding virtual method TLevelN.ItemsChanged has lower visibi


15-1157543985
Карелин Артем
2006-09-06 15:59
2006.09.24
1 зарядка на 4 сотовых разных фирм.


9-1133562554
Proger
2005-12-03 01:29
2006.09.24
Воксели в играх...?


1-1153984107
Stanislav
2006-07-27 11:08
2006.09.24
Очистка USES