Ver Mensaje Individual
  #2  
Antiguo 24-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.110
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En el caso del "TPanel" parece ser que no se "publica" la propiedad "Canvas", que cuenta con ella, puesto que desciende de "TWinControl", que es quien la ofrece.

Podrías derivar un componente de "TPanel" y hacer pública su propiedad "Canvas", o, más sencillamente, declarar un tipo como el siguiente a modo de "clase superpuesta" (busca en el Foro sobre esto).

Código Delphi [-]
type
  TPanel = class(ExtCtrls.TPanel)
  public
    property Canvas;
  end;

Dicho tipo tendrías que declararlo antes que el tipo del formulario que contuviera al "Panel". A continuación un ejemplo de todo esto:

Código Delphi [-]
unit Unit1;

interface

uses
  Forms, StdCtrls, Classes, Controls, ExtCtrls;

type
  TPanel = class(ExtCtrls.TPanel)
  public
    property Canvas;
  end;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    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.TextOut(10, 10, 'ClubDelphi.com');
end;

end.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita