Ver Mensaje Individual
  #2  
Antiguo 23-10-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
El problema está en que Canvas es protected.
La solución mejor es que pases como parámetro el canvas en lugar de un TGraphicControl.

Pero si lo anterior no puede ser, entonces un truco puede ser el siguiente:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TG = class(TGraphicControl);
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure graf(G: TgraphicControl);
begin
   TG(G).Canvas.Rectangle(1,30, 60, 60);  // con esto puedo acceder a Canvas... Y pintar un rectángulo
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  graf(Image1);
end;
end.

Saludos.
Responder Con Cita