Вниз
Скачать: CL | DM;

custom paint   Найти похожие ветки 

← →
Dima335   (2012-03-31 23:39) [0]

Добрый вечер. На форме есть 2 объекта. У одного отрисовку сделал так:
TMyPainter = class(TcxSheetPainter)
 protected
   procedure DrawHeaderBrick(I, J: Integer); override;
 end;
procedure TMyPainter.DrawHeaderBrick;
var ii: Integer;
begin
inherited;
//код трисовки первого объекта
end;

procedure TForm1.cxSpreadSheet1CustomPaint(Sender: TObject;
 var PainterClass: TcxSheetPainterClass);
begin
PainterClass := TMyPainter;
end;

Теперь надо для второго объекта сделать свою отрисовку. Но как? У него тоже есть процедура DrawHeaderBrick(I, J: Integer).
Ее нужно переопределить, но по-другому, не как у первого объекта. Если я напишу:

TMyPainter2 = class(TcxSheetPainter)
 protected
   procedure DrawHeaderBrick2(I, J: Integer); override;
 end;
procedure TMyPainter.DrawHeaderBrick2;
var ii: Integer;
begin
inherited;
//код трисовки первого объекта
end;
procedure TForm1.cxSpreadSheet2CustomPaint(Sender: TObject;
 var PainterClass: TcxSheetPainterClass);
begin
PainterClass := TMyPainter2;
end;
мне компилятор просто скажет нет такой процедуры DrawHeaderBrick2.


← →
Дмитрий С ©   (2012-04-01 01:16) [1]

А зачем ты двойку в конце ставишь: "DrawHeaderBrick2" ?


← →
Dima335   (2012-04-01 05:18) [2]

Если я сошлюсь на DrawHeaderBrick, то это будет процедура для 1 объекта. Второй объект должен рисоваться по-другому


← →
KilkennyCat ©   (2012-04-01 09:07) [3]

Второй объект не знает о процедуре первого объекта.

> TMyPainter2 = class(TcxSheetPainter)
>  protected
>    procedure DrawHeaderBrick2(I, J: Integer); override;
>  end;
> procedure TMyPainter.DrawHeaderBrick2;


MyPainter2 = class(TcxSheetPainter)
 protected
   procedure DrawHeaderBrick(I, J: Integer); override;
 end;
procedure TMyPainter2.DrawHeaderBrick;


← →
Dima335   (2012-04-01 15:20) [4]

Хорошо, где тогда писать реализацию второго варианта DrawHeaderBrick?


← →
_Юрий   (2012-04-01 15:48) [5]

TMyPainter и TMyPainter2 - оба потомки TcxSheetPainter,  все верно? Или все таки TMyPainter2 - потомок TMyPainter ?


← →
Dima335   (2012-04-01 16:08) [6]

Верно, спасибо


← →
KilkennyCat ©   (2012-04-01 16:23) [7]


> Хорошо, где тогда писать реализацию второго варианта DrawHeaderBrick?

внимательно смотри:
> procedure TMyPainter2.DrawHeaderBrick;

видишь цифру 2?
в конце концов, прочитай про ООП, там всего 3 страницы



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.052 c
15-1346597310
Разведка
2012-09-02 18:48
2013.03.22
Посоветуйте книгу


15-1352808457
AV
2012-11-13 16:07
2013.03.22
Number Oracle и числа в "православной". Не хватает Cardinal`a


2-1328539227
jacksotnik
2012-02-06 18:40
2013.03.22
Координаты объекта


3-1285160032
yurikon
2010-09-22 16:53
2013.03.22
Событие по смене записи


15-1346963402
Юрий
2012-09-07 00:30
2013.03.22
С днем рождения ! 7 сентября 2012 пятница




   Наверх