
01.03.2012, 19:07
|
 |
I Like it!
|
|
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
|
|
А можно еще интереснее - добавить свойство Canvas классу TPanel
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TPanel = class(ExtCtrls.TPanel)
private
FCanvas: TControlCanvas;
function GetCanvas: TCanvas;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Canvas: TCanvas read GetCanvas;
end;
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{ TPanel }
constructor TPanel.Create(AOwner: TComponent);
begin
inherited;
FCanvas := TControlCanvas.Create;
FCanvas.Control := Self;
end;
destructor TPanel.Destroy;
begin
FCanvas.Free;
inherited;
end;
function TPanel.GetCanvas: TCanvas;
begin
Result := FCanvas;
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Canvas.Rectangle(10, 10, 50, 50);
end;
end.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
|