![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
custom paint
Dima335 © (2012-03-31 23:39:00)Добрый вечер. На форме есть 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.
KilkennyCat (2012-04-01 16:23:00) [1]
> Хорошо, где тогда писать реализацию второго варианта DrawHeaderBrick?
внимательно смотри:
> procedure TMyPainter2.DrawHeaderBrick;
видишь цифру 2?
в конце концов, прочитай про ООП, там всего 3 страницы
Dima335 (2012-04-01 16:08:00) [2]Верно, спасибо
_Юрий (2012-04-01 15:48:00) [3]TMyPainter и TMyPainter2 - оба потомки TcxSheetPainter, все верно? Или все таки TMyPainter2 - потомок TMyPainter ?
Dima335 (2012-04-01 15:20:00) [4]Хорошо, где тогда писать реализацию второго варианта DrawHeaderBrick?
KilkennyCat (2012-04-01 09:07:00) [5]Второй объект не знает о процедуре первого объекта.
> 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 TMyPainter 2.DrawHeaderBrick;
Dima335 (2012-04-01 05:18:00) [6]Если я сошлюсь на DrawHeaderBrick, то это будет процедура для 1 объекта. Второй объект должен рисоваться по-другому
Дмитрий С (2012-04-01 01:16:00) [7]А зачем ты двойку в конце ставишь: "DrawHeaderBrick2" ?