2015-11-23 4 views
1

Я работаю через устаревший код с более чем 500 формами в нескольких каталогах. Мне нужно найти любой TDataset desgenent с тег свойство не установлено.Есть ли способ загрузить форму программно из dfm

Если бы я искал значение Тега, установленное на значение somepart, это было бы в dfm, и я мог бы его искать. В этом случае свойство Tag будет отсутствовать в dfm.

Мой лучший poroposal пока что должен написать другую программу, которая загружает все формы по одному. В загруженном событии он может проверять компоненты и свойство. Слишком много работы, чтобы добавить их все вручную в проект, исправить предложение uses и создать каждый по типу. Даже если бы я это сделал, нет способа гарантировать, что я не пропустил форму. Также некоторые формы имеют то же имя, что и другие (они находятся в разных папках и являются эксклюзивными).

Вопрос

Я хотел бы, чтобы сканировать папки для файлов DFM и загружать формы только из файла DFM. Это даже разумно или возможно? Если да, то как я могу программно загрузить/создать форму только из dfm?

+0

Зачем вам нужно создавать формы. Просто проанализируйте файлы dfm. В этом случае язык сценариев пригодится. –

+1

Дэвид, я думал о регулярном выражении и отбросил его. У меня не было скриптов. Есть еще несколько проблем с этим. 1) Там много подклассов TDataset. Я должен найти все их имена, которые подвержены ошибкам. 2) У dfm есть вложенные объекты, мне нужно искать отсутствующее свойство Tag в потомке TDataset. Итак, да в теории это возможно. И если все остальное не удастся, мне, возможно, придется это сделать. –

+0

Приходится ли добавлять все формы в приложение в список автоматического создания, а затем перечислять их через Application.Components? – Abelisto

ответ

1

Я хотел бы сканировать папки для файлов dfm и загружать формы только из файла dfm. Это даже разумно или возможно?

Нет, это невозможно. Вы не можете создать экземпляр формы без класса, который определяет форму. Недостаточно файла dfm.

+0

Я нашел этот пост. Хотя это не совсем то, что я хотел. Это дало мне идею, что я могу разобрать dfm и загрузить компонент в пустой форме. Мне нужно только создать корневые компоненты, и я могу отбросить панели и кнопки и т. Д. Http://stackoverflow.com/questions/19989389/can-we-load-a-dfm-file-for-a-form-at-runtime –

Смежные вопросы