Главная страница
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.041 c
1-1109521083
randomize
2005-02-27 19:18
2005.03.13
RSA - В Delphi


14-1108810929
Ilya___
2005-02-19 14:02
2005.03.13
все надписи на кнопках(кириллицей) становяться такими ????????(то


14-1109142688
Cobalt
2005-02-23 10:11
2005.03.13
Программа для отображения места на диске


1-1109319824
antoxa
2005-02-25 11:23
2005.03.13
Подскажите, какой компонент лучше использовать для тображания таб


1-1109491767
tazik
2005-02-27 11:09
2005.03.13
Кто может, подкиньте, пожалуйста, DirectShow.dcu!