Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#21

Re: Eigene Komponente von TCustomControl > Eigenschaftsed

  Alt 18. Apr 2006, 17:07
Zitat von Sidorion:
Ich nehm mal schwer an, das liegt an der Zuweisung:
Besser ist wohl:
FFont.Assign(Value)
Cool. Das Problem wäre nun geklärt, nur tritt jetzt ein neues auf!!!
Jetzt gibts keine Fehlermeldung mehr, alles funktioniert so weit.

Führt man das Programm aber nun aus, Wird einfach die standardschrift übernommen,..
??? halloo...

Hast du da auch gleich so n prima Vorschlag parat? Wäre toll...

Gruss

MeineFastFunktionierendeTestKomponente:

Delphi-Quellcode:
unit EChecker;

interface

uses
  SysUtils, Classes, Controls, Graphics;

type
  TEChecker = class(TCustomControl)
  private
    { Private-Deklarationen }
    FFont: TFont;
  protected
    { Protected-Deklarationen }
    procedure Paint; override;
    procedure SetFFont(const Value: TFont);
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
    property Font read FFont write SetFFont;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('enemyleft', [TEChecker]);
end;

constructor TEChecker.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 FFont:=TFont.Create;
end;

destructor TEChecker.Destroy;
begin
 FFont.Free;
 inherited Destroy;
end;

procedure TEChecker.Paint;
begin
 Canvas.Rectangle(0,0,width,height);
 Canvas.Font := FFont;
 Canvas.TextOut((width - Canvas.TextWidth(Name)) div 2,(height - Canvas.TextHeight(Name)) div 2,name);
 exit;
end;

procedure TEChecker.SetFFont(const Value: TFont);
begin
  FFont.Assign(Value);
  RePaint;
end;

end.
// Auch Canvas.Font.Assign(Self.FFont); oder solche sachen gehen net. Hab ich schon ausprobiert.
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat