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

Вниз

Как переопределить свойство   Найти похожие ветки 

 
mmms   (2005-07-12 16:09) [0]

Есть например DBGrid, у его колонок тип TColumn, хочется переделать этот TColumn у DBGrid, что бы заголовок у колонки был всегда по центру (taCenter), например (но не только из за этого! :) ). Т.е. в чем проблема, переопределить все свойства у DBGrid могу, а вот как бы ещё "долезть" до его TColumn, в рамках своего компанента от DBGrid (TMyDBGrid)?


 
Юрий Зотов ©   (2005-07-12 16:20) [1]

Никаких свойств переопределять не надо, все уже предусмотрено.

type
 TMyColumn = class(TColumn)
 ... // Делаем свою колонку с нужным поведением
 end;

 TMyGrid = class(TDBGrid)
 protected
   function CreateColumns: TDBGridColumns; override;
 end;

function TMyGrid.CreateColumns: TDBGridColumns;
begin
 Result := TDBGridColumns.Create(Self, TMyColumn)
end;


И все. Грид будет иметь Ваши колонки.


 
mmms   (2005-07-12 16:51) [2]

Юрий благодарю Вас за ответы мне за последние дни :) Все просто супер, надеюсь теперь то справлюсь с задуманным. Да и подвижки в написании компанентов есть, благодаря Вам!


 
flying-home   (2005-07-13 10:58) [3]

Извините, продолжу ветку.
А если нужны потомки от TListItem или TTabSheet?
Например, мне нужен PageControl, у каждого TabSheet которого есть свойство Data (Pointer)


 
Юрий Зотов ©   (2005-07-13 12:08) [4]

> А если нужны потомки от TListItem или TTabSheet?

То смотрим исходники VCL.

У TListItem обнаруживаем следующее:
function CreateListItem: TListItem; virtual;
function CreateListItems: TListItems; virtual;
Смотрим код этих методов - и все становится ясно. Заодно обнаруживаем событие OnCreateItemClass - это еще один способ.

А у TPageControl обнаруживаем, что список Pages - это обычный TList, а он может хранить любые указатели. Значит, никто не мешает написать в редакторе компонента примерно следующее:
TMyTabSheet.Create(...).PageControl := MyPageControl1
И тогда в design-time будут создаваться страницы нужного класса. А в run-time их можно создать той же самой строкой.


 
flying-home   (2005-07-13 12:12) [5]

спасибо



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
10-1111562885
AloneAli
2005-03-23 10:28
2006.01.15
Как узнать самый крайний активный левый столбец в Excel е?


1-1134150399
OLEGNik
2005-12-09 20:46
2006.01.15
Как экспортировать procedure(): overload из .dll


1-1134374120
ZbarKiy
2005-12-12 10:55
2006.01.15
Экспорт процедур из DLL?


2-1135202723
Sound.OFA
2005-12-22 01:05
2006.01.15
"str" to "file of byte"


6-1128322497
Sniper17
2005-10-03 10:54
2006.01.15
Передача значений переменных через сокеты по Internet