AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objecte oder Objectlisten Speichern

Ein Thema von richard_boderich · begonnen am 1. Jul 2005 · letzter Beitrag vom 28. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

Objecte oder Objectlisten Speichern

  Alt 1. Jul 2005, 12:01
Hallo Leute!

Ich hab eigene Objecte in dehnen sich auch visuelle Controls von delphi befinden, und muss diese irgentwie abspeichern. Entweder alle Objecte, einzeln oder die ganze Objectlist. Bei der suche bin ich auf DP collection gestoßen, kann aber leider gar nix damit anfangen.
kann mir bitte jemand sagen was die DPcollection genau ist und was sie macht?

Eigentlich such ich was ganz einfaches wie Objectlist.loadfromfile oder so etwas. (ich weis Objectlisten speichern nur Pointer, geht also so nich)

waere nett wenn mir jemand ein bisschen grundsaetzliches ueber die DPcollection sagen koennte, denn der Beitrag in der DP ist so gehalten, als wenn die DPcollection das selbstverstaendlichste auf der welt ist. Was sie aber für mich als neuling definitiv nicht ist.



Gruß,

Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Objecte oder Objectlisten Speichern

  Alt 1. Jul 2005, 12:38
Die dpCollection ist eigentlich nicht das was du suchst. Davon abgesehen kann mann sie zu so missbrauchen, dass sie tut was du willst. In der DP gibt es mittlerweile tausende beiträge zum thema dpCollection, wesshalb es keinen sinn macht nochmal alles durchzukauen *sorry* hier zB. http://www.delphipraxis.net/internal...ct.php?t=39210 wir das ausführlich besprochen.


Was du eigentlich brauchst, ist ein generischer Serialisierer für TObjectList. Vielleicht kennt ja jemand einen, oder ist bereit einen zu schreiben...ich hätte schon lust, aber leider keine zeit


PS: Warum erwähnst du einen derart unwichtigen knilch, den du auch noch hasst, in deiner signatur? Ich würd ihn ja einfach aus meinen bewustsein verbannen und seinen namen nicht nennen, sonst hat er schon gewonnen
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Objecte oder Objectlisten Speichern

  Alt 1. Jul 2005, 12:39
Zitat von richard_boderich:
waere nett wenn mir jemand ein bisschen grundsaetzliches ueber die DPcollection sagen koennte, denn der Beitrag in der DP ist so gehalten, als wenn die DPcollection das selbstverstaendlichste auf der welt ist. Was sie aber für mich als neuling definitiv nicht ist.
Die dpCollection ist nicht selbstverstaendlich?

Das erinnert mich irgendwie daran dass ich mein Tutorial zur dpCollection fertigschreiben wollte
Wenn du interessiert bist, kann ich dir mal die Vorabversion schicken (englisch und ws. mit Fehlern), der Rest wird noch 1-2 Wochen warten muessen

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#4

Re: Objecte oder Objectlisten Speichern

  Alt 1. Jul 2005, 13:07
@Maximov, guck mal bitte hier da ist das project an dem ich arbeite und eine Definition meines Objectes. Ist ne etwas fruehere version also sei nicht so streng mit mir.

Delphi-Quellcode:
  TMapObject = class(TControl)
  private
    image: TImage; // Für das entsprechende Einheitenbild besser vielleicht Imagelist, kann imagelist nur bmp ich brauch aber gif?
    Edit: TEdit; // Eingabefeld für Einheitenname
    Einheitenname: TStaticText; // Anzeige des Einheitennamens
    X,Y: Integer; // Position der Einheit auf Karte Y
    Typ: String; // z.B. "Infantry", Image ist abhaengig vom Einheitentyp wo kann ich diese Abhaengigkeit berechnen oder festlegen z.B wenn Einheitentyp = 2 dann image.picture.'Panzer.bmp"
    Einheitenstatus: String; //draggen ermoeglichen und draggingstatus

    procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure DblClick(Sender: TObject); reintroduce; virtual;
    procedure ImageClick(Sender: TObject);
    procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); reintroduce; virtual;
  // procedure UpdateStatus(Einheitentyp: String; Status: String);
  published
    property Status :String read Einheitenstatus write Einheitenstatus;
    property Einheitentyp :String read Typ write Typ;
    property MapX :Integer read x write x;
    property MapY :Integer read y write y;
  // procedure zeichnen(Mapx,Mapy:integer);
  public
    constructor Create(Owner: TComponent; MapX: Integer; MapY: Integer; Einheitentyp:String; Status:String); reintroduce; virtual;
       { Public-Deklarationen } 
  end;

Apropos, was ist ein generischer Serialisierer???



ich dachte die DP collection speichert alles was irgentwie Objectmaessig ist???

@Alcaeus, sehr gerne haett ich ein torturiel. aber da es in englisch ist, beweifle ich das ich es verstehen werde. ich bin noch recht neu in der OOP, habvorher alles mit records gemacht. (die waren einfach zu speichern *verklaerrt zurueckdenk*) dann hatt mir jemand gesagt nimm objecte alles viel einfacher, besser und schneller. Teilweise stimm ich dem zu. die verwaltung und die steuerung über
das setzten von propertys ist sehr konfortabel. auch kann ich jetzt vcl control's kapseln - sehr gut. aber wenn ich riesigen aufwand
treiben muss um den ganzen sack abzuspeichern? siehe Record vs. Klassen

Gruß

Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Objecte oder Objectlisten Speichern

  Alt 3. Jul 2005, 19:11
