10 / 9 / 3
Регистрация: 09.02.2016
Сообщений: 260
1

Как правильно разделить функции модуля по разным файлам ?

05.09.2019, 16:07. Показов 900. Ответов 1
Метки нет (Все метки)

есть unit в котором описаны некоторые классы

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
unit unit1;
 
interface
 
uses unit2; // второй модуль в котором описаны вызываемые процедуры
 
type
 
tclass1=class(tobject)
 a:integer
...
end;
 
tclass2=class(tobject)
  class1:tclass1;
  procedure Go;
...
end;
 
implementation 
 
 procedure tclass2.Go;
begin
class1:=tclass1.create;
   unit2Go(cl:tclass1); // процедура из модуля Unit2 !!!
end;
Соответственно из tclass2 нужно вызывать те или иные процедуры которые оперируют с tclass1, на пример так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
unit unit2;
 
interface    
uses unit1; // если так написать то будет ошибка при компиляции
 
implementation
uses unit1; // указывать ссылку на вызывающий модуль здесь ?!
 
procedure unit2Go(cl:tclass1);
begin 
  cl.a:=0;
end;
этих процедур будет достаточно много поэтому и хочется их разделить по другим файлам (не unit1) (чтобы разгруппировать по функциональности)

Как правильно сделать это объявление ?

если в unit1 я добавлю в uses Имя нового модуля Unit2 без добавления в unit2 строки Unit1 - то получу ошибку что класс tclass1 - не описан (то есть unit2 работать с ним нельзя...)

как правильно в этом случае поступить ? включить unit1 в uses файла unit2 после идентификатора implementation ?
или есть какие то более правильные способы ?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2019, 16:07
Ответы с готовыми решениями:

Как правильно разделить программу на функции?
Как правильно разделить программу на функции? Подскажите, пожалуйста #include "pch.h"...

Как разнести исходной код по разным файлам
Допустим у меня есть java файл активити - очень большой много классов, функций. Как этот код...

Как сделать композицию классов разнесённых по разным файлам
На сколько реально сделать композицию классов разнесённых по файлам, при этом подъинклудить...

Как "разрубить" html и js по разным файлам?
Как "разрубить" html и js по разным файлам (в одной папке) чтобы все также работало. пытаюсь через...

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31261 / 20434 / 7967
Регистрация: 22.10.2011
Сообщений: 35,484
Записей в блоге: 6
05.09.2019, 17:00 2
В обоих случаях подключать твои модули в разделе Implementation, и в unit1, и в unit2.

А теперь подумай, что будет, если тебе понадобится (а тебе понадобится) вынести заголовки функций unit2 в раздел interface. Тогда у тебя однозначно будет circular unit reference. Показывай больше кода, сколько будет классов и что из подпрограмм второго модуля должно быть доступно извне.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2019, 17:00

Разнесение кода скрипта по разным файлам
В общем, собрал я скрипт кнопки обратного звонка, но вставить его в сайт на PrestaShop так просто...

Макрос поиска значений по разным файлам Excel
Есть такой макрос: Option Explicit Dim FSO As Object, iFolder As Object, iFile As Object, FD...

Разнесение методов обработчиков событий по разным файлам
Добрый вечер! Решила перенести довольно большое приложение с Visual С++ на .Net Windows...

Разнесение методов обработчиков событий по разным файлам
Доброго времени суток. Подскажите пожалуйста, как разнести обработчики событий для формы по разным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.