Einzelnen Beitrag anzeigen

RedOne

Registriert seit: 2. Jun 2008
71 Beiträge
 
Delphi XE2 Professional
 
#18

AW: Data-Pointer in Interfacevariable casten

  Alt 16. Jul 2010, 12:04
Ok. Wenigstens einen Lichtblick in der Zukunft

Eine kurze Frage noch zum löschen. Ich habe es jetzt so gemacht dass im Interface eine Funktion existiert die sich selbst als Objekt zurück gibt.

Delphi-Quellcode:
  IDataObject = interface( IInterface )
    ['{C94DCAC7-CA42-45D3-95D7-9BC321BA2E2A}']
    function Load( _id: Integer ): Boolean;
    function Insert: Boolean;
    function Update: Boolean;
    procedure Delete;
    procedure SetSelfObject( _o: TObject );
    function GetSelfObject: TObject;
  end;

procedure TAccountData.SetSelfObject( _o: TObject );
begin
  FSelfObject:= TAccountDataExtend( _o ); //Cast unnötig
end {SetSelfObject};

function TAccountData.GetSelfObject: TObject;
begin
  Result:= FSelfObject;
end {GetSelfObject};
Aber wie lösche ich mein Objekt nun wieder?
Mittels xy.GetSelfObject.Free wird eine "unnötige Zeigeroperation" ausgelöst.
Ich habe testweise bei der Generierung der Listview meine Objekte noch in eine TObjectList gespeichert und diese durchgeloopt. Auch dies gibt eine "unnötige Zeigeroperation". Blockiert mich das Interface? Wie wäre der korrekte/schöne Weg diese Objekte zu löschen?

Herzlichen Dank
  Mit Zitat antworten Zitat