HomeNewsForumECO-BuchLinksImpressum

Login-Bereich

Benutzer Anmeldung

Sind Sie in diesem Portal bereits registriert? Dann können Sie sich hier anmelden:

Benutzername:

Passwort:

Passwort vergessen?

 

Registrierung

 

Fragen zum Forum?

Schicken Sie ein Mail an den Moderator.

ECO-Forum
Alle Kategorien > ECO-Programmierung > Ecospace > Object erzeugung
Anzahl Nachrichten: 5 - Seiten (1): [1]
Autor: fKeuten
Erstellt: 13. Sep. 2006 - 11:15
Betreff: Object erzeugung
Hallo

ich will innerhalb einer function Objecte des typ CList bzw CEntry erzeugen und diese zu den jeweiligen collections eines CBook objects hinzufügen.

also zu meiner umsetzung:

procedure Book.import;
var
lst :ListUnit.List;
begin
lst := List.Create;
lst.reference := StringGrid[i][4];
lst.title := StringGrid[i][5];
lst.pageNo := StringGrid[i][6];
self.Lists.Add(lst);
end.

also so in etwa. Jedoch bekomm ich jedesmall eine nullreference Excaption geworfen sobald ich diesem Object lst eine reference oder ähnliches übergeben will.
Kann mir da bitte jemand weiter helfen?

MfG
Fabian
Autor: AS
Erstellt: 13. Sep. 2006 - 04:41
Betreff: re: Object erzeugung
Hallo Fabian,

angenommen dein ECO-Klassenmodell sieht folgendermassen aus:

CBook 1----------* CList 1------------* CEntry

Dann wäre die Import Funktion für ein Book-Objekt (z.B. in der WinForms Unit):

Procedure...
var oList : CList;
begin
oList := Clist.Create (EcoSpace);
oList.Title := ....
self.CLists.Add (oList);
end;

Viele Grüße
AS
Autor: fKeuten
Erstellt: 14. Sep. 2006 - 09:22
Betreff: re: re: Object erzeugung
hallo AS

also soweit sogut.
die import funktion befindet sich in der book klasse.

was ich allerdings keinesfalls verstehe ist was dieses EcoSpace objekt ist??
wie komme ich da ran beziehungsweise, wie soll ich das initialisieren und deklarieren ??

MfG
Fabian
Autor: AS
Erstellt: 14. Sep. 2006 - 02:36
Betreff: re: Object erzeugung
Hallo Fabian,

alle ECO-Objekte befinden sich zur Laufzeit im EcoSpace. Das ist eine Art Cache, der die ECO-Objekte automatisch verwaltet (aus der Datenbank nachlädt...).
Jedes ECO-Objekt egal ob CBook , Clist... muß immer im EcoSpace angelegt werden.

Der EcoSpace wird beim Starten einer ECO-WinForms Anwendung automatisch initialisiert ->constructor TWinForm.Create. TWinForm enthält standardmäßig eine Property EcoSpace, über die man (in der WinForm) zur Laufzeit Zugriff auf den EcoSpace erhält.

Üblicherweise werden ECO-Objekte aus der WinForm heraus (per Button-Click etc.) erzeugt. Damit bei der Erzeugung von Objekten klar ist, dass es sich um ECO-Objekte handelt, wird dem Create-Constructor die EcoSpace-Property der WinForm mit übergeben. Damit ist klar, das Objekt wird !im! EcoSpace angelegt.
Diese übergebene EcoSpace-Referenz steht nach der Erzeugung des Objektes im Objekt selber als ServiceProvider-Property zur Verfügung!

Soll die Objekterzeugung (CList) als Funktion in einem anderen ECO-Objekt (CBook) definiert werden, kann man daher die EcoSpace-Referanz des CBook-Objektes verwenden.

oList := CList.Create (self.AsIObject.ServiceProvider);

Viele Grüße
AS
Autor: fKeuten
Erstellt: 15. Sep. 2006 - 10:12
Betreff: re: re: Object erzeugung
hi AS

vielen dank für die ausfürliche Erklärung.
es funktioiniert jetzt endlich

MfG
Fabian
Anzahl Nachrichten: 5 - Seiten (1): [1]
Sie müssen sich anmelden, um in dieser Konferenz eine Nachricht zu schreiben.