AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klasse mit Properties als Property

Ein Thema von Ninow · begonnen am 25. Mär 2011 · letzter Beitrag vom 29. Mär 2011
Antwort Antwort
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, 19: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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Klasse mit Properties als Property

  Alt 25. Mär 2011, 19:23
Du musst einen entsprechenden PropertyEditor implementieren und registrieren
Markus Kinzler
  Mit Zitat antworten Zitat
Ninow

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

AW: Klasse mit Properties als Property

  Alt 25. Mär 2011, 20:21
Kurze Zwischenfrage TPropertyEditor befindet sich ja in DesignEditors.

Der Compiler meldet aber das er DesignEditors.dcu nicht finden kann warum?

Geändert von Ninow (25. Mär 2011 um 20:35 Uhr)
  Mit Zitat antworten Zitat
Ninow

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

AW: Klasse mit Properties als Property

  Alt 25. Mär 2011, 20:50
Okay Zwischenfrage erledigt...
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Klasse mit Properties als Property

  Alt 25. Mär 2011, 21:07
Definiere die einzelnen Properties als published

Delphi-Quellcode:
{..}
published
  property BeginColor;
  property EndColor;
{..}
Weiters musst du für die Instanzierung in TMyPanel selbst sorgen. Dh. im Konstruktor & Destruktor die Instanz per TKlassenname.Create erstellen und anschließend im Destruktor per Free zerstören!

Edit: Sorry, hab mich verguggt. Du müsstest die Propertys normalerweise als Public definieren und anschließend in Kurzform auch als published, soweit ich mich nicht irre... Hatte aber nicht viel am Hut mit Komponentenentwicklung & IDE
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (25. Mär 2011 um 21:13 Uhr)
  Mit Zitat antworten Zitat
Ninow

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

AW: Klasse mit Properties als Property

  Alt 25. Mär 2011, 21:24
@Aphton: Die Properties müssen unter published stehen, da sie ja zur Entwicklungszeit verändert werden sollen.

Geändert von Ninow (25. Mär 2011 um 21:26 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz