Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Создание модуля


Автор: mr.Anderson 4.9.2005, 18:52
Я написал простейший и никому не нужный модуль smile :
Код

unit Modul1;

INTERFACE
 Procedure Summa(a,b: Real);

IMPLEMENTATION
 Procedure Summa(a,b: Real);
 Var c: Real;
 Begin
  c:=a+b;
 End;

END.

А как теперь его превратить в модуль? Delphi сохраняет его как *.pas-файл. А как сделать его модулем?

Автор: Satana 4.9.2005, 20:21
ну можешь его так и оставить будет модуль с исходниками а если тебе dcu нада то создай какое нить (пусть даже и пустое) приложение и присоедини его (модуль) к нему (приложению) и откомпилируй в результате в етой папке (с приложением) у тебя появиться новый файл вида - твой_файл.dcu

Автор: Payne 4.9.2005, 20:29
sim7, просто сохраняешь его как pas-файл (ведь это и есть по сути модуль), и в разделе uses своего проекта указываешь Modul1 или Modul1 in '...путь...'. После чего можешь смело употреблять в новой проге инструкцию типа c := Modul1.Summa (a, b);
Насчет этого модуля - лучше здесь юзать не процедуру, а функцию. Вот так:

Код

UNIT Modul1;

{$APPTYPE CONSOLE}

INTERFACE
 function Summa (a, b: real): real;

IMPLEMENTATION
 function Summa( a, b: real): real;
 Var c: Real;
 Begin
  summa := a + b;
 End;

END.

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

Автор: mr.Anderson 5.9.2005, 17:46
Вопрос 1: но ведь стандартные модули Delphi в расширении *.dcu! Как сделать dcu-файл, кроме способа, предложенного выше?
Вопрос 2: Почему использовать функцию надо как Modul1.Summa(a,b)? В стандартных модулях вызов производится без указания модуля...

Автор: Quadr0 5.9.2005, 18:05
...

Автор: mr.Anderson 5.9.2005, 18:22
Код

uses
  Classes, SysUtils, Windows, Messages;

Это еще нафига?! У меня ж не системный модуль, а консольный! Пока что...

Автор: FRAGNATIC 5.9.2005, 18:24
Цитата
Это еще нафига?! У меня ж не системный модуль, а консольный! Пока что...

это для примера чтобы вывести месагебокс
а ты у себя мож подключать тока те модули что тебе нужны!

Автор: Quadr0 5.9.2005, 18:34
...

Автор: Payne 6.9.2005, 12:30
Ответ 1:
зачем .dcu? У тебя в этом есть практическая необходимость или просто ради интереса? Все-таки как твой модуль начинается - Unit Modul1; Следовательно это и есть модуль. К тому же, если в разделе uses ты укажешь несуществующий модуль, то компилятор выдаст сообщение вида 'File not found: 'c:\program files\borland\delphi7\Rave5\Lib\modul.pas'. Какая тебе разница, какое расширение у используемого тобой модуля?

Ответ 2:
я говорю выражение типа Modul1.Summa(a,b), а вообще можно и просто писать Summa(a,b). Здесь уже как тебе угодно smile , просто в первом случае будет видно, что функция из модуля Modul1.

З.Ы. Кстати, строку var c: real в функции не нужно юзать - я ее просто по невнимательности оставил.

Автор: mr.Anderson 6.9.2005, 17:06
Все понял, и последний вопрос по модулям: как подключить модуль, находящийся в другом каталоге? Что писать после USES? Вот так, что ли?
Код

USES 'C:\Program Files\Delphi7\MyModul1.pas';

Так? Или по-другому?

Автор: FRAGNATIC 6.9.2005, 17:48
Цитата
Так? Или по-другому?

можно так
если он в подкоталоге тойже папки где и софтина то можно так
Код

in 'SomeCatalog\SomeUnit.pas',

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)