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

Вниз

Помогите открыть свойство в классе?   Найти похожие ветки 

 
MainClass   (2007-07-28 07:31) [0]

Есть чужой класс:
TMainClassZ = class
 private
 FDatabaseZ: TDatabaseZ;
 ..
end;


Я хочу создать дочерний класс, чтобы у него в public было вписано:
 property DatabaseZ: TDatabaseZ read FDatabaseZ;
чтобы его можно было читать. Но непойму как это сделать ПРОСТО.
Чтобы не перечислять всё и вся из основного класса. Или так нельзя?
Или может есть какая горячая клавиша, чтобы это сделалось автоматически?


 
ya00011   (2007-07-28 07:34) [1]

Не изменяя чужой класс, можно только через жопу, прошу прощения:)

ЗЫ... кстати, нужна ли запятая в первом случае? (в моем предложении)


 
MainClass   (2007-07-28 07:54) [2]


> ya00011   (28.07.07 07:34) [1]
> Не изменяя чужой класс, можно только через жопу, прошу прощения:
> )

Это ты так называешь создание дочерних классов?


 
Юрий Зотов ©   (2007-07-28 11:59) [3]

> MainClass   (28.07.07 07:31)

Если в предке доступ к полю вынесен хотя бы в protected, то спокойно наследуемся и в наследнике выносим доступ в public.

Если же нет, то придется вписать свой класс-потомок в тот же модуль, где находится класс-предок.


 
P_   (2007-07-28 18:45) [4]


> Юрий Зотов ©   (28.07.07 11:59) [3]
>
> > MainClass   (28.07.07 07:31)
>
> Если в предке доступ к полю вынесен хотя бы в protected,
>  то спокойно наследуемся и в наследнике выносим доступ в
> public.
>
> Если же нет, то придется вписать свой класс-потомок в тот
> же модуль, где находится класс-предок.


В принципе очень плохой тон объявлять private переменные.


 
Yanis ©   (2007-07-28 18:50) [5]


> В принципе очень плохой тон объявлять private переменные.

А какими их надо объявлять?


 
P_   (2007-07-28 20:45) [6]


> Yanis ©   (28.07.07 18:50) [5]
>
> > В принципе очень плохой тон объявлять private переменные.
>
> А какими их надо объявлять?


protected

Программист не может учесть того что когда-то понадобится к переменной получить прямой доступ.


 
Yanis ©   (2007-07-28 21:01) [7]


>
> Программист не может учесть того что когда-то понадобится
> к переменной получить прямой доступ.

Хм… Верно конечно. А я предполагал, что просто надо давать методы дающие доступ к этим переменным.


 
Юрий Зотов ©   (2007-07-29 01:30) [8]

> P_   (28.07.07 20:45) [6]

Смотря какой программист и смотря какая переменная.


 
MainClass   (2007-07-29 07:43) [9]


> Юрий Зотов ©   (28.07.07 11:59) [3]
>
> > MainClass   (28.07.07 07:31)
>
> Если в предке доступ к полю вынесен хотя бы в protected,
>  то спокойно наследуемся и в наследнике выносим доступ в
> public.
>
> Если же нет, то придется вписать свой класс-потомок в тот
> же модуль, где находится класс-предок.


А можно как нибудь без вписывания? Очень не хочется там что-то менять.


 
ya00011   (2007-07-29 07:51) [10]


> MainClass   (29.07.07 07:43) [9]

Конечно можно... Вычислить смещение адреса этой переменной относительно адреса объекта. Пусть смещение будет offset, тогда:

obj:TMainClassZ;
DatabaseZ: TDatabaseZ;
...
DatabaseZ:=TDatabaseZ(Integer(obj)+offset);

Вычислить смещение можно эксперементальным путем, дебагером и умных людей послушать. Я сам этого не делал никогда:)


 
Kolan ©   (2007-07-29 08:27) [11]

> А какими их надо объявлять?


> protected

А я объявляю их strict private и чувствую себя хорошо.


 
Юрий Зотов ©   (2007-07-29 11:14) [12]

> MainClass   (29.07.07 07:43) [9]

> А можно как нибудь без вписывания?
Легальным способом - нельзя. Нелегальным - см. [10]. Но не советую.

> Очень не хочется там что-то менять.
Менять ничего и не надо. Добавляется свой класс - и все.  Оригинальный же код не меняется ни на символ.


 
имя   (2007-08-20 22:33) [13]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
4-1164557096
dreamse
2006-11-26 19:04
2007.09.16
Как можно поместить свою надпись поверх чужого окна ?


3-1179292836
Цукор5
2007-05-16 09:20
2007.09.16
DBF потоках + "упаковка"


15-1187676722
AZIZE
2007-08-21 10:12
2007.09.16
И что из этого выйдет


2-1187699724
Ricks
2007-08-21 16:35
2007.09.16
Отловить события для стандартных кнопок окна


2-1187783503
Bast
2007-08-22 15:51
2007.09.16
Файл