Помощь - Поиск - Пользователи - Календарь
Полная версия: Динамическое компилирование
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Nikita
Кто нибудь! Пожалуйста, подскажите как сохранить приложение созданное динамически(в том числе и события), в exe формате.
Lapp
Выскажись поточнее.
Как ты его создаешь? Как программный текст? На каком языке?
И при чем тут события?.. Данные приложения - это есть данные, и пусть оно само о них заботится..
Nikita
В Delphi 7 на форме программно создаются компоненты(по клику). При создании нового компонента ему програмно создается событие OnMouseDown. Мне нужно сохранить exe-шник этого приложения со всеми созданными компонентами и событиями в другой папке.
hiv
Цитата(Nikita @ 20.12.2006 16:45) *
В Delphi 7 на форме программно создаются компоненты(по клику).
Думаю надо еще поподробней объяснить чего ты хочешь сделать... Кто кликает Кто вставляет. Что заначит "программно":
1) Ты сам кликаешь мышкой на VCL компонентах Delphi IDE
2) Твоя программа сама создает VCL объекты на своей форме в процессе выполнения
3) Твоя программа соединяется с Delphi IDE (допустим через OLE) и накидывает в новый проект VCL объекты.
Nikita
У формы есть событие mousedown. По этому событию создается компонент:
var
MyClass: TComponentClass;
MyComp: TComponent;
...
...
MyComp := MyClass.Create (self);
.....

При создании компонета ему автоматически присваивается ссылка на событи onmousedown (ссылка на память,).

Мне нужно сохранить новую полученную форму со всеми, созданными во время работы, компонентами(события не обязательно, т.к. присвоить их можно еще раз при formcreate) в новом exe-шнике, или хотя бы откомпилировать этот же exe-шник(опять программно, во время исполнения), чтобы сохранить все динамически созданные компоненты.
P.S. Пожалуйста, помогите по скорей, а то у меня 22.12 последняя возможность доделать прогу.
hiv
Цитата(Nikita @ 21.12.2006 15:48) *
Мне нужно сохранить новую полученную форму со всеми, созданными во время работы, компонентами(события не обязательно, т.к. присвоить их можно еще раз при formcreate) в новом exe-шнике, или хотя бы откомпилировать этот же exe-шник(опять программно, во время исполнения), чтобы сохранить все динамически созданные компоненты.
Если ты свои компоненты создаешь динамически, то чтобы в следующий раз они автоматически создавались - запиши их список в файл, а при старте программы читай этот файл и воссоздавай их. Файл можешь записывать туда - куда тебе надо, и туда же копируй exe-нник твоей проги (ничего компилировать не надо - прога таже). А вот читать прога этот файл должно только из текущего каталога.
Как ты описываешь постановку задачи - это самому писать IDE. blink.gif Сомневаюсь что За месяц успеешь сделать...
Nikita
Цитата(hiv @ 22.12.2006 16:33) *

Если ты свои компоненты создаешь динамически, то чтобы в следующий раз они автоматически создавались - запиши их список в файл, а при старте программы читай этот файл и воссоздавай их. Файл можешь записывать туда - куда тебе надо, и туда же копируй exe-нник твоей проги (ничего компилировать не надо - прога таже). А вот читать прога этот файл должно только из текущего каталога.
Как ты описываешь постановку задачи - это самому писать IDE. blink.gif Сомневаюсь что За месяц успеешь сделать...

Спасибо, конечно, за совет. Правда я уже справился с этой проблемой так как ты советуешь! Но все равно Thank's
hardcase
Велосипед вы изобрели, дорогой Nikita.
Все формы в дельфийских приложениях создаются из dfm-ресурса, хранящегося в exe-файле.

Твоя задача была создать корректный dfm-файл, а загрузить из него форму может сама RTL (внутри неё уже есть паресер).
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.