Hi torud
Kleines Beispiel für den Font(stammt aus dem Kalender - unter OpenSource).
Delphi-Quellcode:
TCalendarControl = class(TCustomControl)
private
...
FFont : TFont;
...
procedure SetFont(Value : TFont);
...
public
constructor Create(aOwner : TComponent); override;
destructor Destroy; override;
...
end;
...
implementation
...
constructor TCalendarControl.Create(aOwner : TComponent);
begin
inherited Create(aOwner);
...
FFont := TFont.Create;
FFont.Name := 'Arial';
FFont.Size := 8;
...
end;
procedure TCalendarControl.SetFont(Value : TFont);
begin
if FFont <> Value then
begin
FFont.Assign(Value);
Canvas.Font.Assign(Value);
Invalidate;
end;
end;
destructor TCalendarControl.Destroy;
begin
...
FFont.Free;
inherited Destroy;
end;
und für den Rahmen:
Delphi-Quellcode:
...
procedure TCalendarControl.Paint;
...
begin
...
if FOptions.BorderStyle = bsSingle then
begin
Rectangle(R);
InflateRect(R, -1, -1);
end;
...
end;
...
Für Rectangle geht auch RoundRect.
Die Zuweisung
Canvas.Font.Assign(Value) kann auch in Paint erfolgen, dann aber so
Canvas.Font.Assign(FFont).
Gruß