AGB  ·  Datenschutz  ·  Impressum  







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

Bei Properties Untermenüs erzeugen

Ein Thema von daschaos · begonnen am 21. Feb 2008 · letzter Beitrag vom 21. Feb 2008
Antwort Antwort
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#1

Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 10:15
Ich bin mir fast sicher, dass das Thema hier schon ma angesprochen wurde, aber anscheinend geb ich die falschen Suchwörter ein. Meine Komponente hat soviele Properties, dass das mittlerweile zu unübersichtlich wird. Deswegen würde ich diese gerne zusammenfassen und Untermenüs bilden, wie das zum Beispiel im Object Inspector bei Font der Fall ist...

Weiß nicht so recht, wie ich das bewerkstelligen soll bzw. nach welchem Begriff ich suchen soll, um das halt ma nachzulesen....

Danke schonmal!

Liebe Grüße,
Laura
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 10:18
Der Thread war hier
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 11:20
Ok, also muss ich mir eine eigene Klasse erzeugen. Danke schonmal . Aber wie schaffe ich das jetzt, dass das innerhalb des OI meiner Komponente angezeigt wird. Die haben ja momentan noch nich viel miteinander zu tun... Irgendwie stell ich mich doof an, ich weiß.... also ich hatte ja vorher meine Properties in meiner Komponenete, jetzt klaue ich mir die ganzen Properties samt Getter und Setter und packe die in meine neu erzeugte Klasse. Und nu ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 11:32
Deine "Unterklasse" muss von TPersistent abgeleitet sein und Assign überschreiben. In Deiner Komponente erzeugst Du nun eine Instanz dieser Klasse und fügst sie als Proptery hinzu. Das sollte im Wesentlichen alles sein, aber ich habe das auch noch nie gemacht und beziehe mich nur auf die Aussagen aus dem verlinkten Thread. Zur Not versuche ich das aber gerne mal heute Abend zu Hause selbst noch einmal.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 11:46
Hm, hab also den Code so übernommen und mal testweise drei "UnterEigenschaften" eingefügt:

Delphi-Quellcode:
TPhongProperties = class(TPersistent)
  private
    /// vector which points towards the light source
    FPhongLightVectorX: Single;
    FPhongLightVectorY: Single;
    FPhongLightVectorZ: Single;
    FOnChange : TNotifyEvent;
    procedure SetLightVectorX(ALightVectorX: Single);
    procedure SetLightVectorY(ALightVectorY: Single);
    procedure SetLightVectorZ(ALightVectorZ: Single);
    function GetLightVectorX: Single;
    function GetLightVectorY: Single;
    function GetLightVectorZ: Single;
  protected
    procedure DoChange; virtual;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Assign(Source : TPersistent); override;
    property OnChange : TNotifyEvent read FOnChange write FOnChange;
  published
    /// x-coordinate of vector which points towards the light source
    property PhongLightVectorX: Single read GetLightVectorX write SetLightVectorX;
    /// y-coordinate of vector which points towards the light source
    property PhongLightVectorY: Single read GetLightVectorY write SetLightVectorY;
    /// z-coordinate of vector which points towards the light source
    property PhongLightVectorZ: Single read GetLightVectorZ write SetLightVectorZ;
  end;
Delphi-Quellcode:
constructor TPhongProperties.Create;
begin
  FPhongLightVectorX := 0;
  FPhongLightVectorY := 0;
  FPhongLightVectorZ := 0;
end;

destructor TPhongProperties.Destroy;
begin
  inherited Destroy;
end;

procedure TPhongProperties.Assign(Source : TPersistent);
begin
  If Source is TPhongProperties then
  begin
    FPhongLightVectorX := TPhongProperties(Source).FPhongLightVectorX;
    FPhongLightVectorY := TPhongProperties(Source).FPhongLightVectorY;
    FPhongLightVectorZ := TPhongProperties(Source).FPhongLightVectorZ;
  end
  else
    inherited Assign(Source);
end;

procedure TPhongProperties.DoChange;
begin
  If Assigned(FOnChange) then
    FOnChange(Self);
end;
Dann halt in meiner Komponenete ein Property eingefügt:

property PhongShading: TPhongProperties read FPhongShading write FPhongShading; Im ObjectInsepector wird jetzt dann zwar PhongShading als Eigenschaft angezeigt, dahinter steht dann TPhongProperties, da ist auch ein Plus zum Aufklappen allerdings passiert dann nix. Ist leer... Was hab ich noch übersehen ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 11:48
Kann ich leider nichts zu sagen, da bisher wie erwähnt noch nie gemacht
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 11:59
Ok, dann trotzdem schonmal danke... vielleicht schaut ja sonst noch wer mal hier rein oder ich komm noch selbst auf die Lösung... wer weiß
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 13:28
Ähm ja. Doof. Peinlich. Und typisch ich . Ein FPhongShading := TPhongProperties.Create; wäre durchaus hilfreich. Du hast es ja noch gesagt DeddyH mit Instanz erzeugen... Sorry . Prima, ich nähere mich meinem Ziel. Wenn mir jetzt noch jemand erklärt was ich mit dem OnChange-Event meiner Unterklasse anfange, ist mein Tag gerettet .
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 13:47
Wirf doch mal einen Blick in die Sourcen, wie die VCL das macht
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Bei Properties Untermenüs erzeugen

  Alt 21. Feb 2008, 13:55
Ja, ich hab auch mal wieder einfach so drauf los gefragt, manchmal hilft auch erst denken .Juhu. Wunderbar, klappt alles, es aktualisiert sich alles, alles toll . Dankeschööön nochmal.
  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 22:55 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