Morgen,
ich versuche meine eigene Komponente zu schreiben. Leider weiss ich nicht, wie ich der ein Aussehen verleiehen kann.
Ich wollte mal testweise Hintergrundfarbe ändern, leider funzt das nicht so wie ich das haben wollte.
Delphi-Quellcode:
type
TMyWinCtrl = class(TWinControl)
private
FBGColor : TColor;
Canvas : TCanvas;
procedure SetBGColor(Value: TColor);
{ Private-Deklarationen }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
{ Public-Deklarationen }
published
property BGColor : TColor read FBGColor write SetBGColor;
{ Published-Deklarationen }
end;
constructor TMyWinCtrl.Create(AOwner: TComponent);
begin
Canvas := TCanvas.Create;
inherited Create(AOwner);
end;
destructor TMyWinCtrl.Destroy;
begin
inherited;
Canvas.Free;
end;
procedure TMyWinCtrl.SetBGColor(Value: TColor);
var
Rect : TRect;
begin
Rect := GetClientRect;
if ColorToRGB(Value) > -1 then
begin
Canvas.Brush.Color := Value;
Canvas.FillRect(Rect);
FBGColor := Value;
end;
Canvas.Refresh;
end;
end.
Ich bekomme die ganze Zeit die Fehlermeldung: "Leinwand/Bild erlaubt kein zeichnen".
Was kann ich tun bzw. was mache ich falsch?
thx voraus