Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
ВнизПомоготе разобраться в иерархии. Найти похожие ветки
← →
sashas (2003-04-16 12:29) [0]В Delphi есть компонент TPaintBox. Он наследник TGraphicObject, в котором определен TCanvas. Но он является чем то вроде protected и к нему нельзя обратиться из программы, а в TPaintBox можно (он опубликован). Почему так?
Я хочу работать со всеми наследниками TGraphicObject (рисовать на нем)
← →
MBo (2003-04-16 12:37) [1]у TGraphicControl Canvas protected, чтобы можно было ПРИ НЕОБХОДИМОСТИ в наследниках объявить это свойство как public.
Т.е. делая свой компонент, производный от TGraphicControl,
просто пишешь
...
public
Canvas:TCanvas;
...
← →
Skier (2003-04-16 12:42) [2]>sashas
Можно ещё сделать так :
type
THackGraphicObject = class(TGraphicObject);
var
AGraphicObject : TGraphicObject;
begin
//.............
THackGraphicObject(AGraphicObject).Canvas.
//.............
end;
← →
Mike_Goblin (2003-04-16 13:13) [3]>Но он является чем то вроде protected и к нему нельзя >обратиться из программы, а в TPaintBox можно (он опубликован). >Почему так?
Потому что, в Object Pascal нельзя понижать видимость членов класса, т.е объявив Canvas в секции public TGraphicControl ты даешь public доступ к этому свойству во всех наследниках, что не есть очень хорошо
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c