Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизОбращение к классам Найти похожие ветки
← →
webpauk (2005-02-25 12:31) [0]
unit 2
interface
uses
Windows,
Messages,
Unit 1;
type
Tclass2 = class
private
fClass1: TClass1;
public
constructor Create;
destructor Destroy; override;
end;
constructor Tclass2.Create;
begin
Fclass1:=Tclass1.Create;
fParent:=Self;
end;
{- - - - - - - - -- - - - - -- - -}
unit 1
interface
uses
Windows,
Messages;
type
Tclass1 = class
private
fParent: ?
public
constructor Create;
destructor Destroy; override;
end;
Как из Unit 1 обратиться Unit 2. К какому типу должен относиться Tclass1.fParent?
← →
Инструктор (2005-02-25 12:36) [1]> Как из Unit 1 обратиться Unit 2.
В интерфейсной части - никак. ТОлько в одном юните делать с форвардом.
>К какому типу должен относиться Tclass1.fParent?
Ты меня спрашиваешь? Видимо к любому. Или ты хочешь чтобы Tclass2? Тогда см. выше.
Но можно TObject, а в разделе реализации - приведение типов.
← →
Digitman © (2005-02-25 12:39) [2]
> К какому типу должен относиться Tclass1.fParent?
поскольку циркулярные ссылки в дан.случае разрешить не удастся, то как минимум - к TObject или Pointer
← →
Плохиш © (2005-02-25 12:41) [3]
>webpauk (25.02.05 12:31)
А классы в один модуль сложить религия не посволяет?
← →
webpauk (2005-02-25 12:46) [4]>Плохиш
неохота. Не кошерно это!
>Digitman
Tobject -да. Только как потом выйти на свойства класса? Tobject - неопределенный!!!
← →
webpauk (2005-02-25 12:52) [5]Точнее:
type
Tclass2 = class
private
fClass1: TClass1;
public
constructor Create;
destructor Destroy; override;
ID: Integer;
end;
Tclass1.fParent.ID ??
← →
Инструктор (2005-02-25 12:58) [6]> [4] webpauk (25.02.05 12:46)
Я для Бабая писал? Потрудись прочитать.
← →
webpauk (2005-02-25 13:04) [7]>Инструктор
в разделе реализации - приведение типов.???
Переведи.
Если можно - на данном примере.
← →
Digitman © (2005-02-25 13:08) [8]
> webpauk (25.02.05 12:46) [4]
> Только как потом выйти на свойства класса?
> Tobject - неопределенный!!!
про приведение типов что-нибудь слышал ?
> Не кошерно это!
еще как "кошерно".
гораздо "некошерней" городить тот огород, который ты сейчас городишь, разнося тесно связанные меж собой классы по разным юнитам .. хлопот потом не оберешься .. с приведением типов и прочим "огородом" ..
эдак и сам Борланд мог разнести кучу классов из того же Classes.pas по куче разношерстных модулей, однако ж объединил он таки их в единый модуль ! .. и ведь творцы из Борланда далеко-о-о не дураки, согласись ? .. с умом сделано это ..
← →
Инструктор (2005-02-25 13:08) [9]
unit 1
interface
uses
Windows,
Messages;
type
Tclass1 = class
private
fParent: TObject;
public
constructor Create;
destructor Destroy; override;
end;
implementation
uses Unit_2;
constructor Tclass1.Create;
begin
fParent := Tclass2.Create;
TClass2(fParent).
////
end;
Но лучше пожертвовать Кашерностью. Борланд жертвует и не жужжит.
← →
webpauk (2005-02-25 13:26) [10]Уговорили
← →
Плохиш © (2005-02-25 13:29) [11]
>Не кошерно это!
Мне интересно, это кто ж такое ему сказал? да ещё и так уверенно.
← →
webpauk (2005-02-25 13:39) [12]> Плохиш
Хотелось, чтобы модули были отдельно друг от друга (и если нужно, чтобы один модуль можно было подключать к проекту).
← →
webpauk (2005-02-25 13:45) [13]> Плохиш
Хотелось, чтобы модули были отдельно друг от друга (и если нужно, чтобы один модуль можно было подключать к проекту).
← →
Digitman © (2005-02-25 13:49) [14]
> webpauk (25.02.05 13:45) [13]
в пору буквари по Паскалю почитать
← →
webpauk (2005-02-25 13:52) [15]чё напали то на несчастного безграмотного человека.
← →
Плохиш © (2005-02-25 13:59) [16]Так ты этой своей безграмотностью кичишься?
← →
webpauk (2005-02-25 14:05) [17]>Плохиш
Я вопрос задал правильный (толкового решения как оказалось нет).
всё остальное - шутка.
← →
webpauk (2005-02-25 14:08) [18]Кстати, с Tobject и Pointer, я и раньше допер. Только как обратиться к (Value(TObject).ClassType as Tclass2).ID - я никак не смог
← →
Инструктор (2005-02-25 14:11) [19]
> (Value(TObject).ClassType as Tclass2).ID
Бррр. Давай сделаем вид что ничего не было и на сегодня - отдыхай. :)
Тебе дали решения - 2 штук. Удачи.
← →
webpauk (2005-02-25 14:11) [20]а Инструктор>"ТОлько в одном юните делать с форвардом." - этого добра и у самих навалом.
← →
webpauk (2005-02-25 14:13) [21]>Инструктор - Ok!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.033 c