Parent-Object zu Object kopieren

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Parent-Object zu Object kopieren

Beitrag von mark332 »

Hey Leute,

ich baue gerade eine Objectklasse mit "TJSONObject" als ClassParent auf und frage mich nun, ob es möglich ist ein Object vom Typ "TJSONObject" in mein Object reinzukopieren, damit
mir die Daten zur Verfügung stehen, ohne dass mein Object überschrieben wird.

Bsp.:

Code: Alles auswählen

 
unit jsonSettings_BASE;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, fpjson;
type
 
  { TJSONSetting }
 
  TJSONSetting = class(TJSONObject)
  private
    {Private Vars}
  private
    {Private Procedures}
  public
    {Public Vars}
  public
    {Public Procedures}
    procedure CopyFromJSONObject(obj: TJSONObject);
    (* CONSTRUCTOR *)
    constructor Create;
    constructor Create(const Elements: array of const); overload;
  public
    {Properties}
  end;
 
 
implementation
 
{ TJSONSetting }
 
procedure TJSONSetting.CopyFromJSONObject(obj: TJSONObject);
begin
{Inhalt des Objectes vom Klassentyp der Parent-class kopieren, damit man es selber nutzen kann}
end;
 
constructor TJSONSetting.Create;
begin
  inherited Create;
end;
 
constructor TJSONSetting.Create(const Elements: array of const);
begin
  inherited Create(Elements);
end;
 
end.
 
Wenn ich z.B. ein JSONObject vom typ "TJSONObject" erstelle und dann schreibe

Code: Alles auswählen

 
MyObject {TJSONSettings} :=AnJSONObject {TJSONObject};
 
wird mein gesamtes Object überschrieben.

Ich hoffe ihr könnt mir folgen :mrgreen:


MfG

mark332

PS: Auf dem Gebiet bin ich noch ein ziemlicher Anfänger, ich bitte darum mich für peinliche oder dumme Fehler nicht zu lynchen :oops:
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: Parent-Object zu Object kopieren

Beitrag von theo »

K.A. Habe nur mal Kurz in fpjson geschaut.
Schon mit

Code: Alles auswählen

function TJSONObject.Clone: TJSONData;  
probiert?

k.meier
Beiträge: 19
Registriert: So 12. Apr 2015, 14:54

Re: Parent-Object zu Object kopieren

Beitrag von k.meier »

was willst du denn bezwecken?
Ich verstehe die Frage nicht

Gruss k
wir sind die Meiers ;-)

mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Re: Parent-Object zu Object kopieren

Beitrag von mark332 »

theo hat geschrieben:K.A. Habe nur mal Kurz in fpjson geschaut.
Schon mit

Code: Alles auswählen

function TJSONObject.Clone: TJSONData;  
probiert?
Ich verstehe was du meinst, aber wie schaffe ich es quasi aus einem Object der Parent-Class ein Object meiner Klasse zu machen ?

MfG

mark332
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: Parent-Object zu Object kopieren

Beitrag von theo »

Ich versteh auch nicht was du meinst.
Was hat das mit Parent zu tun?

mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Re: Parent-Object zu Object kopieren

Beitrag von mark332 »

Naja, ein Object vom Typ TJSONObject, enthält Informationen aus einem JSON-String, und diese Informationen brauche ich in meinem Object auch,

wenn ich einfach das JSONObject auf mein Object "kopiere" ändert sich ja auch die Klasse, und mir stehen nichtmehr die Methoden meiner erstellte Klasse zur
Verfügung.

Könnt ihr mir besser folgen ? :oops:
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: Parent-Object zu Object kopieren

Beitrag von theo »

Schau dir doch in fpjson an, was "Clone" macht.
Das müsste doch übertragbar sein. Z.B. so (nicht getestet)

Code: Alles auswählen

procedure TJSONSetting.CopyFromJSONObject(obj: TJSONObject);
var
  I: Integer;
begin
    For I:=0 to obj.Count-1 do Add(obj.Names[I],obj.Items[I].Clone);
end; 

mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Re: Parent-Object zu Object kopieren

Beitrag von mark332 »

Danke, werde ich versuchen, melde mich, sobald ich die Antwort habe.


Im übrigen dachte ich mir sowas in der Art tatsächlich schon, bin aber stark verwirrt durch die Anzahl an Möglichkeiten, mit den man Elemente aus dem Object ziehen kann,
und dachte mir dann dabei, dass dann bestimmt irgendetwas ausgelassen wird.

MfG


mark332
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

k.meier
Beiträge: 19
Registriert: So 12. Apr 2015, 14:54

Re: Parent-Object zu Object kopieren

Beitrag von k.meier »

ich sehe gerade du hast dein Objekt von TJSONObject abgeleitet,
wo also liegt dein Problem ?
wir sind die Meiers ;-)

mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Re: Parent-Object zu Object kopieren

Beitrag von mark332 »

k.meier hat geschrieben:ich sehe gerade du hast dein Objekt von TJSONObject abgeleitet,
wo also liegt dein Problem ?
Theoretisch würde sich die Klasse meines Objektes zu TJSONObject ändern (quasi einen hoch), wenn ich einfach "meinObject:=IrgendEinJSONObjekt" schreibe, oder nicht ?
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Antworten