Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Внизкак это работает? Найти похожие ветки
← →
Dmitry_177 (2008-04-30 22:39) [0]мне понадобилось в 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;
На форму кинул обычную панель.. Но вот как это работает не пойму..
← →
korneley © (2008-04-30 22:45) [1]Метод, кстати, спорный. Есть апологеты и наоборот. А работает просто - кто последний имя типа определил, тот и "папа" :)
← →
Dmitry_177 (2008-04-30 22:47) [2]
> А работает просто - кто последний имя типа определил, тот
> и "папа" :)
наверно все же лучше компонентом слеть? как вы считаете?
← →
DVM © (2008-04-30 22:51) [3]
> наверно все же лучше компонентом слеть?
Лучше конечно, а то этот способ выше чреват путаницей. А чтобы не инсталлить компонент в процессе разработки по сто раз, его лучше создавать в рунтайм для проверки.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c