Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.067 c