Форум: "Основная";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];
ВнизОрганизация взаимодействия классов Найти похожие ветки
← →
Квэнди © (2008-08-20 17:29) [0]Есть первый класс:
unit Unit20;
interface
uses classes,unit21;
type
class1=class(TObject)
pole1:class2;
str:string;
constructor create;
end;
implementation
constructor class1.create;
begin
pole1:=class2.create(self);
end;
end.
есть соответственно реализация второго класса:
unit Unit21;
interface
uses classes;
type
class2=class(TObject)
public
parent:TObject;
function shs:string;
constructor create (sender:TObject);
end;
implementation
constructor class2.create(sender: TObject);
begin
parent:=sender;
end;
function class2.shs;
begin
result:=(parent as class1).str;
end;
end.
Ну собственно логично что код работать не будет, вопрос вот в чем как организовать корректно:
Есть класс, поля которого в основном являются объектами других классов (описанных в других модулях), соответственно мы должны в uses подключить все модули, в которых описаны те классы
Но каждый из тех классов должен использовать некую переменную основного класса для своей работы. Как это правильней организовать ? в каждом из классов добавлять в implementation в uses модуль, где описан первый класс ? или есть более правильный метод ?
← →
Medbe}I{onok XML © (2008-08-20 17:43) [1]Все уже украдено до нас
pole1:=class2.create(self);
← →
Medbe}I{onok XML © (2008-08-20 17:45) [2]Либо передавать то нужное значение в конструктор если не хочешь обратной ссылки в юзезе класс2
← →
Квэнди © (2008-08-20 17:47) [3]Все уже украдено до нас
pole1:=class2.create(self);
но в любом случае разве тогда доступ из class2 будет к полям class1 ?
← →
Medbe}I{onok XML © (2008-08-21 09:27) [4]а почему нет?
← →
palva © (2008-08-21 09:43) [5]Вопрос, как я понял, о циклических ссылках юнитов ?
← →
Квэнди © (2008-08-21 12:31) [6]
> Вопрос, как я понял, о циклических ссылках юнитов ?
Да, именно. Сейчас решил проблему так: создал класс, в котором в свойствах будут храниться все данные, необходимые для общего доступа и от этого наследую все остальные классы. Таким образом проблема циклических ссылок решилась. Это корректный способ ?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c