Freigeben über


AddObject-Methode

Fügt einem Container-Objekt zur Laufzeit ein Objekt hinzu.

Object.AddObject(cName, cClass [, cOLEClass] [, aInit1, aInit2 ...])

Parameter

  • cName
    Gibt den Namen an, mit dem auf das neue Objekt verwiesen wird.

  • cClass
    Gibt die Klasse des Objekts an, das hinzugefügt werden soll.

  • cOLEClass
    Gibt die OLE-Klasse des Objekts an, das hinzugefügt werden soll.

    Anmerkung   Wenn Sie Laufzeitanwendungen verteilen möchten, die ActiveX-Steuerelemente hinzufügen, für die Lizenzschlüsselinformationen erforderlich sind (wie z. B. Struktur- und Listenansicht-Steuerelemente von Microsoft), können Sie die AddObject(.....cOLEClass)-Methode nicht verwenden. Stattdessen können Sie eine Unterklasse Ihres ActiveX-Steuerelements in einer VCX-Klassenbibliothek erstellen und speichern. Zur Laufzeit können Sie mit Hilfe der AddObject-Methode (oder der NewObject-Methode) die OleControl-Klasse mit Ihrem Steuerelement hinzufügen.

  • aInit1, aInit2
    Gibt die Parameter an, die an das Init-Ereignis des neuen Objekts übergeben werden sollen.

Hinweise

Durch Aufrufen der AddObject-Methode wird das Init-Ereignis des hinzugefügten Objekts ausgelöst. Wenn einem Formularsatz ein Formular hinzugefügt wurde, tritt das Load-Ereignis vor dem Init-Ereignis ein.

**Anmerkung   **Wenn Sie mit AddObject einem Container ein Objekt hinzufügen, wird die Visible-Eigenschaft des Objekts auf Falsch (.F.) gesetzt, so dass Sie die Eigenschaften des Objekts einstellen können, ohne dass mit der sich ändernden Darstellung störende visuelle Effekte auftreten.

Wenn Sie die AddObject( )-Methode verwenden, um ein ActiveX-Steuerelement einem Formular dynamisch hinzuzufügen, kann die verteilte Anwendung fehlschlagen, wenn das Steuerelement für die Lizenzierung Registrierungschlüssel erfordert, die auf dem Zielcomputer nicht verfügbar sind. Bei vielen Anbietern von ActiveX-Steuerelementen werden Registrierungsschlüssel benötigt, um Steuerelemente z. B. mit der AddObject()-Methode zur Entwurfszeit zu bearbeiten. Sie können diese Lizenzanforderung umgehen, indem Sie zuerst das ActiveX-Steuerelement als Unterklasse in einer Klassenbibliotheksdatei (VCX) erstellen und dann mit der AddObject( )-Methode eine Instanz der Unterklasse zur Laufzeit dynamisch hinzufügen. Sie sollten immer Rücksprache mit dem Anbieter des ActiveX-Steuerelements halten, das Sie mit Ihrer angepassten Anwendung vertreiben möchten, da es möglicherweise weitere abhängige Dateien gibt, die Sie mit einschließen müssen.

Beispiel

Im folgenden Beispiel wird demonstriert, wie einem Formular mit Hilfe der AddObject-Methode Objekte oder Steuerelemente hinzugefügt werden können. AddObject wird hier verwendet, um einem Formular ein Linien-Steuerelement (Line) und drei Befehlsschaltflächen hinzuzufügen.

Die Visible-Eigenschaft wird für das Linien-Steuerelement (Line) und die Befehlsschaltflächen auf Wahr (.T.) festgelegt. Standardmäßig sind Objekte und Steuerelemente jedoch nicht sichtbar, wenn sie einem Formular hinzugefügt werden.

frmMyForm = CREATEOBJECT('Form')  && Create a Form
frmMyForm.Closable = .F.  && Disable the Control menu box 

frmMyForm.AddObject('shpLine','Line')  && Add a Line control to the form
frmMyForm.AddObject('cmdCmndBtn1','cmdMyCmndBtn1')  && Up Cmnd button
frmMyForm.AddObject('cmdCmndBtn2','cmdMyCmndBtn2')  && Down Cmnd button
frmMyForm.AddObject('cmdCmndBtn3','cmdMyCmndBtn3')  && Quit Cmnd button

frmMyForm.shpLine.Visible = .T.  && Make Line control visible
frmMyForm.shpLine.Top = 20  && Specify Line control row
frmMyForm.shpLine.Left = 125  && Specify Line control column

frmMyForm.cmdCmndBtn1.Visible =.T.  && Up Command button visible
frmMyForm.cmdCmndBtn2.Visible =.T.  && Down" Command button visible
frmMyForm.cmdCmndBtn3.Visible =.T.  && Quit Command button visible

frmMyForm.SHOW  && Display the form
READ EVENTS  && Start event processing

DEFINE CLASS cmdMyCmndBtn1 AS COMMANDBUTTON  && Create Command button
   Caption = 'Slant \<Up'  && Caption on the Command button
   Left = 50  && Command button column
   Top = 100  && Command button row
   Height = 25  && Command button height
   
   PROCEDURE Click
      ThisForm.shpLine.Visible = .F.  && Hide the Line control
      ThisForm.shpLine.LineSlant ='/'  && Slant up
      ThisForm.shpLine.Visible = .T.  && Show the Line control
ENDDEFINE

DEFINE CLASS cmdMyCmndBtn2 AS CommandButton  && Create Command button
   Caption = 'Slant \<Down'  && Caption on the Command button
   Left = 200  && Command button column
   Top = 100  && Command button row
   Height = 25  && Command button height

   PROCEDURE Click
      ThisForm.shpLine.Visible = .F.  && Hide the Line control
      ThisForm.shpLine.LineSlant ='\'  && Slant down
      ThisForm.shpLine.Visible = .T.  && Show the Line control
ENDDEFINE

DEFINE CLASS cmdMyCmndBtn3 AS CommandButton  && Create Command button
   Caption = '\<Quit'  && Caption on the Command button
   Cancel = .T.  && Default Cancel Command button (Esc)
   Left = 125  && Command button column
   Top = 150  && Command button row
   Height = 25  && Command button height

   PROCEDURE Click
      CLEAR EVENTS  && Stop event processing, close Form
ENDDEFINE

Siehe auch

Init-Ereignis | Load-Ereignis | NewObject-Methode | RemoveObject-Methode | Visible-Eigenschaft

Betrifft: Spaltenobjekt | Schaltflächengruppe-Steuerelement (CommandGroup) | Container-Objekt | Custom-Objekt | Datenumgebungsobjekt (DataEnvironment) | Formularobjekt (Form) | Formularsatz-Objekt (FormSet) | Datenraster-Steuerelement (Grid) | Optionsgruppen-Steuerelement (OptionGroup) | Seitenobjekt (Page) | Seitenrahmen-Steuerelement (PageFrame) | _SCREEN-Systemvariable | Symbolleisten-Objekt