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

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

Создание формы по имени класса [D7, XP]


Страницы:   1 2

beg ©   (2007-06-21 14:26:00) 

т.е.
нечто вроде:
function TSomeClass.CreateFormByClassName(sClassName: String): TForm;
begin
 Result := ... //создаем и возвращем
end;

подскажите, в какую сторону посмотреть
и ссылочку на хороший сайт/статью/книгу по RTTI, пожалуйста, покажите
в поисковике информации - во множестве, но хочется проверенное руководство


Инс   (2007-06-22 09:43:00) [1]

Через RTTI? Страшно подумать! Неужели объявили свойство типа TfrmGenre в каком-либо классе, получили PTypeData, а потом выделили поле ClassType? Как иначе без первого предположния можно найти ссылку на класс по имени?


Ega23   (2007-06-22 09:40:00) [2]


> вчера читал про RTTI, много думал и сделал)


А вот это - молодец.


Ega23   (2007-06-22 09:39:00) [3]


> т.е. я виновен в том, что Сергей пожелал мне высказать своё
> раздражение по поводу массы глупых вопросов в этом разделе
> форума?))


Я хочу сказать, что задавая вопрос, ты вполне можешь нарваться на такой ответ. Серёга, пожалуй, вчера палку перегнул. Но обижаться тебе на это, ИМХО, не стоит. Меня тоже бывает так несёт.
Если побольше на форум походишь - поймёшь. Не обижайся.


Инс   (2007-06-22 09:29:00) [4]

И еще в дополнение... Так, как я написал, подряд RegisterClasses и GetClass - так в общем то не правильно. RegisterClasses нужно вызвать один раз, где-нибудь в OnCreate формы или в секции initialization


beg   (2007-06-22 09:28:00) [5]

Инс   (22.06.07 09:23) [17]
спасибо
вчера читал про RTTI, много думал и сделал)
по-ламерски, но сделал


Инс   (2007-06-22 09:27:00) [6]

В дополнение [17]... Только ради Бога, не путайте RegisterClasses с RegisterComponents.


beg   (2007-06-22 09:25:00) [7]

Ega23 ©   (22.06.07 09:13) [16]
т.е. я виновен в том, что Сергей пожелал мне высказать своё раздражение по поводу массы глупых вопросов в этом разделе форума?))
прекрасно понимаю, почему так поступают 17-летние "мегапрограммисты", но подобное поведение взрослого мужчины смущает
впрочем, прошу прощения, если кого-то обидел, ибо не моё это собачье
в общем, ещё раз благодарю Вас и Сергей М.


Инс   (2007-06-22 09:23:00) [8]

AV вы получаете из-за того, что GetClass возвращает nil, так как не может найти незарегистрированный класс. Все имена классов, которые вы хотите подобным образом использовать зарегистрируйте с помощью RegisterClasses:

RegisterClasses([TfrmGenre]);
SomeForm := TForm(GetClass('TfrmGenre')).Create(Self);


Ega23   (2007-06-22 09:13:00) [9]


> Delphi открыл первый раз, ибо не занимаюсь разработкой посредством
> этого инструмента
> вопрос задал в "начинающих"
> поблагодарил искренне
> так нет же - бездна эскападной иронии и безудержного сарказма
> от Сергей М.))
> подавлен...
>


С одной стороны - да. С другой стороны - ты даже себе не представляешь, сколько в день таких вопросов тут задаётся...


beg   (2007-06-22 08:52:00) [10]

iXT ©   (21.06.07 16:31) [11]
Ega23 ©   (21.06.07 16:33) [12]
Delphi открыл первый раз, ибо не занимаюсь разработкой посредством этого инструмента
вопрос задал в "начинающих"
поблагодарил искренне
так нет же - бездна эскападной иронии и безудержного сарказма от Сергей М.))
подавлен...


Грициан   (2007-06-21 16:34:00) [11]

Желательно, если возникают такие вопросы, прочитать про паттерны проектирования. И реализовать свою фабрику классов. Чтобы не блуждать по граблям.


Сергей М.   (2007-06-21 16:33:00) [12]


> beg   (21.06.07 16:26) [10]



> я Вас принуждаю


Да что Вы ?! Да я вас умоляю - нет, нет и нет ! Ни в коЁм случае !

Просто AV имеет Вас, а не наоборот, как Вы изволили представить ситуацию)

А когда AV кого-то имеет, я не могу смотреть на это спокойно - общегражданский долг не позволяет)


Ega23   (2007-06-21 16:33:00) [13]


> только "ещё нежнее", а то складывается ощущение, что я Вас
> принуждаю отвечать))


Прежде, чем задавать вопрос имеет смысл попробовать разобраться самому. На что Серёга и намекал.


iXT   (2007-06-21 16:31:00) [14]

> а то складывается ощущение, что я Вас принуждаю отвечать)
> )

Не это они так принуждают работать мозги (чужие) :)


beg   (2007-06-21 16:26:00) [15]

Ega23, спасибо
Сергей М., Вам - также
только "ещё нежнее", а то складывается ощущение, что я Вас принуждаю отвечать))


Сергей М.   (2007-06-21 15:49:00) [16]


> Когдато делал типа


Все мы "когдато делали типа")

В подгузники, например)

Отладчик, повторяю, тебе на что дан ? Чтобы лупиться на него как баран на новые ворота ?


Ega23   (2007-06-21 15:43:00) [17]


> SomeForm := GetClass('TfrmGenre').Create(application) as
> tForm;


Это уже другое дело, согласись...  :)


Евгений Р.   (2007-06-21 15:41:00) [18]

Когдато делал типа
 SomeForm := GetClass('TfrmGenre').Create(application) as tForm;
Но, кажется что-то ругался насчет ресурсного файла.


Сергей М.   (2007-06-21 15:08:00) [19]


> имеем AV


И что ?

Отладчик Борландом для Пушкина писан ? Или все-таки для тебя ?


Ega23   (2007-06-21 15:04:00) [20]


> подробности?


1. Чей конструктор вызываешь?
2. Кто у тебя Self?


Страницы:   1 2

Наверх

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