Zitat von richard_boderich:
@Maximov, guck mal bitte hier da ist das project an dem ich arbeite und eine Definition meines Objectes. Ist ne etwas fruehere version also sei nicht so streng mit mir.
...
Da controlls komponenten sind und man eben diese mit dem Component-streaming-system von delphi serialisieren kann, bietet es sich doch an zB. den TWriter zum speichern zu verwenden. Das wäre in etwa so:

Delphi-Quellcode:
myWrite:TWriter;
..
myWrite.WriteComponent(myMapObject);
...allerdings hast du so keine liste und geht evtl. nicht auf das eigentliche problem ein. Interessant wäre es zu wissen, was du letztendlich erreichen willst?

Zitat:
Apropos, was ist ein generischer Serialisierer???
Ein Serialisiere, also eine instanz, welche den inneren zustand von objekten in eine serielle representation (stream) verwandelt und dies sehr allgemein gehalten, sodass der serialisierer keine kenntnis von den tatsächlichen objekten haben braucht. Ein Deserialisierer würde aus dem stream dann wieder konkrete objekte machen.

So könnte ein solcher serialiserer aufgebaut sein:
Delphi-Quellcode:
type
  ISerializerStrategy = interface();
    function GetNameOfClass(aClass:TClass):string;
    function GetClassByName(const Name:string):TClass;
    ...
  end;

  TObjectSerializer = class
  protected
    procedure SerializeObject(aObject:TObject);
  public
    constructor create(stream:TStream; SerializerStrategy:ISerializerStrategy);
    procedure SerializeObjects(List:TObjectList);
  end;

...
// verwende:
var
  Serializer:TObjectSerializer;
...
  Serializer:=TObjectSerializer.Create(myStream, myStrategyImplementation);
  Serializer.SerializeObjects(myObjectList);
So in etwa Wobei das auch noch nicht sonderlich generich ist, da geht noch einiges mehr. Über die strategy kann der serialisieren rückfragen an den programmirer stellen, sodass das system keine ahnung haben braucht wo irgendwelche klassen registriert sind etc. zB. könnte man die strategy auch fragen, welche object überhaupt serialisiert werden sollen etc. Is so auch nur ne idee.

Zitat:


ich dachte die DP collection speichert alles was irgentwie Objectmaessig ist???
die dpCollection speichert nur collection items, welche du allerdings als container für TPersistent abkömmlinge konfigurieren kannst.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Objecte oder Objectlisten Speichern

  Alt 3. Jul 2005, 20:45
Vielleicht hilft dir das weiter.

Objecktliste mit polomorten Objecten speichern

Gibt ne kleine verbesserung um auch Streams mit ab zu speichern. Wenn du es brauchst, meld dich bei mir
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#7

Re: Objecte oder Objectlisten Speichern

  Alt 3. Jul 2005, 21:12
@ all,

wie ich schon vermutet habe, versteht ich garnichts vom dem was ihr sagt. Für mich sind
diese begriffe alles Dörfer aus böhmen und määren.

Aber mal ne andere Frage.

Wenn ich jetz die dpcollection einbinde und die parameter meiner objecte übergebe
an ein object das ich mit der dpcollection erstelle. koennte ich das
dann abspeichern. und bei laden mach ich es dann umgekehrt?

muesste dann irgenwie die anzahl der objecte in der liste mit abspeichern, aber sonst
muesst es doch gehn oder ??

Gruß Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#8

Re: Objecte oder Objectlisten Speichern

  Alt 4. Jul 2005, 08:43
*push*
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#9

Re: Objecte oder Objectlisten Speichern

  Alt 21. Jul 2005, 12:49
@all

geht das nich auch einfacher? ich will nichts in einem stream, oder ins xml format konvertieren, ich moecht nur mein object
mit allen darin enhaltenen propertys abspeichern und wieder oeffnen?

achso , kann mir einer eventuell diesen satz aus der OH mal erklaeren?

Delphi-Quellcode:
Rufen Sie WriteComponent nicht direkt auf. WriteComponent wird für jede untergeordnete Komponente in Root rekursiv aufgerufen.

WriteComponent weist der Eigenschaft ComponentState von Component den Status csWriting zu, bevor die Methode WriteState von Component aufgerufen wird, und löscht das Flag csWriting, sobald WriteState die Steuerung zurückgibt.

Hinweis:   Die Methode WriteComponent des Writer-Objekts ruft die Methode WriteState der Komponente auf, die ihrerseits die Methode WriteData
 des Writer-Objekts aufruft. Diese Methode schreibt die Eigenschaften für jede untergeordnete Komponente und ruft dann WriteComponent auf.

Da die Methode WriteState der Komponente eine virtuelle Methode ist, stellt sie die einzige Möglichkeit der Komponente dar, sich auf das Schreiben in den Stream vorzubereiten.
gruß Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Eisenherz

Registriert seit: 10. Jun 2002
Ort: Stadeln
33 Beiträge
 
Delphi 5 Professional
 
#10

Re: Objecte oder Objectlisten Speichern

  Alt 22. Jul 2005, 09:13
Zitat von richard_boderich:
wie ich schon vermutet habe, versteht ich garnichts vom dem was ihr sagt. Für mich sind
diese begriffe alles Dörfer aus böhmen und määren.
Um dich endgültig zu verwirren hier noch ein weiterer Link.
In dem dazugehörigen Tutorial wird eine Liste von Objekten gespeichert. Im Gegensatz zu DPCollection muss man seine zu speichernden Objekte nicht von einer bestimmten Klasse ableiten.
Es gibt auch eine RTTI-Unterstützung, sprich published Properties werden automatisch gespeichert und geladen. Das wird im Tutorial aber nicht angesprochen. Dazu gibt es nur ein Beispielprogramm.
aloa Eisenherz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 Uhr.
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