Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.47 MB
Время: 0.03 c
14-1080818393
Sergo
2004-04-01 15:19
2004.04.25
Рассылка по доскам объявлений


3-1078920672
Alexander_K
2004-03-10 15:11
2004.04.25
Вопрос про мидас


14-1080885396
snake1977
2004-04-02 09:56
2004.04.25
Office 2000


1-1081121122
Passer-by
2004-04-05 03:25
2004.04.25
Фильтр для TFileName


14-1080582631
Мазут Береговой
2004-03-29 21:50
2004.04.25
Посмотрел "Passions of the Christ"...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский