Ver Mensaje Individual
  #9  
Antiguo 24-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Puedes quitar un 90%

Código Delphi [-]
unit CLabel;

interface

uses
  Classes, StdCtrls, Controls;

type
  TCLabel = class(TLabel)
  protected
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
  end;

implementation

uses
  Graphics;

{ TCLabel }

constructor TCLabel.Create(AOwner: TComponent);
begin
  inherited;
  AutoSize := False;
  Alignment := taCenter;
  Layout := tlCenter;
end;

procedure TCLabel.Paint;
begin
  inherited;
  Canvas.Ellipse(ClientRect); {Modificado el 2208/2006, Orignialmente hacía referencia a BondsRect}
end;

end.

Realmente no hay mucho que entender. Lo que estás haciendo es crear una nueva clase de componente que deriva de TLabel (al quitarle Custom de TCustomLabel fue que nos ahorramos el 90% ). Esta clase redefine el método Paint que es el que se encarga de pintar la componente. En el método redefinido, inherited es la llamada al método anterior, es decir, le dice "pinta el Label como ya sabes", y después de eso usas un método del canvas del componente para pintar la elipse. Todo lo que se dibuja en una componente va sobre su canvas.

Espero que con esto le pierdas el miedo, te dejes de pretextos y no te conformes con "lo sencillito". Dicho lo anterior en buen plan.

// Saludos
Responder Con Cita