Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.052 c
15-1340800374
картман
2012-06-27 16:32
2013.03.22
кто в гугл хочет?


15-1343414133
KilkennyCat
2012-07-27 22:35
2013.03.22
Чем бы учитывать свои радиодетальки?


15-1341139478
Дмитрий С
2012-07-01 14:44
2013.03.22
999 рублей это для программистов :)


2-1333709191
Jimmy
2012-04-06 14:46
2013.03.22
Как избавится от мерцания?


15-1345798515
Beginer
2012-08-24 12:55
2013.03.22
Как отключить автовыравнивание значков на рабочем столе?