Einzelnen Beitrag anzeigen

Ninow

Registriert seit: 25. Mär 2011
Ort: Nürnberg
8 Beiträge
 
Delphi 2010 Professional
 
#1

Klasse mit Properties als Property

  Alt 25. Mär 2011, 20:20
Hallo DP'ler,

ich hänge jetzt schon seit ca. 3 Tagen an einem Problem, hab auch schon die Suche angestrengt und nix brauchbares gefunden.

Also ich habe mir eine PropertyKlasse erstellt:

Delphi-Quellcode:
{...}
type
  TBackGround = class(TPersistent)
    private
      FBackgroundAlignment: TBackgroundAlignment;
      FBeginColor: TColor;
      FEndColor: TColor;
      procedure SetBackgroundAlignment(Value: TBackgroundAlignment);
      procedure SetBeginColor(Value: TColor);
      procedure SetEndColor(Value: TColor);
    published
      property BackgroundAlignment: TBackgroundAlignment read FBackgroundAlignment
        write SetBackgroundAlignment default baStandard;
      property BeginColor: TColor read FBeginColor write SetBeginColor default clBtnFace;
      property EndColor: TColor read FEndColor write SetEndColor default clBtnFace;
  end;
{...}
und habe eine Komponente von der Klasse TPanel abgeleitet:

Delphi-Quellcode:
unit MyPanel;

interface
uses
  ExtCtrls, Controls, Graphics, Windows, Classes;

type
  TMyPanel = class(TPanel)
    private
      FBackGround: TBackGround;
      procedure SetBackGround(NewBackGround: TBackGround);
    published
      property Background: TBackGround read FBackGround write SetBackGround;
  end;

procedure Register;


implementation

procedure Register;
begin
  RegisterComponents('Meine Komponenten', [TMyPanel]);
end;

{ TMyPanel }

procedure TMyPanel.SetBackGround(NewBackGround: TBackGround);
begin
  FBackGround.Assign(NewBackGround);

  Invalidate;
end;
...so.

Und jetzt meine Frage, wie bekomme ich es hin, dass der Objectinspector mir meine PropertyKlasse als kleines DropDown Menü anzeigt? (Wie Font oder Margins)

Er zeigt mir nur meine Property "Background" mit "(TBackGround)" und ein [+] an, aber wenn ich auf das [+] klicke, wird es zu [-] aber er klappt es nicht auf.

Danke schonmal!

Beste Grüße
Ninow
  Mit Zitat antworten Zitat