Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: CL | DM;

Вниз

Компонент   Найти похожие ветки 

 
Oleg__   (2003-07-10 15:34) [0]

Как при создании компонента на нем что-нибудь нарисовать? Если в конструкторе написать (напр) Canvas.Restangle(...), то ошибка либо "не могу рисовать на Canvas" либо "у контрола нет parent"а".


 
MBo ©   (2003-07-10 15:35) [1]

рисуй в Paint


 
Skier ©   (2003-07-10 15:36) [2]

От чего компонент наследуется ?


 
Oleg__   (2003-07-10 15:39) [3]

> MBo
Сделал Paint; override;

> Skier
TPanel


 
Skier ©   (2003-07-10 15:44) [4]

>Oleg__ (10.07.03 15:39)
см. MBo © (10.07.03 15:35) и рисуй после inherited
А вообще хорошо бы код показать...


 
Oleg__   (2003-07-10 15:48) [5]

TOpPnlControl = class(TPanel)
private
.......
protected
procedure Repaint; override;
.......
end;
end;
...........
procedure TOpPnlControl.Repaint;
begin
inherited;
Canvas.Rectangle(0,0,20,20);
end;


 
Skier ©   (2003-07-10 15:50) [6]

>Oleg__ (10.07.03 15:48)
Сказали же "рисуй в Paint"


 
Poirot ©   (2003-07-10 15:54) [7]

Я присоединюсь - рисуй там, гед надо рисавать... в конструкторе в любом случае не нарисует... хоть об инхеритиз по самые уши!!! Тебе сказл любимая ИДЕ - нет у тебя, того где рисавать - нетУ!


 
Oleg__   (2003-07-10 15:57) [8]

Мда, невнимательность када-нить погубит.
Спасибо и извиняюсь за дезинформацию. А как сделать, чтобы не моргало теперь, а то сначала же он прорисовывает старое и только потом мое?


 
Skier ©   (2003-07-10 16:08) [9]

>Oleg__ (10.07.03 15:57)
А цель компонента какая ?
Может не туда идёшь...


 
Poirot ©   (2003-07-10 16:15) [10]

Попробуй ненаследовать паинт... Или же есть замечательный флаг у компонента - ComponentState типа Opaque или что-то в этом роде - он отключит перерисовку бекграунда у компонента!


 
Переяслов Григорий ©   (2003-07-10 16:53) [11]

Я обычно создаю компоненту, наследуюсь от TPaintBox, в методе Paint ее полностью отрисовываю. Кладу эту компоненту на Panel, делаю ей Allign -> alClient. А чтобы не моргало в рунтайме делаю так: Panel.DoubleBuffering := True.



Страницы: 1 вся ветка

Текущий архив: 2003.07.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
1-77868
AndrewVolkov
2003-07-13 18:28
2003.07.24
Com port - ReadFile???


14-78112
sss123456
2003-07-07 17:03
2003.07.24
Слишком сложный и неудобный форум


9-77710
R2D2
2003-02-01 22:32
2003.07.24
---|Ветка была без названия|---


1-77925
Непомню
2003-07-10 14:37
2003.07.24
SynEdit и Delphi 7


1-77848
olookin
2003-07-11 23:31
2003.07.24
Параметр в библиотечной процедуре...