Показать сообщение отдельно
  #5  
Старый 11.05.2017, 16:49
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 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.
Ответить с цитированием