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

Вниз

Потомок TStringGrid   Найти похожие ветки 

 
BOA_KAA ©   (2004-04-08 14:09) [0]

Здравствуйте!

Возникла такая проблема. Пишу потомка TStringGrid понадобилось мне отслеживать в нем событие изменения числа строк и столбцов.

В надежде, что можно переписать метод предка, в котором это делается полез в Grids. Добрался до метода ChangeSize в TCustomGrid, который описан в разделе private :((((((((

Вопрос, естественно, прост: как все-таки отследить изменение числа строк и столбцов в моем потомке? Спасибо!


 
Семен Сорокин ©   (2004-04-08 14:19) [1]

Добавь в protected.
procedure SizeChanged(OldColCount, OldRowCount: Longint); override;


 
BOA_KAA ©   (2004-04-08 14:29) [2]

Это VCL переписывать. Стремно :)

А если пойти друим путем, что-то вроде

TMyGrig = class(TCustomControl)
private
 FGrid: TStringGrid;
public
...

published
...
end;

Далее создать с конструкторе грид и открыть доступ к тем свойствам, которые хочешь видеть. Как насчет такого?


 
Семен Сорокин ©   (2004-04-08 14:33) [3]

BOA_KAA ©   (08.04.04 14:29) [2]
Это VCL переписывать. Стремно :)


я не понял, зачем переписывать VCL
этот метод вызывается в TCustomGrid - посмотри в Grids.pas
тебе просто перекрыть его надо:

TMyGrig = class(TStringGrid)
protected
...
procedure SizeChanged(OldColCount, OldRowCount: Longint); override;

published
...
end;


:)


 
BOA_KAA ©   (2004-04-08 14:41) [4]

Бррр... Чего-то я торможу...

Насколько я помню, к private-методам может иметь доступ только потомок, который находится в одном юните с предком. Так или я чего-то путаю?


 
Семен Сорокин ©   (2004-04-08 14:44) [5]

BOA_KAA ©   (08.04.04 14:41) [4]
верно
так SizeChanged вроде (D7) объявлено в protected-секции TCustomGrid.


 
Алхимик ©   (2004-04-08 14:44) [6]


> к private-методам может иметь доступ только потомок, который
>

повысил область видимости этих методов.
Житие в одном модуле с предком не при чем.


 
BOA_KAA ©   (2004-04-08 14:44) [7]

Не, воистину торможу! Сказывается долгая бессонница :(
Спасибо!


 
Семен Сорокин ©   (2004-04-08 14:47) [8]

Алхимик ©   (08.04.04 14:44) [6]
повысил область видимости этих методов.
Житие в одном модуле с предком не при чем.


что-то не понял, можно подробнее?


 
BOA_KAA ©   (2004-04-08 14:53) [9]

Кстати, насчет BOA_KAA ©   (08.04.04 14:29) [2]

Мне надо ограничить доступ к некоторым published-свойствам. Например, убрать FixedCols и FixedRows. Наколько оправдан такой подход?


 
BOA_KAA ©   (2004-04-08 14:55) [10]

> Алхимик ©   (08.04.04 14:44) [6]

Видимо, не я один сегодня в тормозах... :) Не в обиду ;)


 
Семен Сорокин ©   (2004-04-08 14:58) [11]

BOA_KAA ©   (08.04.04 14:53) [9]
имхо не оправдан вообще, трудно будет вытащить остальные св-ва, а понизить видимость можно так:

type
 TMyGrig = class(TStringGrid)
 protected
   property FixedCols;
   property FixedRows;
 end;


 
BOA_KAA ©   (2004-04-08 15:01) [12]

Что-то я совсем не понимаю. Разве область видимости можно понизить???


 
MBo ©   (2004-04-08 15:02) [13]

> [11]
Проверял?


 
Семен Сорокин ©   (2004-04-08 15:06) [14]

Семен Сорокин ©   (08.04.04 14:58) [11]
:) сорри неправ, да с пнижением беда, совсем про это забыл.


 
Семен Сорокин ©   (2004-04-08 15:14) [15]

как вариант тогда наследоваться от TCustomDrawGrid и открывать доступ только тем св-вам которым нужно.


 
BOA_KAA ©   (2004-04-08 15:18) [16]

> Семен Сорокин ©   (08.04.04 15:14) [15]

Да, но тогда придется переписывать то, что написано в самом TStringGrid



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

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

Наверх




Память: 0.5 MB
Время: 0.02 c
3-1079868025
HMT
2004-03-21 14:20
2004.04.25
суммирование данных из двух таблиц.


11-1065002302
Ал
2003-10-01 13:58
2004.04.25
PopUp меню, открываемое при щелчке по иконке в трее


1-1081703697
Женя е
2004-04-11 21:14
2004.04.25
Форма из dll.


1-1081452005
Yong
2004-04-08 23:20
2004.04.25
Как уменьшить размер ехе-шника без визуальных компонентов


3-1080805412
LAndreyV
2004-04-01 11:43
2004.04.25
связка SELECT FROM WHERE ORDER BY выдает ошибку!