Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизПотомок 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.03 c