Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. А теперь вопрос, как мне это сделать, если я имею "TMyDocForm" в строковом формате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 13:00 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Если я тебя правильно понял, то RTFM: Finds and returns a class that is derived from TPersistent. function FindClass(const ClassName: string): TPersistentClass; Description Call FindClass to locate a class type by name. FindClass searches the classes that the streaming system knows about. Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered with the streaming system. Other classes can be registered (with a call to RegisterClasses) so that the streaming system will recognize that class in a stream and know how to construct it. If the requested class name cannot be found, FindClass raises an exception. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 13:07 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Я это читал в хелпе, но как это реализовать, я не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 13:53 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
type TXClass=class of TCustomForm; var trikuku: TXClass; MyForm:TCustomForm; begin trikuku:=TXClass(FindClass("TMyForm")); MyForm:=trikuku.Create(Application); Реально ты получишь в результате в MyForm экземпляр класса TMyForm. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:40 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Для использования функций FindClass и GetClass необходимо сначала зарегистрировать пользовательский класс функцией RegisterClass или RegisterClasses. Их описание приведено в хелпе. Обычно регистрация выполняется в секции initialization модуля. Хорошем стилем в секции finalization добавить парную UnRegisterClass. Пример можно посмотреть в самом VCL, выполнив поиск в исходниках VCL по RegisterClass. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 23:10 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Ну, ясен пень, надо RegisterClass вызывать... Куда ж без него. Но это как раз в хелпе написано, а человек не может понять, как то, что написано в хелпе, реализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2003, 00:39 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Все сделал, регистрирую класс в initialization в модуле класса. Но при команде findclass, выдает: не могу найти класс. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 14:49 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Назвали "дураком", а на вопрос не ответили!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2003, 07:39 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Точно напиши, как ты его зарегистрировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2003, 01:09 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Это я вставлял в разные модули, эфект один и тот же: Код: plaintext 1. Затем где-нить: Код: plaintext 1. 2. 3. 4. Не работает, выдает "не могу найти класс". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2003, 08:30 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Надо писать не просто RegisterClass, а Classes.RegisterClass. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2003, 09:10 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Не помогло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2003, 10:05 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Попробуй на тестовом приложении сделать. На TFORM1 нового только что созданного проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2003, 10:18 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Попробовал. На тестовом работает, а в моем проекте нет. Ничего не помимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 07:54 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Давай по шагам. Сначала вызови FindClass в своем проекте непосредственно после RegisterClass. Потом отключи все findclass, Которые есть и сделай findclass либо в OnCreate формы, которая является экземпляром этого класса, либ сразу после создания этой формы. И это... я надеюсь, у тебя код и ресурс формы не в DLL? (или RegisterClass - в DLL, а код и ресурс класса формы - в основном модуле). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 21:33 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Все попробовал, даже вот так сделал: Код: plaintext 1. 2. Все это я делаю в основной форме. Все равно пишет, что класс не найден. А что насчет DLL, если я подключаю DLL, в которой есть класс который я хочу подключить, там система та же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2003, 08:17 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Ну-ка создай новый пустой проект, там в юните основной формы вставь секцию инициализации: Код: plaintext 1. 2. 3. 4. И проверь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2003, 10:35 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Ну проверял ведь, на новом проекте все работает. А в моем не рабоатет. Этот проект я не сначала делал, т.е. я перенял в процессее. Некоторые формы я не трогал, но знаю что там планировалось работать с DLL'шками. Вот и вопрос, что в этом проеке может быть, что мешает работать связке RegisterClass, FindClass. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 09:21 |
|
||
|
TCustomFormClass. Вопрос на засыпку, уважаемые.
|
|||
|---|---|---|---|
|
#18+
Если у тебя форма (т.е., код её юнита и её ресурс) в DLL, а FindClass делаешь в приложении - не покатит. DLL - это ж весчь в себе. И копия VCL на каждую из них - своя. Ну и переменная Classes.ClassList типа TThreadList, в которой и хранится список зарегистрированных классов - тоже у каждой DLL - своя. И если ты RegisterClass делаешь из DLL при загрузке этой DLL, а FindClass - из самого приложения, то ты обращаешься к той переменной, которая находится в приложении. В этом случае СОДР одно из трех: 1) Немедленное сэппоку. Эффективно очень. Попробуй. 2) Runtime Packages 3) Спец. экспортируемая функция в каждой DLL (с предопределенным именем, напр.), которая по имени класса будет вызывать Findclass внутри DLL и возвращать указатель на класс в вызывающее приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 12:24 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2118378]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 434ms |

| 0 / 0 |
