ПредишенСледващото

В някои компоненти VCL скрие свойства или методи на родителите си: очевидно, разработчиците смятат, че би било по-добре. Най-простият пример на DBGrid - не можем да променим терена на една колона програмно, а понякога наистина искате. Нека да погледнем на компонент йерархията (фиг. 1.5). Както можете да видите, сред родителите имат TCustomGrid (нето на масата, от която всичко се), и има RowHeights собственост, позволявайки ви да промените височината на всеки ред. Потомците на този имот е затворена, но тя остава.

Как да получите достъп до имота, ако той е затворен? Много просто. Необходимо е да се донесе на компонента за основната форма:

В този пример, ние се промени височината на първия компонент ред DBGrid. Фиг. 1.6 показва изхода на кода, както и CD-ROM, можете да намерите на проект, който използва проста техника.

Има моменти, когато трябва да получат достъп до закрити (частни или защитени) свойства или методи на компонента. Идеята е да се затвори неща, които не могат да имат достъп, но това е само една идея, която на практика е лесно напукани

Източник код примери, обсъждани тук е върху CD-ROM в Източници на директориите \ К01 \ HackGrid.

хакерски компоненти

Фиг. 1.5. DBGrid йерархия компонент

хакерски компоненти

Фиг. 1.6. Пример височина увеличаване отделен ред в DBGrid

Всичко, което е в защитената част може да се използва без проблеми, само с няколко манипулации. Например, бутон TButton е защитен метод Sgea-teWnd. Ако се опитате да го наречем направо, възниква грешка се опита да се справи този клас.

Създаване на нов проект и го поставете върху бутона форма вече е в типа на разрез на модула след описанието на класа на формата, за да добавите описание TMyButton клас, който ще е потомък на TButton:

Не свойства и методи на този клас не се нуждаят. Сега, на частния метод могат да бъдат достъпни от написването на следния ред:

И така, чрез приятелски клас, ние имаме достъп до частен метод и може да спаси много време копиране необходимия код, който току-що бе затворен.

разработчиците на Borland е затворена методи са не само. Ако нещо е затворена, това означава, че използването на други класове нежелателно или дори опасно. Ето защо, за да се използва този метод трябва да се провери много внимателно и задълбочено след използване на примера на работа.

Източник код примери, обсъждани тук е върху CD-ROM в източниците директория \ Чо л \ HackButton.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!