Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как это работает? [D7, WinXP]


Dmitry_177 ©   (2008-04-30 22:39:00) 

мне понадобилось в TPanel добавить событие OnPaint, чтобы в нем отрисовывать панель.. в интернете нашел вот такой способ:

type
 TPanel = class(ExtCtrls.TPanel)
 private
   FOnPaint: TNotifyEvent;
 protected
   procedure Paint; override;
 public
   property Canvas;
   property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
 end;

 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure PanelPaint(Sender: TObject);
 end;

...

procedure TPanel.Paint;
begin
 inherited;
 if Assigned(OnPaint) then OnPaint(Self);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Panel1.OnPaint := PanelPaint;
end;

procedure TForm1.PanelPaint(Sender: TObject);
begin
Panel1.Canvas.TextOut(100, 100, 'тест');
end;


На форму кинул обычную панель.. Но вот как это работает не пойму..


DVM   (2008-04-30 22:51:00) [1]


> наверно все же лучше компонентом слеть?

Лучше конечно, а то этот способ выше чреват путаницей. А чтобы не инсталлить компонент в процессе разработки по сто раз, его лучше создавать в рунтайм для проверки.


Dmitry_177   (2008-04-30 22:47:00) [2]


> А работает просто - кто последний имя типа определил, тот
> и "папа" :)


наверно все же лучше компонентом слеть? как вы считаете?


korneley   (2008-04-30 22:45:00) [3]

Метод, кстати, спорный. Есть апологеты и наоборот. А работает просто - кто последний имя типа определил, тот и "папа" :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо