Форум: "Начинающим";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
ВнизСоздание формы по имени класса Найти похожие ветки
← →
beg (2007-06-21 14:26) [0]т.е.
нечто вроде:
function TSomeClass.CreateFormByClassName(sClassName: String): TForm;
begin
Result := ... //создаем и возвращем
end;
подскажите, в какую сторону посмотреть
и ссылочку на хороший сайт/статью/книгу по RTTI, пожалуйста, покажите
в поисковике информации - во множестве, но хочется проверенное руководство
← →
Сергей М. © (2007-06-21 14:32) [1]см. GetClass()
← →
beg (2007-06-21 14:57) [2]хм
var
SomeForm: TForm;
begin
SomeForm := TForm(GetClass("TfrmGenre")).Create(Self);
end;
имеем AV
← →
Ega23 © (2007-06-21 14:59) [3]
> SomeForm := TForm(GetClass("TfrmGenre")).Create(Self);
>
> имеем AV
>
Кто бы сомневался...
← →
beg (2007-06-21 15:00) [4]
> Кто бы сомневался...
подробности?
← →
Ega23 © (2007-06-21 15:04) [5]
> подробности?
1. Чей конструктор вызываешь?
2. Кто у тебя Self?
← →
Сергей М. © (2007-06-21 15:08) [6]
> имеем AV
И что ?
Отладчик Борландом для Пушкина писан ? Или все-таки для тебя ?
← →
Евгений Р. (2007-06-21 15:41) [7]Когдато делал типа
SomeForm := GetClass("TfrmGenre").Create(application) as tForm;
Но, кажется что-то ругался насчет ресурсного файла.
← →
Ega23 © (2007-06-21 15:43) [8]
> SomeForm := GetClass("TfrmGenre").Create(application) as
> tForm;
Это уже другое дело, согласись... :)
← →
Сергей М. © (2007-06-21 15:49) [9]
> Когдато делал типа
Все мы "когдато делали типа")
В подгузники, например)
Отладчик, повторяю, тебе на что дан ? Чтобы лупиться на него как баран на новые ворота ?
← →
beg (2007-06-21 16:26) [10]Ega23, спасибо
Сергей М., Вам - также
только "ещё нежнее", а то складывается ощущение, что я Вас принуждаю отвечать))
← →
iXT © (2007-06-21 16:31) [11]> а то складывается ощущение, что я Вас принуждаю отвечать)
> )
Не это они так принуждают работать мозги (чужие) :)
← →
Ega23 © (2007-06-21 16:33) [12]
> только "ещё нежнее", а то складывается ощущение, что я Вас
> принуждаю отвечать))
Прежде, чем задавать вопрос имеет смысл попробовать разобраться самому. На что Серёга и намекал.
← →
Сергей М. © (2007-06-21 16:33) [13]
> beg (21.06.07 16:26) [10]
> я Вас принуждаю
Да что Вы ?! Да я вас умоляю - нет, нет и нет ! Ни в коЁм случае !
Просто AV имеет Вас, а не наоборот, как Вы изволили представить ситуацию)
А когда AV кого-то имеет, я не могу смотреть на это спокойно - общегражданский долг не позволяет)
← →
Грициан (2007-06-21 16:34) [14]Желательно, если возникают такие вопросы, прочитать про паттерны проектирования. И реализовать свою фабрику классов. Чтобы не блуждать по граблям.
← →
beg (2007-06-22 08:52) [15]iXT © (21.06.07 16:31) [11]
Ega23 © (21.06.07 16:33) [12]
Delphi открыл первый раз, ибо не занимаюсь разработкой посредством этого инструмента
вопрос задал в "начинающих"
поблагодарил искренне
так нет же - бездна эскападной иронии и безудержного сарказма от Сергей М.))
подавлен...
← →
Ega23 © (2007-06-22 09:13) [16]
> Delphi открыл первый раз, ибо не занимаюсь разработкой посредством
> этого инструмента
> вопрос задал в "начинающих"
> поблагодарил искренне
> так нет же - бездна эскападной иронии и безудержного сарказма
> от Сергей М.))
> подавлен...
>
С одной стороны - да. С другой стороны - ты даже себе не представляешь, сколько в день таких вопросов тут задаётся...
← →
Инс (2007-06-22 09:23) [17]AV вы получаете из-за того, что GetClass возвращает nil, так как не может найти незарегистрированный класс. Все имена классов, которые вы хотите подобным образом использовать зарегистрируйте с помощью RegisterClasses:
RegisterClasses([TfrmGenre]);
SomeForm := TForm(GetClass("TfrmGenre")).Create(Self);
← →
beg (2007-06-22 09:25) [18]Ega23 © (22.06.07 09:13) [16]
т.е. я виновен в том, что Сергей пожелал мне высказать своё раздражение по поводу массы глупых вопросов в этом разделе форума?))
прекрасно понимаю, почему так поступают 17-летние "мегапрограммисты", но подобное поведение взрослого мужчины смущает
впрочем, прошу прощения, если кого-то обидел, ибо не моё это собачье
в общем, ещё раз благодарю Вас и Сергей М.
← →
Инс (2007-06-22 09:27) [19]В дополнение [17]... Только ради Бога, не путайте RegisterClasses с RegisterComponents.
← →
beg (2007-06-22 09:28) [20]Инс (22.06.07 09:23) [17]
спасибо
вчера читал про RTTI, много думал и сделал)
по-ламерски, но сделал
← →
Инс (2007-06-22 09:29) [21]И еще в дополнение... Так, как я написал, подряд RegisterClasses и GetClass - так в общем то не правильно. RegisterClasses нужно вызвать один раз, где-нибудь в OnCreate формы или в секции initialization
← →
Ega23 © (2007-06-22 09:39) [22]
> т.е. я виновен в том, что Сергей пожелал мне высказать своё
> раздражение по поводу массы глупых вопросов в этом разделе
> форума?))
Я хочу сказать, что задавая вопрос, ты вполне можешь нарваться на такой ответ. Серёга, пожалуй, вчера палку перегнул. Но обижаться тебе на это, ИМХО, не стоит. Меня тоже бывает так несёт.
Если побольше на форум походишь - поймёшь. Не обижайся.
← →
Ega23 © (2007-06-22 09:40) [23]
> вчера читал про RTTI, много думал и сделал)
А вот это - молодец.
← →
Инс (2007-06-22 09:43) [24]Через RTTI? Страшно подумать! Неужели объявили свойство типа TfrmGenre в каком-либо классе, получили PTypeData, а потом выделили поле ClassType? Как иначе без первого предположния можно найти ссылку на класс по имени?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.929 c