Freigeben über


Steuern von Visual FoxPro über andere Anwendungen

Da Visual FoxPro sowohl als Server (mit Ebene 2-Entsprechung) als auch als Client arbeitet, können Anwendungen, die Automatisierung unterstützen, Instanzen von Visual FoxPro erstellen, Visual FoxPro-Befehle ausführen und auf Visual FoxPro-Objekte zugreifen.

Sie können in Visual FoxPro auch von Anwendungen aus arbeiten, die keine Automatisierung unterstützen, indem Sie Fpole.dll einbinden.

Sie steuern Visual FoxPro von anderen Anwendungen aus, indem Sie das Visual FoxPro-Anwendungsobjekt verwenden. Ein Anwendungsobjekt wird immer dann automatisch erstellt, wenn Visual FoxPro entweder direkt über DDE oder per Automatisierung gestartet wird.

Beispielsweise können Sie mit den folgenden Codezeilen in Visual Basic® oder in einem Microsoft Excel-Modul einen Verweis auf ein Visual FoxPro-Anwendungsobjekt erstellen:

Dim oFox as Object
Set oFox = CreateObject("VisualFoxPro.Application")

Nachdem der Verweis auf das Visual FoxPro-Anwendungsobjekt besteht, können Sie Methoden aufrufen, die mit dem Anwendungsobjekt verbunden sind, und über die Collection-Eigenschaften des Anwendungsobjekts auf andere Objekte zugreifen.

Methoden des Anwendungsobjekts

DataToClip Help
DoCmd Quit
Eval RequestData

Im folgenden Beispiel wird mit Code, der in Visual Basic für Applikationen geschrieben wurde, in einem Excel-Modul ein Visual FoxPro-Anwendungsobjekt erstellt, eine Visual FoxPro-Tabelle geöffnet und schließlich die Ergebnisse einer Abfrage zum aktiven Tabellenblatt hinzugefügt:

Sub FoxTest()
Dim oFox as Object
Set oFox = CreateObject("VisualFoxPro.Application")

oFox.DoCmd "USE customer"
oFox.DoCmd "SELECT contact, phone FROM customer 
   WHERE country = " + Chr$(39) + USA+ Chr$(39) + " INTO CURSOR cust"
oFox.DataToClip "cust",,3
Range("A1:B1").Select
ActiveSheet.Paste
End Sub

Das Visual FoxPro-Anwendungsobjektmodell

Ein Anwendungsobjekt wird immer dann automatisch erstellt, wenn Visual FoxPro entweder direkt über DDE oder per Automatisierung gestartet wird. Dieses Anwendungsobjekt ermöglicht Ihnen über die Collection-Eigenschaften Zugriff auf alle anderen während einer Visual FoxPro-Sitzung erstellten Objekte.

Visual FoxPro-Anwendungsobjektmodell

Zugreifen auf Objekte über die "Collection"-Eigenschaften

Dem Visual FoxPro-Anwendungsobjekt und allen Container-Objekten in Visual FoxPro ist eine Count-Eigenschaft und Collection-Eigenschaft zugeordnet. Die Collection-Eigenschaft ist ein Array, das auf jedes Objekt im Container verweist. Die Count-Eigenschaft ist eine numerische Eigenschaft, die die Anzahl der Objekte in einem Container angibt.

Die folgende Tabelle enthält die Objekte und die entsprechenden Eigenschaften Collection und Count.

Objekt Collection-Eigenschaft Count-Eigenschaft
Application Objects-Auflistung
Forms-Eigenschaft
Count-Eigenschaft
FormCount-Eigenschaft
Formularsatz-Objekt (FormSet) Forms FormCount
Formularobjekt Objects-Auflistung
Controls-Eigenschaft
Count-Eigenschaft
ControlCount-Eigenschaft
PageFrame-Steuerelement Pages PageCount
Seitenobjekt (Page) Controls ControlCount
Datenraster-Steuerelement (Grid) Columns ColumnCount
Schaltflächengruppe-Steuerelement Buttons ButtonCount
Optionsgruppen-Steuerelement (OptionGroup) Buttons ButtonCount
Spaltenobjekt Controls ControlCount
Symbolleisten-Objekt Controls ControlCount
Container-Objekt Controls ControlCount
Control-Objekt Controls ControlCount

Mit Hilfe dieser Eigenschaften können Sie eine programmgesteuerte Schleife zum Verwalten aller oder bestimmter Objekte verwenden. Beispielsweise stellt der folgende Code die Visible-Eigenschaft aller Formulare auf Wahr (.T.) ein.

FOR EACH Form IN Application.Forms
   Form.Visible = .T.
ENDFOR

Siehe auch

Einteilen von Objekten in untergeordnete Klassen | Erstellen von Automatisierungsservern | Freigeben von Informationen und Hinzufügen von OLE | Fpole.dll | Verwenden von Remoteautomatisierung