Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Динамическое компилирование

Автор: Nikita 20.12.2006 1:47

Кто нибудь! Пожалуйста, подскажите как сохранить приложение созданное динамически(в том числе и события), в exe формате.

Автор: Lapp 20.12.2006 9:59

Выскажись поточнее.
Как ты его создаешь? Как программный текст? На каком языке?
И при чем тут события?.. Данные приложения - это есть данные, и пусть оно само о них заботится..

Автор: Nikita 20.12.2006 20:45

В Delphi 7 на форме программно создаются компоненты(по клику). При создании нового компонента ему програмно создается событие OnMouseDown. Мне нужно сохранить exe-шник этого приложения со всеми созданными компонентами и событиями в другой папке.

Автор: hiv 21.12.2006 14:43

Цитата(Nikita @ 20.12.2006 16:45) *
В Delphi 7 на форме программно создаются компоненты(по клику).
Думаю надо еще поподробней объяснить чего ты хочешь сделать... Кто кликает Кто вставляет. Что заначит "программно":
1) Ты сам кликаешь мышкой на VCL компонентах Delphi IDE
2) Твоя программа сама создает VCL объекты на своей форме в процессе выполнения
3) Твоя программа соединяется с Delphi IDE (допустим через OLE) и накидывает в новый проект VCL объекты.

Автор: Nikita 21.12.2006 19:48

У формы есть событие mousedown. По этому событию создается компонент:
var
MyClass: TComponentClass;
MyComp: TComponent;
...
...
MyComp := MyClass.Create (self);
.....

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

Мне нужно сохранить новую полученную форму со всеми, созданными во время работы, компонентами(события не обязательно, т.к. присвоить их можно еще раз при formcreate) в новом exe-шнике, или хотя бы откомпилировать этот же exe-шник(опять программно, во время исполнения), чтобы сохранить все динамически созданные компоненты.
P.S. Пожалуйста, помогите по скорей, а то у меня 22.12 последняя возможность доделать прогу.

Автор: hiv 22.12.2006 20:33

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

Автор: Nikita 22.12.2006 20:40

Цитата(hiv @ 22.12.2006 16:33) *

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

Спасибо, конечно, за совет. Правда я уже справился с этой проблемой так как ты советуешь! Но все равно Thank's

Автор: hardcase 6.01.2007 0:59

Велосипед вы изобрели, дорогой Nikita.
Все формы в дельфийских приложениях создаются из dfm-ресурса, хранящегося в exe-файле.

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