Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
Добрый день! Как получить в run-time список всех форм приложения, в том числе и не созданных в данный момент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 13:03 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
Screen.Forms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 13:22 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
Screen.Forms - это все формы, отраженные на экране. А нужен список всех форм приложения, в т.ч. и несозданных. Хотя бы через vmt/RTTI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 13:34 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
Что значит "несозданные"? Если форма не создана, то ее нету и никак ты ее не получишь! Можно получить список классов форм. Для этого надо регистрировать классы, а потом искать их! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 13:44 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
тебе просто названия форм что-ли? тогда смотришь ресурсы exe-файла, раздел RCDATA у форм сигнатура 'TPF0' только зачем тебе это? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 14:18 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
2 srf2000 >тогда смотришь ресурсы exe-файла, раздел RCDATA А как это делается в рантайме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 14:55 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
RTFM LoadLibraryEx и флаг LOAD_LIBRARY_AS_DATAFILE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 15:27 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
формат dfm смотреть тут: http://giscenter.icc.ru:8082/scripts/WWWBinV.dll/ShowR?DFM.RFH правда старый кажись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 15:29 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы! RegisterClass(TForm1); это хорошо, но не достаточно поясню, зачем это нужно... есть приложение, которое состоит из сдоканных форм, информация о которых храниться в базе, название классов естественно в текстовом виде формы могут добавляться в приложение, а помнить дописывать регистеркласс в определённое место не хочется. да и зачем регистрировать, если это как-то можно получить, хотя искать 'TPF0' это слишком прямлоинейно:-) вот я и подумал, что раз существует для каждой формы/юнита? таблица vmt/rtti, то можно попробовать их получить внутренними способами ведь достаточно получить адрес одной формы, например главной(так и быть я её не просто зарегистрирую, но даже она будет создана), и получить по ней главную vmt/rtti таблицу(если такая существует), по которой потом можно проехаться и получить всё что нужно. Вот только как это сделать? или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 09:43 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
какой Delphi? начиная с 6 вроде есть TClassFinder.... у меня 5 :) не могу проверить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 11:30 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
a без RegisterClass не обойтись все равно IMHO... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 12:01 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
>> формы могут добавляться в приложение, а помнить дописывать регистеркласс в определённое место не хочется. А что там помнить? Если форма не кастомная, в инициализации юнита написал и все! Проще не куда! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 14:22 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
а так не подойдет Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. информация о формах находится в Menu ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 15:18 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
2 Alex_ это следующий шаг:-) вопрос пока в получении TFormClass по 'TFormClass' видимо RegisterClass неизбежен, либо руками искать главную таблицу vmt, если она вообще существует так же жаль, что нельзя узнать всех незарегистрированных наследников класса, хотя бы зарегистрированного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 15:49 |
|
||
|
Список форм приложения
|
|||
|---|---|---|---|
|
#18+
А зачем предку знать о наследниках? Если идёт вызов виртуального метода, то перед каждым объектом стоит ссылка на его таблицу виртуальных адресов. В остальном же это потомку нужно знать о предке, чтобы inherited вызывать. Что же касается самого вопроса, то таблицы для всех классов существуют, также как и существуют функции слассов, та же ClassName, которые не зависят от того, создан хотя бы один объект класса или нет. Попробуй посмотреть на этот счёт файл system.pas в исходниках Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 18:47 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32252335&tid=2117081]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 444ms |

| 0 / 0 |
