Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Вниз

Доступ к закрытым членам 


kaif   (2002-02-02 16:07) [0]

Был какой-то хакерский способ (типа породить псевдо-потомка объявленного класса) добраться до секции implementation другого модуля. Я все перерыл, но не могу найти, в какой-то книжке читал и даже пробовал, но забыл, как это делалось... И не помню, до чего можно было так добраться. Например, до внутренней переменной? А может, это deja view?



DMN   (2002-02-02 16:57) [1]

Так можно было добраться до protected свойств и методов класса. Например, у TControl есть защищенное свойство Color. Чтобы менять цвет у любого контрола, не задумываясь, TEdit это, TLabel или еще кто, описываем в своем юните:

type
THackedControl=class(TControl)
end;


Затем просто приводим того потомка TControl, цвет которого мы хотим поменять, к нашему типу:

THackedControl(Label1).Color := clRed;
THackedControl(Edit1).Color := clBlue;



Loxly   (2002-02-02 17:04) [2]

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



Serg001   (2002-02-02 17:07) [3]

>Loxly
Мне бы не помешала такая статейка.



kaif   (2002-02-02 17:16) [4]

Спасибо Loxly ©.
Я нашел статью в Мастерах ("Как вызвать private метод класса, находящегося в другом модуле", Андрей Руфин).
Теперь я могу принять решение - лучше этого не делать.
Спасибо DMN
Пожалуй лучше ограничится этим методом (доступ только к защищенным членам). Тут, по крайней мере нет явного криминала, который не был бы заметен компилятору.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.013 c
3-56985           derr                  2002-01-04 12:33  2002.02.18  
Как сосдать DBF таблицуказав для поля кол-во знаков после


14-57217          Merlin                2001-12-26 11:29  2002.02.18  
Хороший программист характеризуется умением доказать почему задачу невозможно выполнить, когда ему просто лень её выполнять...


3-57009           Fran                  2002-01-24 09:59  2002.02.18  
Как в RXDBGrid текущию строку сделать с другим Font или цветом?


1-57053           Vitek                 2002-02-01 13:53  2002.02.18  
Шрифты


6-57161           Lana                  2001-11-27 02:34  2002.02.18  
Треб. совет!