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
TComponent Entwickliung -> Collection Item in Collection Item ...
Re: TComponent Entwickliung -> Collection Item in Collection Item ...
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.
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.
- af0815
- Lazarusforum e. V.
- Beiträge: 6790
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: TComponent Entwickliung -> Collection Item in Collection Item ...
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.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.
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).
Re: TComponent Entwickliung -> Collection Item in Collection Item ...
Ja, das geht wohl, falls man's braucht.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.
Danke!
Re: TComponent Entwickliung -> Collection Item in Collection Item ...
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.