Вопрос № 57953: Думаю вы мне поможете.
Так вот, начал я писать программку на delphi и решил прикрепить к ней DLL-ку (т.к. будет очень много повторяющихся процедур, а размещать их в exe-шнике не хочеться). Мои процедуры будут работать с компонентами на форме - д...
Вопрос № 57.953
Думаю вы мне поможете.
Так вот, начал я писать программку на delphi и решил прикрепить к ней DLL-ку (т.к. будет очень много повторяющихся процедур, а размещать их в exe-шнике не хочеться). Мои процедуры будут работать с компонентами на форме - допустим a:= StrToInt(edit1.text) + StrToInt(edit2.text); label1.caption:=IntToStr(a);
но у меня нечего не получаеться.... общие принцыпы создания и вызова библиотеки я знаю..... но похоже что не всё. Помогите мне пожайлусто!
Отправлен: 06.10.2006, 19:45
Вопрос задал: Djoin (статус: 3-ий класс)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: h2d [PX team]
даров, Djoin!
нипайму зачем тибе dll для простого сложения чисел. ведь на это потребуецца гораздо больше
памяти пк, чем если бы ты делал данные операции не в dll.
и задай вопрос конкретно что именно у тебя не работает.
dll:
function sum(const a,b:integer):integer;
begin
result:=a+b;
end;
...
exports sum index 1 name 'sum';
...
а в модуле основной программы пишешь
var
mainform: Tmainform;
function sum(const a,b:integer);external 'wmleditor.dll';
--------- Прав всегда Админ, ибо в трех лицах есть он единая власть высшая в классе дисплейном!
Ответ отправил: h2d [PX team] (статус: 2-ой класс)
Ответ отправлен: 07.10.2006, 05:08 Оценка за ответ: 2 Комментарий оценки: я же писал :"... с компонентами на форме - допустим a:= StrToInt(edit1.text) + StrToInt(edit2.text); label1.caption:=IntToStr(a); ..."
Отвечает: Хлызов Алексей
Здравствуйте, Djoin!
Я так думаю, что проблема в третьей фазе луны...
Вы не пробовали подумать о том, что у всех телепатов отпуск? Код где? Описание ошибки где?
Ответ отправил: Хлызов Алексей (статус: 1-ый класс)
Ответ отправлен: 07.10.2006, 05:56
Отвечает: sir henry
Здравствуйте, Djoin!
Ваша самая большая ошибка в том, что Вы не поняли, для чего нужны DLL-ки. DLL-ки нужны только тогда, когда несколько программ на одном компьютере пользуются одними и теми же функциями. Если же этими функциями будет пользоваться только Ваша программа, то просто сделайте отдельный Unit и пропишите все необходимые Вам общие функции. Общие - это когда выполняемые функцией действия не относятся к какому-либо компоненту конкретно, а в нее передаются только какие-либо данные из этого компонента.
А вот оформлять подобный код:
a:= StrToInt(edit1.text) + StrToInt(edit2.text); label1.caption:=IntToStr(a);
в виде отдельной функции - полная бессмыслица. Сами подумайте. :)
Далее. "...а размещать их в exe-шнике не хочеться". Вне зависимости от того что Вам не хочется, при вызове функции из DLL-ки, она будет вся полностью загружена в память, т.е. никакой абсолютно выгоды в размере программы в памяти Вы не получите.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 07.10.2006, 11:16 Оценка за ответ: 4 Комментарий оценки: Спасибо! образумили.
Отвечает: Andronik
Здравствуйте, Djoin!
На тот случай, если решишься не последовать совету экспертов и забабахать все-таки код в dll, необходимо будет в этот же dll запихать и саму форму - тогда все должно работать. Как запихать - это уже отдельный разговор
--------- Запрограммировать можно все... кроме собственного поведения
Ответ отправил: Andronik (статус: 1-ый класс)
Ответ отправлен: 07.10.2006, 23:32 Оценка за ответ: 4 Комментарий оценки: Вот это уже ближе к телу вопроса.... Спасибо!