Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

Re: DFM speichert kein Objekt im Objekt als published proper

  Alt 19. Nov 2009, 11:40
Hi himitsu,

Zitat von himitsu:
Also es gibt dann wohl *3* 4 verschiedene Fälle, wie man Objekte in den published Properties behandeln müßte

1: es wird nur der Name gespeichtert und beim Laden wird ein vorhandenes Objekt gesucht (wie bei Form.ActiveControl)
2: es werden die Werte des darin enthaltenen Objektes gespeichtert/geladen
3: es wird, zusätzlich zu 2, auch noch das Objekt erstellt, wenn es beim Laden noch nicht existiert
4: es darf nichts gespeichert werden

Aber wie kann man das denn nun ordentlich unterscheiden, was zu machen wäre?

csSubComponent = 3 oder 2 ?
csTransient = 4
1. dürfte Probleme machen, wenn die Subkomponente keinen Namen hat - und das ist ja durchaus möglich wenn diese im Konstruktor der Hauptkompo erzeugt wird.

Ich würde jetzt sagen csSubComponent in der Regel 2 und csTransient immer 4 (entspricht ja auch der OH). Für 3. dürfte es eigentlich keine Verwendung geben, da wenn das Subproperty nicht erstellt ist der Komponentenentwickler dafür sorgen muß, daß es auf nil zeigt. Sonst würde es in der IDE im OI eh krachen.

Überlicherweise sind die OI Eigenschaften von Subkomponenten ja eigene Instanzen der Hauptkomponente die im Konstruktor und Desktruktor erstellt und freigeben werden. Wenn der Entwickler die Subkomponente ersetzt, erfolgt das ja überlicherweise zur Laufzeit (Assign o.ä.), also per Code. Mir ist auch kein Weg bekannt, das im OI anders zu handeln.

Also nehm' ich 2 und 4.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat