![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обращение к классам [D6, WinXP]
webpauk © (2005-02-25 12:31:00)
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?
webpauk (2005-02-25 14:13:00) [1]>Инструктор - Ok!
webpauk (2005-02-25 14:11:00) [2]а Инструктор>"ТОлько в одном юните делать с форвардом." - этого добра и у самих навалом.
Инструктор (2005-02-25 14:11:00) [3]
> (Value(TObject).ClassType as Tclass2).ID
Бррр. Давай сделаем вид что ничего не было и на сегодня - отдыхай. :)
Тебе дали решения - 2 штук. Удачи.
webpauk (2005-02-25 14:08:00) [4]Кстати, с Tobject и Pointer, я и раньше допер. Только как обратиться к (Value(TObject).ClassType as Tclass2).ID - я никак не смог
webpauk (2005-02-25 14:05:00) [5]>Плохиш
Я вопрос задал правильный (толкового решения как оказалось нет).
всё остальное - шутка.
Плохиш (2005-02-25 13:59:00) [6]Так ты этой своей безграмотностью кичишься?
webpauk (2005-02-25 13:52:00) [7]чё напали то на несчастного безграмотного человека.
Digitman (2005-02-25 13:49:00) [8]
> webpauk (25.02.05 13:45) [13]
в пору буквари по Паскалю почитать
webpauk (2005-02-25 13:45:00) [9]> Плохиш
Хотелось, чтобы модули были отдельно друг от друга (и если нужно, чтобы один модуль можно было подключать к проекту).
webpauk (2005-02-25 13:39:00) [10]> Плохиш
Хотелось, чтобы модули были отдельно друг от друга (и если нужно, чтобы один модуль можно было подключать к проекту).
Плохиш (2005-02-25 13:29:00) [11]
>Не кошерно это !
Мне интересно, это кто ж такое ему сказал? да ещё и так уверенно.
webpauk (2005-02-25 13:26:00) [12]Уговорили
Инструктор (2005-02-25 13:08:00) [13]
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;
Но лучше пожертвовать Кашерностью. Борланд жертвует и не жужжит.
Digitman (2005-02-25 13:08:00) [14]
> webpauk (25.02.05 12:46) [4]
> Только как потом выйти на свойства класса?
> Tobject - неопределенный!!!
про приведение типов что-нибудь слышал ?
> Не кошерно это!
еще как "кошерно".
гораздо "некошерней" городить тот огород, который ты сейчас городишь, разнося тесно связанные меж собой классы по разным юнитам .. хлопот потом не оберешься .. с приведением типов и прочим "огородом" ..
эдак и сам Борланд мог разнести кучу классов из того же Classes.pas по куче разношерстных модулей, однако ж объединил он таки их в единый модуль ! .. и ведь творцы из Борланда далеко-о-о не дураки, согласись ? .. с умом сделано это ..
webpauk (2005-02-25 13:04:00) [15]>Инструктор
в разделе реализации - приведение типов.???
Переведи.
Если можно - на данном примере.
Инструктор (2005-02-25 12:58:00) [16]> [4] webpauk (25.02.05 12:46)
Я для Бабая писал? Потрудись прочитать.
webpauk (2005-02-25 12:52:00) [17]Точнее:
type
Tclass2 = class
private
fClass1: TClass1;
public
constructor Create;
destructor Destroy; override;
ID: Integer;
end;
Tclass1.fParent.ID ??
webpauk (2005-02-25 12:46:00) [18]>Плохиш
неохота. Не кошерно это!
>Digitman
Tobject -да. Только как потом выйти на свойства класса? Tobject - неопределенный!!!
Плохиш (2005-02-25 12:41:00) [19]
>webpauk (25.02.05 12:31)
А классы в один модуль сложить религия не посволяет?
Digitman (2005-02-25 12:39:00) [20]
> К какому типу должен относиться Tclass1.fParent?
поскольку циркулярные ссылки в дан.случае разрешить не удастся, то как минимум - к TObject или Pointer