Главная страница
    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.057 c
15-1335375892
Kerk
2012-04-25 21:44
2013.03.22
О ста сортах колбасы


15-1339857231
Dmitry
2012-06-16 18:33
2013.03.22
что должен знать/уметь грамотный Delphi программист?


9-1194294204
Mr.Vlad
2007-11-05 23:23
2013.03.22
Сенсор


2-1340260017
StudyMySQL
2012-06-21 10:26
2013.03.22
Вопрос по MySQL


15-1342013393
kki
2012-07-11 17:29
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский