Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.078 c
15-1348086602
Юрий
2012-09-20 00:30
2013.03.22
С днем рождения ! 20 сентября 2012 четверг


2-1347157458
alexdn
2012-09-09 06:24
2013.03.22
Сохранить картинку


4-1257811332
MemoryLeak
2009-11-10 03:02
2013.03.22
Mime filter + ie8 + vista/win7.


2-1338721041
Разведка
2012-06-03 14:57
2013.03.22
Нужна проверка слабых мест


15-1343313724
waveOutXXX
2012-07-26 18:42
2013.03.22
Как правильно работать с waveOutXXX?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский