
11.05.2017, 16:49
|
 |
Местный
|
|
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
|
|
если еще актуально (да и, мало ли, может кому пригодится)...
Как рисовать на компоненте, не имеющем свойства Canvas
Код:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
type
TPanel = class({Vcl.}ExtCtrls.TPanel)
public
Canvas: TCanvas;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Canvas.MoveTo(10, 10);
Panel1.Canvas.LineTo(50, 50);
end;
{ TPanel }
constructor TPanel.Create(AOwner: TComponent);
begin
inherited;
Canvas := TCanvas.Create;
Canvas.Handle := GetDC(Self.Handle);
end;
destructor TPanel.Destroy;
begin
Canvas.Free;
inherited;
end;
end.
|