Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Обращение к классам   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.043 c
14-1108900192
Doxygen
2005-02-20 14:49
2005.03.13
Что такое PIM?


3-1107957778
TCoolBox
2005-02-09 17:02
2005.03.13
Параметры в SQL запросе не пашут


9-1103448218
Goldseeker
2004-12-19 12:23
2005.03.13
Классы?


6-1104859757
Lucifer
2005-01-04 20:29
2005.03.13
Создание LAN Chat a


14-1109060470
Чеширский_Кот
2005-02-22 11:21
2005.03.13
Разбирающимся в ноутбуках