Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Klasse in Liste speichern (ObjectList, ComponentList) (https://www.delphipraxis.net/137995-klasse-liste-speichern-objectlist-componentlist.html)

Helmi 1. Aug 2009 20:07


Klasse in Liste speichern (ObjectList, ComponentList)
 
Hallo,

ich habe eine Klasse, die ich so definiere:

Delphi-Quellcode:
TLabelFeld = packed class
Wie kann ich diese nun in einer Liste eintragen?

Bei einer TObjectList und bei einer TComponentList bekomm ich immer die Meldung
dass die nicht kompatibel wären.

jaenicke 1. Aug 2009 20:11

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
packed class? Lass einmal das packed weg, weißt du was das bewirkt?

// EDIT:
Allerdings funktioniert auch das bei mir, auch wenn ich packed nur von Records kenne. Wie sieht denn der Code aus?

Helmi 1. Aug 2009 20:15

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
Zitat:

Zitat von jaenicke
packed class? Lass einmal das packed weg, weißt du was das bewirkt?

Ehrlich gesagt kenn ich das nur von Records und da bewirkt es, dass der Speicher zusammen geschmissen wird
(also jetzt mal ganz grob gesagt)

mkinzler 1. Aug 2009 20:17

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
Es wird nicht an Byte, Word usw. ausgerichtet.

Helmi 1. Aug 2009 20:18

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
Aber ohne packed funktionierts auch nicht - die gleiche Meldung

jaenicke 1. Aug 2009 20:19

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
Ja, ich habe ja geschrieben, dass es bei mir auch mit funktioniert, ich wusste nur nicht, dass packed auch mit Klassen funktioniert (und error insight scheint das auch nicht zu wissen :D).

Wie sieht denn nun der Code aus? :glaskugel:

Helmi 1. Aug 2009 20:25

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
Bei diesem Text mault Delphi:

Delphi-Quellcode:
i := ObjectList.IndexOf(Dummy_Label);
Wobei i vom Typ Integer ist und Dummy_Label vom Typ LLabelFeld

hab aber jetzt rausgefunden, wenn ich es so mache:
Delphi-Quellcode:
i := ObjectList.IndexOf(TObject(Dummy_Label));
dann funktionierts...

jaenicke 1. Aug 2009 20:31

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
Also bei mir klappt das mit IndexOf auch ohne Cast. :gruebel:

Ich habe das jetzt mit Delphi 2006 getestet.

Helmi 1. Aug 2009 20:55

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
Wenn ich "class (TObject)" schreibe, dann gehts auch ohne cast.

jaenicke 1. Aug 2009 21:21

Re: Klasse in Liste speichern (ObjectList, ComponentList)
 
Wenn man nichts als Elterntyp angibt, dann ist das aber automatisch TObject. Und ich kann das Problem auch mit Delphi 7 nicht sehen, auch da funktioniert IndexOf ohne Cast und ohne explizit von TObject abzuleiten. :gruebel:

Aber ist ja auch nicht so wichtig, wenn es jetzt bei dir funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz