Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.035 c
3-1107902461
TechnoDreamer
2005-02-09 01:41
2005.03.13
Порядок записей в TADODataSet


3-1107975358
_Oleg1
2005-02-09 21:55
2005.03.13
Доступ к Oracle


11-1092757042
ecm
2004-08-17 19:37
2005.03.13
2Kladov : Bug Fix OnIdle?


6-1105227027
Raider
2005-01-09 02:30
2005.03.13
Поиск сервера


1-1109494266
Guitar
2005-02-27 11:51
2005.03.13
Цифровая фильтрация сглаживание в примерах Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский