Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
650 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Komponente Image Designtime zeichnen

  Alt 15. Aug 2022, 16:06
Deine Zeichenroutine gehört nicht ins Create, sondern ins Paint der Komponente. Dazu musst du die Paint Methode überschreiben:
Delphi-Quellcode:
unit DelphiPaxisTest;

interface

uses
  System.SysUtils, System.Classes, Vcl.Controls, Vcl.ExtCtrls,
  Vcl.Graphics;


type
  TDelphiPaxisTest = class(TImage)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
    procedure Paint; override;
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

constructor TDelphiPaxisTest.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

destructor TDelphiPaxisTest.Destroy;
begin
  inherited;
end;

procedure TDelphiPaxisTest.Paint;
begin
  inherited;
  if csDesigning in ComponentState then
  begin
     Canvas.Pen.Color := clGray;
     Canvas.Brush.Color:= clWhite;
     Canvas.Brush.Style:= bsSolid;
     Canvas.Rectangle(0, 0, Width, Height);
  end
  else
  begin
    //passt schon
  end;
end;

procedure Register;
begin
  RegisterComponents('Samples', [TDelphiPaxisTest]);
end;

end.
  Mit Zitat antworten Zitat