Сохранение и загрузка конструктора форм

61
7

Я сделал простой конструктор форм в delphi, перетащил кнопку на форму и нарисовал ее, но дело в том, что я не могу сохранить/загрузить этот проект, так как я не знаю, как это сделать, так или иначе, я мог бы быть abel сохранить его в .rc файл и загрузить его оттуда?

спросил(а) 2010-09-20T07:43:00+04:00 9 лет, 5 месяцев назад
1
Решение
58

VCL содержит методы для использования встроенной поддержки DFM. Существует образец в документации Delphi 2009 для ObjectBinaryToText; Я думаю, это работает и для D7. И IIRC там уже был фрагмент кода для ComponentToString в справке D5 - поиск ObjectBinaryToText.

ответил(а) 2010-09-20T10:01:00+04:00 9 лет, 5 месяцев назад
70

Это зависит от того, как вы запрограммировали свой конструктор форм. В формах, созданных в дизайнере Delphi, все компоненты (и подкомпоненты) ссылаются на свойство массива TForm.Components. Все элементы управления также ссылаются на свойство массива TForm.Controls(если вы удалите элемент управления контейнера, все его субконтроллеры также будут уничтожены).

Если вы следовали этому шаблону, все, что вам нужно сделать, это следить за добавлениями к массиву TForm.Components(возможно, используя переопределенный метод TForm.Notification) и использовать эти данные для создания файла постоянной формы.

ответил(а) 2010-09-20T19:56:00+04:00 9 лет, 5 месяцев назад
48

Вы можете использовать что-то вроде delphi.DFM. Подсчитайте все объекты, а затем прочитайте их атрибуты и запишите их в файл. Пример кода:


For i:0 To Form1.ComponentsCount-1 Do Begin
// Read Component Attributes And Write Them In Your Format
End;

ответил(а) 2010-09-25T17:16:00+04:00 9 лет, 4 месяца назад
49

Delphi хранит макет формы в файле *.dfm. Вы можете использовать его для сохранения ваших проектов. Файл является текстовым и читаемым человеком. Нетрудно разобрать файл, подобный тому, который излучает одну строку. Если вам нужна дополнительная помощь, попросите его.

ответил(а) 2010-09-20T09:08:00+04:00 9 лет, 5 месяцев назад
35

Если вы просто хотите сохранить форму, которую вы создали в своем дизайнере, используйте что-то вроде TFileStream для создания файла RC, когда пользователь сохраняет. Возможно, вам будет лучше с вашим собственным файловым форматом для ваших форм, с возможностью экспорта в виде RC файла, поскольку AR файлы arent действительно предназначены для хранения любой информации о времени разработки, которая вам может понадобиться.

ответил(а) 2010-09-20T09:29:00+04:00 9 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема