Главная страница
    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.45 MB
Время: 0.065 c
2-1336118119
igorium
2012-05-04 11:55
2013.03.22
Как открыть папку в проводнике (вид - эскиз)


15-1332164769
Empleado
2012-03-19 17:46
2013.03.22
Работа с формулами


15-1329058787
Чебурашка
2012-02-12 18:59
2013.03.22
Вызов функции в чужом процессе


15-1335001121
antonn
2012-04-21 13:38
2013.03.22
релюшка на 220


15-1353081080
Артём
2012-11-16 19:51
2013.03.22
нужен совет!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский