Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie ein komplexes Object In eine Datei speichern? (https://www.delphipraxis.net/40805-wie-ein-komplexes-object-eine-datei-speichern.html)

Robert_G 21. Feb 2005 15:48

Re: Wie ein komplexes Object In eine Datei speichern?
 
Zitat:

Zitat von sniper_w
Es ist von nichts abgeleitet und OBJECT ist eine Abwärtskompatibilitet mit TurboPascal...Gute allte Zeiten... :love:

In einem anderen Thread hörte ich, dass es von record ableitet.

Kedariodakon 21. Feb 2005 15:49

Re: Wie ein komplexes Object In eine Datei speichern?
 
Zitat:

Zitat von sniper_w
Es ist von nichts abgeleitet und OBJECT ist eine Abwärtskompatibilitet mit TurboPascal...Gute allte Zeiten... :love:

Lass mich raten in dem Fall bringt mir das gar nix :wink:

Bye

Eisenherz 21. Feb 2005 16:09

Re: Wie ein komplexes Object In eine Datei speichern?
 
Eine Alternative zu DPCollection findest du hier.
Hier bist du nicht gezwungen von einer bestimmten Klasse abzuleiten. Deine zu speichernden Daten müssen nicht als published Properties vorliegen und sie können auch Readonly sein.
Dafür musst du aber mehr Code eintippen als mit DPCollection.
Die Tippfaulen können aber auch published-Properties nutzen. Das wird aber im Tutorial nicht gezeigt. Dafür gibt es "nur" ein eigenes Beispielprogramm.

sniper_w 21. Feb 2005 16:20

Re: Wie ein komplexes Object In eine Datei speichern?
 
Ich weiss nicht ob dir das weiter hilft: :angel2:
Delphi-Quellcode:
uses
  TypInfo;

procedure ListComponentProperties(Component: TComponent; Strings: TStrings);
var
  Count, Size, I: Integer;
  List: PPropList;
  PropInfo: PPropInfo;
  PropOrEvent, PropValue: string;
begin
  Count := GetPropList(Component.ClassInfo, tkAny, nil);
  Size := Count * SizeOf(Pointer);
  GetMem(List, Size);
  try
    Count := GetPropList(Component.ClassInfo, tkAny, List);
    for I := 0 to Count - 1 do
    begin
      PropInfo := List^[I];
      if PropInfo^.PropType^.Kind in tkMethods then
        PropOrEvent := 'Event'
      else
        PropOrEvent := 'Property';
      PropValue := VarToStr(GetPropValue(Component, PropInfo^.Name));
      Strings.Add(Format('[%s] %s: %s = %s', [PropOrEvent, PropInfo^.Name,
        PropInfo^.PropType^.Name, PropValue]));
    end;
  finally
    FreeMem(List);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Clear;
  ListComponentProperties(ListBox1, ListBox1.Items);
end;

maximov 21. Feb 2005 17:28

Re: Wie ein komplexes Object In eine Datei speichern?
 
@Sniper_w: hilft nicht so richtig, da er von TObject ableitet. Gut er könnte {$M+} nutzen.

Also entweder er wählt eins der angebotenen Persistierungs-framework oder er muss sich selbst ein schreiben, was durchaus eine erfahrung sein kann. Ein paar versuche hat jeder ;)

Kedariodakon 21. Feb 2005 17:35

Re: Wie ein komplexes Object In eine Datei speichern?
 
Zitat:

Zitat von maximov
@Sniper_w: hilft nicht so richtig, da er von TObject ableitet. Gut er könnte {$M+} nutzen.

Also entweder er wählt eins der angebotenen Persistierungs-framework oder er muss sich selbst ein schreiben, was durchaus eine erfahrung sein kann. Ein paar versuche hat jeder ;)

öhm :oops:

Ich glaub das übersteigt meine aktuellen Kenntnisse bei weitem...

Bye

sniper_w 21. Feb 2005 17:59

Re: Wie ein komplexes Object In eine Datei speichern?
 
Zitat:

@Sniper_w: hilft nicht so richtig, da er von TObject ableitet. Gut er könnte {$M+} nutzen.
Mein Beispiel ist aber für TObject Familie abgestimmt. :shock:

maximov 21. Feb 2005 21:47

Re: Wie ein komplexes Object In eine Datei speichern?
 
Zitat:

Zitat von sniper_w
Zitat:

@Sniper_w: hilft nicht so richtig, da er von TObject ableitet. Gut er könnte {$M+} nutzen.
Mein Beispiel ist aber für TObject Familie abgestimmt. :shock:

Offensichtlich nicht ganz:

Zitat:

Zitat von sniper_w
...
procedure ListComponentProperties(Component: TComponent; Strings: TStrings);

TPersistence würde an diese stelle am meisten sinn ergeben. TComponent ist eigentlich übertrieben und TObject hat nicht die nötigen TypeInfos.


@Kaderioko: Zeig doch mal ein paar klassenköpfe, damit wir wissen wie die substanze aussieht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.
Seite 3 von 3     123   

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