Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Serialisieren eines Objektes unter D7 (https://www.delphipraxis.net/33841-serialisieren-eines-objektes-unter-d7.html)

Mr_G 4. Dez 2004 14:33

Re: Serialisieren eines Objektes unter D7
 
Zitat:

... evt. muss Du für den
Zugriff noch auf Deinen TCollection Nachfahren casten.
Aha! :roll:
Wie macht man das?

Jens Schumann 4. Dez 2004 17:56

Re: Serialisieren eines Objektes unter D7
 
Zitat:

Zitat von Mr_G
Zitat:

... evt. muss Du für den
Zugriff noch auf Deinen TCollection Nachfahren casten.
Aha! :roll:
Wie macht man das?

Code:
TMyCollection(CollectionItem.Collection).Irgendwas

Mr_G 5. Dez 2004 12:27

Re: Serialisieren eines Objektes unter D7
 
Zitat:

TMyCollection(CollectionItem.Collection).Irgendwas
Das geht ja nicht!!!
Mein CollectionItem hat warum auch immer kein ".Collection"! :cry:

Jens Schumann 5. Dez 2004 14:49

Re: Serialisieren eines Objektes unter D7
 
Zitat:

Zitat von Mr_G
Zitat:

TMyCollection(CollectionItem.Collection).Irgendwas
Das geht ja nicht!!!
Mein CollectionItem hat warum auch immer kein ".Collection"! :cry:

Dann ist Dein CollectionItem kein Nachfahre von TCollectionItem.

Zeig mal den Sourcecode

Mr_G 5. Dez 2004 15:07

Re: Serialisieren eines Objektes unter D7
 
Hier die definition des eigenen Typs aus meinem Testprojekt:
Code:
type TPerson = class(TCollectionItem)
      private
        FName:String;
        FAlter:Integer;
      public
        procedure Assign(Source: TPersistent); override;
        procedure DoATest;
      published
        property Name: String read FName write FName;
        property Alter: Integer read FAlter write FAlter;
    end;
Falls das ganze Projekt brauchst nur bescheid sagen ...

Jens Schumann 5. Dez 2004 15:12

Re: Serialisieren eines Objektes unter D7
 
Hallo,
Code:
type TPerson = class(TCollectionItem)
      private
        FName:String;
        FAlter:Integer;
      public
        procedure Assign(Source: TPersistent); override;
        procedure DoATest;
      published
        property Name: String read FName write FName;
        property Alter: Integer read FAlter write FAlter;
    end;
// Nehmen wir mal, Dein TCollection-Nachfahre wäre folgender

 TMyCollection = class(TCollection)
 public
   procedure DoSomething;
...

//Wenn Du innerhalb einer TPerson Methode auf Dein TMyCollection Objekt
// Zugreifen möchtest musst Du folgendes schreiben.

procedure TPerson.DoATest;
begin
  TMyCollection(Collection).DoSomething;
end;

Mr_G 5. Dez 2004 15:50

Re: Serialisieren eines Objektes unter D7
 
Dazu müsste man aber doch dann die Instanz kennen und das war ja mein Problem... ...oder verstehe ich da etwas falsch?

Jens Schumann 5. Dez 2004 15:54

Re: Serialisieren eines Objektes unter D7
 
Zitat:

Zitat von Mr_G
Dazu müsste man aber doch dann die Instanz kennen und das war ja mein Problem... ...oder verstehe ich da etwas falsch?

Du verstehst Da etwas falsch.
Wenn Du zu einer TCollection ein TCollectionItem hinzufügst (Methode Add) wird automatisch
die Collection property des TCollectionItems gesetzt. Somit ist die Collection innerhalb des
TCollectionItems bekannt. Schau Dir doch mal den TCollection / TCollectionItem Sourcecode an.
Oder geh mal mit dem Debugger Schritt für Schritt das Hinzufügen eines TCollectionItems an.

Mr_G 5. Dez 2004 17:58

Re: Serialisieren eines Objektes unter D7
 
Ok...! Ich habs! :thumb:

Ich bin eben einfach zu dumm für diese Welt! :wall: :wall: :wall:

P.S.: Danke für die unermüdliche Hilfe! :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 Uhr.
Seite 4 von 4   « Erste     234   

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