TComponent Entwickliung -> Collection Item in Collection Item ...

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
paule3232
Beiträge: 1
Registriert: Sa 25. Dez 2021, 11:35

TComponent Entwickliung -> Collection Item in Collection Item ...

Beitrag von paule3232 »

Hallo an Alle auis dem Forum, und frohe Weihnachten,

wie der Betreff schon sagt: ich suche nach eine Möglichkeit eine Collection in Collection zu programmieren, falls Möglich.
Eine Collection ist doch das, was bei Delphi 7 (was ich gerade nutze) eine Property Value, die eine Objekt Liste enthält,
die wiederrum Properties (oder auch Collectionen) enthalten kann.

Dazu habe ich bereits schon ein wenig Code zusammen gestellt, der hier abrufbar (als Paste) ist:
https://wtools.io/paste-code/b84x

Dort könnt Ihr sehen, das ich mittels "Items" eine Collection eingeführt habe.
Siehe dazu Zeilen: 162, und: 140

Für jede Hilfe wäre ich dankbar
paule32

Benutzeravatar
theo
Beiträge: 8817
Registriert: Mo 11. Sep 2006, 19:01

Re: TComponent Entwickliung -> Collection Item in Collection Item ...

Beitrag von theo »

Diese Frage bleibt wohl unbeantwortet, weil hier ein Lazarus und kein Delphi Forum ist.

Trotzdem ist das im Prinzip ja gleich.

Kann mir mal jemand den Vorteil von TCollection gegenüber TList mit typecasting erklären?
Irgendwie scheint mir TCollection nicht so dringend notwendig, aber ich habe da nicht wirklich viel Info dazu gefunden und kann mich irren.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4893
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: TComponent Entwickliung -> Collection Item in Collection Item ...

Beitrag von af0815 »

theo hat geschrieben:
Mi 29. Dez 2021, 12:46
Kann mir mal jemand den Vorteil von TCollection gegenüber TList mit typecasting erklären?
Irgendwie scheint mir TCollection nicht so dringend notwendig, aber ich habe da nicht wirklich viel Info dazu gefunden und kann mich irren.
Mir fällt da nur ein, das die Collection sich sehr gut streamen lässt, da die Elemente von TPersistent abstammen. Siehe auch das Beispiel in der wiki https://wiki.lazarus.freepascal.org/TCollection unter streaming.

Ad paule3232: Es ist für niemanden so wichtig, viel code durchzuackern. Mach ein kurzes kompilierbares Beispiel daraus. Meist erledigt sich dann auch die Frage. Vor allen, mache ich mir absolut keine Gedanken mehr, wie was bei D7 funktioniert (hat).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 8817
Registriert: Mo 11. Sep 2006, 19:01

Re: TComponent Entwickliung -> Collection Item in Collection Item ...

Beitrag von theo »

af0815 hat geschrieben:
Mi 29. Dez 2021, 13:16
Mir fällt da nur ein, das die Collection sich sehr gut streamen lässt, da die Elemente von TPersistent abstammen. Siehe auch das Beispiel in der wiki https://wiki.lazarus.freepascal.org/TCollection unter streaming.
Ja, das geht wohl, falls man's braucht.
Danke!

wp_xyz
Beiträge: 4092
Registriert: Fr 8. Apr 2011, 09:01

Re: TComponent Entwickliung -> Collection Item in Collection Item ...

Beitrag von wp_xyz »

Im Unterschied zu T(FP)List ist TCollection in den Object-Inspector integriert. Du kannst also im Designmode Einträge hinzufügen, löschen und ihre Properties bearbeiten. Das liegt daran, dass TCollectionItem von TPersistent abgeleitet ist (die Einträge von T(FP)List sind nur Pointer), und für TCollection-Nachfahren ist in der Unit propedits ein Property-Editor implementiert, TCollectionPropertyEditor. Der erzeugt die bekannten '...' neben der Collection-Property im Object-Inspector, und ein Klick darauf öffnet den üblichen Collection-Editor mit den Buttons "+ Add", "- Delete", "Up", "Down". Wenn man daher als Komponenten-Entwickler eine listen-ähnliche Struktur von TCollection ableitet, bekommt man all diesen Komfort für den Designmode geschenkt, ohne eine Zeile schreiben zu müssen.

Antworten