Главная страница
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.024 c
3-1080215380
Patrick
2004-03-25 14:49
2004.04.25
Работа с компонентом PREPORT.


1-1081586960
Анатолий Ксюндзский
2004-04-10 12:49
2004.04.25
Создание экзепляров компонентов в runtime


3-1080294551
Term
2004-03-26 12:49
2004.04.25
Поскажите что не так в ХП


6-1078168887
pomashok
2004-03-01 22:21
2004.04.25
ESocketError


8-1074354648
Ianus
2004-01-17 18:50
2004.04.25
РЕЧЬ, ЕЕ рапознование....