AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TCollection in TCollectionItem im Objektinspektor
Thema durchsuchen
Ansicht
Themen-Optionen

TCollection in TCollectionItem im Objektinspektor

Ein Thema von Pro_RJ · begonnen am 21. Feb 2010
Antwort Antwort
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#1

TCollection in TCollectionItem im Objektinspektor

  Alt 21. Feb 2010, 21:45
Einen wunderschönen guten abend,

mein Grundproblem ist folgendes :
Ich habe ein VirtualStringTree und möchte die Nodes und Childnodes zurEntwurfszeit anlegen lassen.Diesen Nodes sollen jetzt noch weitere Infos hinterlegt werden können.

Dieses Problem wollte ich Über eine eine TCollection mit TCollectionItems lösen.
Das ist soweit auch kein Problem.
Jetzt wollte ich Innerhalb der TCollectionItems eine neue TCollection eröffen, wo man die Unterpunke anlagen kann. Das Problem ist nur, wenn ich im Objektinspektor auf das 1. Item Klicke --> dann auf "SubItems" (was die SubCollection ist) geht kein neues Fenster auf, wo ich die Items anlegen kann.

Ich hab hier das Prinzip mal übersichtlich dargestellt.


Delphi-Quellcode:
unit Coll_Item_Test;

interface
 uses SysUtils, Classes, ExtCtrls, StdCtrls;


  type
    TColl = Class;

    TColl_Item = Class(TCollectionItem)
      private
       Var U_Caption : String;
           U_SubCollection : TColl;
    procedure SetSubCollection(const Value: TColl);
      public
        constructor Create(Collection: TCollection); override;
        destructor Destroy; override;

      Published
        Property Caption : String read U_Caption write U_Caption;
        Property SubItems : TColl read U_SubCollection write SetSubCollection;
    end;

    TColl = Class(TCollection)
      private
      public
      Published
    end;

    TTestPanel = Class(TCustomPanel)
      Private
        U_Items : TColl;
    procedure SetItems(const Value: TColl);
      public
        constructor Create(AOwner: TComponent); override;
        Destructor Destroy; override;
      published
        Property Items : TColl read U_Items write SetItems;
    End;
Procedure Register;

implementation

Procedure Register;
Begin
  RegisterComponents('Standard', [TTestPanel]);
End;

{ TColl_Item }

constructor TColl_Item.Create(Collection: TCollection);
begin
  Inherited;
  U_SubCollection := TColl.Create(TColl_Item);
end;

destructor TColl_Item.Destroy;
begin
  U_SubCollection.Free;
  inherited;
end;

procedure TColl_Item.SetSubCollection(const Value: TColl);
begin
  U_SubCollection.Assign(Value);
end;

{ TColl }

{ TTestPanel }

constructor TTestPanel.Create(AOwner: TComponent);
begin
  inherited;
  U_Items := TColl.Create(TColl_Item);
end;

destructor TTestPanel.Destroy;
begin
  U_Items.Free;
  inherited;
end;

procedure TTestPanel.SetItems(const Value: TColl);
begin
  U_Items.Assign(Value);
end;

end.


also der weg sollte folgender sein
1. das Hauptobjekt -->
2. hier auf Items --> hier geht ds Fenster zum anlegen der Items auf
3. klick auf ein Items -->
4. hier auf die eingenschaft "SubItems" (hier sollte jetzt ein weiteres Fenster aufgehen, wo man die SubItems anlegen kann. aber dieses geht eben leider nicht auf.

muss hier erst irgendwas extra deklariert werden oder habe ich in meinem Grundprinzip schon einen Fehler oder könnte man das Anlegen der Nodes zu Entwurfszeit irgendwie einfacher realisieren.

mfg Jens

ps: ist im prinzip das gleiche wie hier
  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 11:24 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