Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5
  Alt 2. Apr 2003, 15:18
Das ist natürlich von TButton abgeleitet. Na gut, so halt :
Code:
type
  TFarbButton = class(TButton)
  private
    { Private declarations }
    FColor : TColor;
    FCanvas : TCanvas;
    procedure SetColor (c : TColor);
  protected
    { Protected declarations }
    procedure DrawButton (Rect : TRect);
  public
    { Public declarations }
    constructor Create (AOwner : TComponent); override;
    destructor Destroy; override;
  published
    { Published declarations }
    property Canvas : TCanvas read FCanvas;
    property Color : TColor read FColor write SetColor;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiel', [TFarbButton]);
end;

constructor TFarbButton.Create (AOwner : TComponent);
  begin
    inherited Create (AOwner);
    FCanvas := TCanvas.Create;
  end;

destructor TFarbButton.Destroy;
  begin
    FCanvas.free;
    inherited;
  end;

procedure TFarbButton.DrawButton (Rect : TRect);
begin
  FCanvas.Brush.Color := FColor;
  FCanvas.Pen.Color := clBlack;
  FCanvas.FillRect (Rect);
end;

procedure TFarbButton.SetColor (c : TColor);
begin
  Fcolor := c;
end;
Und den OI hänge ich als Beiweis, daß es funktioniert noch an. Anzumerken ist die Property Color, die steht in der Typdeklaration der Klasse drin und ist von mir. Die anderen Farben werden von Brush und Pen bereitgestellt. Und noch eine Frage : Bei Copymode steht eine komische Zahl. Was soll das ? Wie gesagt im OI sieht das Recht gut aus. Es gibt noch einen Fehler : Es funktioniert nicht.
Angehängte Dateien
Dateityp: doc dok5_143.doc (32,5 KB, 17x aufgerufen)
Gruß
Hansa
  Mit Zitat antworten Zitat