Forum: Algorithmen, Datenstrukturen und Klassendesign
by RedOne,
16. Jul 2010
Ah cool. Eigentlich mag ich es nicht wenn mit jemand Arbeit abnimmt aber in diesem Fall... ;-)
Es ist doch nur ein Objekt. In "SelfObject" befindet sich nur eine weitere Referenz auf das Objekt.
Und ja, sollte natürlech "ungültige" heissen :-)
Forum: Algorithmen, Datenstrukturen und Klassendesign
by RedOne,
16. Jul 2010
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.
IDataObject = interface( IInterface )
function Load( _id: Integer ): Boolean;
function Insert: Boolean;
function Update: Boolean;
procedure Delete;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by RedOne,
16. Jul 2010
Hallo zusammen
Interessante Anmerkungen, merci.
Habe es soweit umgesetzt. Einziger Nachteil: Ich bin faul ;-)
Sehe ich es richtig dass es in Delphi 2007 keinen Weg gibt ein Interfaceobjekt, also mein Objekt im Data direkt in ein Objekt umzuwandeln, in TAccountData umzuwandeln? Ich rufe im OnClickereignis eine abstrakte Methode auf die im abgeleiteten Form implementiert wird. Dieser Methode...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by RedOne,
15. Jul 2010
Macht durchaus Sinn zuerst das Objekt zu erstellen und dann daraus ein Interface zu kreieren:
procedure GetAllAccounts( _o: TInterfaceList );
var
tmp: TAccountDataExtend;
begin
for i:= 0 to 4 do begin
tmp:= TAccountDataExtend.Create;
tmp.FID:= i;
_o.Add( tmp );
tmp._AddRef;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by RedOne,
15. Jul 2010
Merci für Deine Antwort. Wir kommen näher ;-)
Der Speicher wird vor der Funktion initialisiert. Ich habe den Code zusammengestrichen, da ist sie mir wohl abhanden gekommen :-)
Weil ich diese bisher nicht kannte :-)
OwnsObject setzte ich bis anhin in der Funktion auf false
Forum: Algorithmen, Datenstrukturen und Klassendesign
by RedOne,
14. Jul 2010
Das geht ja flux mit Antworten... :-) Merci!
i:= IInterface(ListViewMain.Selected.Data) as IDataObject; compilliert zwar aber gibt immer noch einen Laufzeitfehler.
Gerne würde ich direkt in mein TAccountData casten, kann ich aber nicht:
Ich habe ein abstraktes Basisformular da alle Editierfenster den gleichen Aufbau besitzen.
Nun habe ich ein AccountForm davon abgeleitet. Dieses rufe ich...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by RedOne,
14. Jul 2010
Hallo zusammen
Die Delphi-Interfaces bringen mich gerade an den Rand der verzweiflung...
Ich habe folgenden Code:
var
i: IDataObject;
begin
if ListViewMain.ItemIndex >= 0 then begin