Discussion:
TCollection in TCollection wie eine TreeView - möglich ?
(zu alt für eine Antwort)
Jens Kallup
2021-12-25 17:15:16 UTC
Permalink
Hallo,

ist es möglich innerhalb einer TCollection, eine weiter TCollection
zu programmieren ?
Wenn ja wie macht man das mit den vorliegenden Code auf:
https://wtools.io/paste-code/b84x

Zeilen 140, und: 162

Vielen Dank fÃŒr Infos
Jens Kallup

P.S.: Ich verwende nur Delphi 7 von 2002 32-Bit (ich weiß: Alter
Schinken, aber was solls ?
Jens Köhler
2021-12-27 08:23:54 UTC
Permalink
Post by Jens Kallup
Hallo,
ist es möglich innerhalb einer TCollection, eine weiter TCollection
zu programmieren ?
Vielen Dank für Infos
Jens Kallup
P.S.: Ich verwende nur Delphi 7 von 2002 32-Bit (ich weiß: Alter
Schinken, aber was solls ?
Hallo,

ich habe das nicht weiter angesehen, aber was passiert, wenn Du einfach
eine Collection erzeugst und zuweist?

Jens
Jens Kallup
2021-12-27 08:40:43 UTC
Permalink
Post by Jens Köhler
ich habe das nicht weiter angesehen, aber was passiert, wenn Du einfach
eine Collection erzeugst und zuweist?
also der vorliegende Code funktioniert fÃŒr einmal Collection.
Das heißt, die mit dem Component erzeugte Collection wird gut
sichtbar erzeugt, ist anwÀhlbar.
Allerdings wird dann innerhalb dieser Collection die zweite
Collection nur als (nicht aufklapparer) Eintrag im Designer
angezeigt.
Daher gehe ich mal davon aus, das was nicht stimmt oder ggf.
noch initializiert werden muss.
Aber im Moment fÀllt mir dazu nichts ein und stehe auf dem
Schlauch.
Vielleicht hat ja ein versierter Delindianer eine Idee dazu?

Gruß, Jens
Jens Köhler
2021-12-27 15:29:52 UTC
Permalink
also der vorliegende Code funktioniert für einmal Collection.
Das heißt, die mit dem Component erzeugte Collection wird gut
sichtbar erzeugt, ist anwählbar.
Allerdings wird dann innerhalb dieser Collection die zweite
Collection nur als (nicht aufklapparer) Eintrag im Designer
angezeigt.
Gruß, Jens
Ich habe es auf die schnelle mit D5 nicht zum laufen gebracht.
In D5 ist TCollection aber auch nur ein Container, der Inhalte aufnimmt.
Wenn etwas angezeigt werden soll, mußt Du das selbst tun bzw. die
Inhalte müssen sich anzeigen. Also liegt es doch auch an Dir, eine
Aufklappfunktion zu schreiben, oder nicht?

Jens
Jens Kallup
2021-12-28 01:54:14 UTC
Permalink
Hallo,

glÃŒcklicherweise macht Delphi diese "Aufklappfunktion" schon von sich
aus indem es weitere Properties anzeigt die man dann so programmieren
kann, dass dann eine TColorBox erscheint, oder ein TFontDialog, etc..

Allerdings habe ich fÃŒr TCollection in TCollection keine Idee, die
rekursive Schleife (also item öffnet sich, neuer Speicher wird dann
zugeordnet, item öffnet sich, neuer speicher ...).

Jens
Jens Köhler
2021-12-28 11:46:43 UTC
Permalink
Post by Jens Kallup
Hallo,
glücklicherweise macht Delphi diese "Aufklappfunktion" schon von sich
aus indem es weitere Properties anzeigt die man dann so programmieren
kann, dass dann eine TColorBox erscheint, oder ein TFontDialog, etc..
Jens
Dann hatt diese Collection wohl nichts mehr mit der aus D5 zu tun, denn
da ist es wie gesagt nur ein nicht sichtbarer Container.
Laut Hilfe verwendet TListView Ableitungen von CollectionItems, taugt
eventuell zum nachlesen.

Was mir aber aufgefallen ist:

constructor TkallupMenuPanelCollectionItem.Create(AOwner: TCollection);
begin
...
self.FCollection := TkallupMenuPanelCollection.Create(self.FComponent);
end;

dort erzeugst Du doch schon eine UnterCollection. Ist das so richtig?
Sollte das nicht eher heißen
self.FCollection := AOwner; ?

Jens
Jens Kallup
2021-12-28 12:14:23 UTC
Permalink
Hall Du-Icj :-)
Post by Jens Köhler
Post by Jens Kallup
Hallo,
glÃŒcklicherweise macht Delphi diese "Aufklappfunktion" schon von sich
aus indem es weitere Properties anzeigt die man dann so programmieren
kann, dass dann eine TColorBox erscheint, oder ein TFontDialog, etc..
constructor TkallupMenuPanelCollectionItem.Create(AOwner: TCollection);
begin
  ...
  self.FCollection := TkallupMenuPanelCollection.Create(self.FComponent);
end;
dort erzeugst Du doch schon eine UnterCollection. Ist das so richtig?
Sollte das nicht eher heißen
  self.FCollection := AOwner; ?
Jens
der constructor schaut bei mir nun so aus:

inherited Create(AOwner);
self.FCollection := TkallupMenuPanelCollection.Create(
self.FComponent);

es kommen keine MV's !
allerdings bin ich noch auf Level-1 Ebene gefangen.
Ich werde mal die Tage probieren, wie sich das Ganze mit
Array lösen lassen könnte.

Gruß, der andere Jens :-)
Jens Köhler
2021-12-28 16:54:58 UTC
Permalink
Am 28.12.2021 um 13:14 schrieb Jens Kallup:


Hallo,

dumme Frage: Wenn Du einen Treeview möchtest, weshalb nimmst Du keinen?

Jens
Jens Köhler
2021-12-28 17:00:49 UTC
Permalink
Bzw. MenüEditor klingt, als ob auch Menüs geeignet sind, die ja schon
Submenüs mitbringen.

Loading...