Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 618
от 11.10.2006, 20:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 384, Экспертов: 78
В номере:Вопросов: 1, Ответов: 4


Вопрос № 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
Комментарий оценки:
Вот это уже ближе к телу вопроса.... Спасибо!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное