Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание модуля 
:(
    Опции темы
mr.Anderson
Дата 4.9.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Я написал простейший и никому не нужный модуль 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-файл. А как сделать его модулем?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Satana
Дата 4.9.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 564
Регистрация: 15.9.2004
Где: Ставрополь, СЗ ра йон

Репутация: 1
Всего: 5



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


--------------------
 Работай на себя 
www.abalentsev.com - Сайт портфолио.
www.pokushau.ru - Рецепты со всего мира.
PM MAIL WWW ICQ   Вверх
Payne
Дата 4.9.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: 4
Всего: 10



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.

Это потому, что у тебя модуль должен возвратить результат сложения, а если нужно возвратить результат, то лучше использовать функции.
PM MAIL WWW ICQ Skype   Вверх
mr.Anderson
Дата 5.9.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



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


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Quadr0
Дата 5.9.2005, 18:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 01:23
  Вверх
mr.Anderson
Дата 5.9.2005, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Код

uses
  Classes, SysUtils, Windows, Messages;

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


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
FRAGNATIC
Дата 5.9.2005, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



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

это для примера чтобы вывести месагебокс
а ты у себя мож подключать тока те модули что тебе нужны!
PM MAIL   Вверх
Quadr0
Дата 5.9.2005, 18:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 01:23
  Вверх
Payne
Дата 6.9.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: 4
Всего: 10



Ответ 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 в функции не нужно юзать - я ее просто по невнимательности оставил.
PM MAIL WWW ICQ Skype   Вверх
mr.Anderson
Дата 6.9.2005, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



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

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

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


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
FRAGNATIC
Дата 6.9.2005, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



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

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

in 'SomeCatalog\SomeUnit.pas',

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.