AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Objekte zw. Programm und DLL austauschen - Interfaces?
Thema durchsuchen
Ansicht
Themen-Optionen

Objekte zw. Programm und DLL austauschen - Interfaces?

Ein Thema von Namenloser · begonnen am 6. Sep 2008 · letzter Beitrag vom 6. Sep 2008
 
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Objekte zw. Programm und DLL austauschen - Interfaces?

  Alt 6. Sep 2008, 20:03
Danke für die Antworten

@Elvis:
Wie gesagt, meine Klass eist nur XML-ähnlich aufgebaut von der Struktur her. Es ist aber ein eigenes, binäres Format. Ich habe mich gegen XML entschieden, weil die Kommunikation über das Internet laufen soll, und ich den Größenzuwachs bei XML insbersondere bei Binärdaten vermeiden will. Deshalb kann ich die Klasse von Delphi nicht benutzen.

Wie kann ich denn völlig ohne Objektreferenzen arbeiten? Irgendwo muss das Objekt doch mal erzeugt werden

@Apollonius:
Ist es denn sinnvoll, den Code zu kopieren? Es sind zwar nicht sehr viele Klassen, aber irgendwie widerstrebt mir das.


Zur Zeit sieht meine Deklaration so aus:
Delphi-Quellcode:
  TBinXMLValue = class(TMemoryStream)
  private
    function getAsBoolean: boolean;
    function getAsFloat: extended;
    function getAsInt64: int64;
    function getAsLongint: longint;
    function getAsString: string;
    procedure setAsBoolean(const Value: boolean);
    procedure setAsFloat(const Value: extended);
    procedure setAsInt64(const Value: int64);
    procedure setAsLongInt(const Value: longint);
    procedure setAsString(Value: string);
  protected
    procedure SaveToStream(const aStream: TStream);
    procedure LoadFromStream(const aStream: TStream);
  public
    constructor Create;
    property AsString: string read getAsString write setAsString;
    property AsLongint: longint read getAsLongint write setAsLongInt;
    property AsInt64: int64 read getAsInt64 write setAsInt64;
    property AsFloat: extended read getAsFloat write setAsFloat;
    property AsBoolean: boolean read getAsBoolean write setAsBoolean;
  end;

  TBinXMLTag = class
  private
    FName: string;
    FChildren: TBinXMLTaglist;
    FParent: TBinXMLTag;
    FValue: TBinXMLValue;
    procedure SetName(const Value: string);
  protected
    procedure SetParent(const Value: TBinXMLTag);
    procedure SaveToStream(const aStream: TStream);
    procedure LoadFromStream(const aStream: TStream);
  public
    constructor Create(const aParent: TBinXMLTag = nil);
    destructor Destroy; override;

    property Name: string read FName write SetName;
    property Parent: TBinXMLTag read FParent;
    property Children: TBinXMLTaglist read FChildren;
    function NewChild(const aName: string=''): TBinXMLTag;
    property Value: TBinXMLValue read FValue;
  end;

  TBinXMLTagList = class(TObjectList)
  private
    FParent: TBinXMLTag;
    function GetItem(index: integer): TBinXMLTag;
    procedure SetItem(index: integer; const Value: TBinXMLTag);
    procedure FreeAllItems;
    function GetItemByName(Name: string): TBinXMLTag;
  protected
    procedure SetParent(const Value: TBinXMLTag);
    procedure SaveToStream(const aStream: TStream);
    procedure LoadFromStream(const aStream: TStream);
  public
    constructor Create(const aParent: TBinXMLTag = nil);
    property Parent: TBinXMLTag read FParent;
    property Items[index: integer]: TBinXMLTag read GetItem write SetItem; default;
    property ItemByName[Name: string]: TBinXMLTag read GetItemByName;
    function Add(AItem: TBinXMLTag): integer;
  end;
Es gibt noch ein TBinXMLDocument, das ich aber in der DLL nicht brauchen werde. Wie könnte man bei den obigen Deklarationen am sinnvollsten Interfaces einflicken?
  Mit Zitat antworten Zitat
 


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 10:40 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