COM Erstellen von COMServern in Visual Fox Pro
- Slides: 20
COM Erstellen von COM-Servern in Visual Fox. Pro 9. 0 deutschsprachige Fox. Pro User Group Rainer Becker Microsoft Visual Fox. Pro 9. 0 Roadshow
Component Object Model n n n COM (Component Object Model) ist ein Microsoft Standard, der es anderen Applikationen, wie zum Beispiel Active Server Pages oder Microsoft Office erlaubt, auf Funktionalität der eigenen Applikation zuzugreifen Man kann jedem Client, der COM-Objekte ansprechen kann, über COM beliebige Funktionalität zur Verfügung stellen Dies gilt also bi-direktional (von/aus VFP)
Bekannte COM-Server I n n Microsoft Word und Microsoft Excel VFP kann auf diese Applikationen als Client problemlos zugreifen, o. Word= createobject(„Word. Application“) n n Die Funktionalität eines COM-Servers kann man im VFP Objekt Browser sehen Intellisense unterstützt VFP bzgl. der benötigten Methoden und Eigenschaften z. B. local o. Excel as ‚Excel. application‘
Bekannte COM-Server II n n n Der COM Client (z. B. der Object Browser) kann die verfügbare Funktionalität eines COM-Servers über die sogenannte Type Library erfahren Indem man andere COM-Server in eigenen VFP Projekten verwendet, kann man VFP-Funktionalität beliebig erweitern. z. B. Excel für alle Rechenaufgaben einsetzen. . . Das Ansteuern eines anderen COM-Servers nennt man auch OLE-Automation
COM-Objekt n COM-Server benötigt ein Objekt OLE-Public n Es muss sich nicht um ein Geschäftsobjekt handeln n n Es muss sich um ein Objekt handeln n n Sehr oft sind die eigentlichen Geschäftsobjekte nicht wirklich für einen Aufruf von außen geeignet! Zumindest ein Wrapper-Objekt für Funktionen ist notwendig Basierend auf einer Klasse (Control/Container) n n Aufruf via „createobject“ aus anderen Anwendungen Methoden/Eigenschaften sind sichtbar/modifizierbar und müssen daher geschützt werden (siehe unten)
OLE Public / Erstellungsoptionen
EXE / DLL (single/multi) n Ein In-Process COM-Server ist eine DLL welche im Speicherbereich des Clients instanziiert wird. Diese COM Server Art kann keine direkte Interaktion mit dem User Interface haben OLE Fehler wird erzeugt n Single Threaded: Jede Clientanwendung erhält eine eigene Instanz des COM Servers n Multi Threaded: Verschiedene Clientanwendung können sich die gleiche Instanz des COM Servers „teilen“ n n Details beziehen sich auf Einsatz der COM Server unter MTS/COM+ Ein Out-of-Process COM-Server ist eine EXE, welche in einem eigenen Speicherbereich läuft. n Dieser COM-Server kann ein User Interface haben!
Type Libraries n Die Type Library ist eine binäre Datei welche alle öffentlichen Klassen des COM Servers mit deren Methoden, Attributen und Events beschreibt. Eine Type Library kann vorliegen als: n n n Ein eigene binäre Datei (. TLB, . OLB) Integriert in eine DLL In eine EXE hineinkompiliert In ein Active. X Control integriert Wenn Sie ein Projekt mit OLEPUBLIC Klassen unter VFP kompilieren erhalten Sie 3 Dateien: n n n Die DLL oder EXE mit dem Projektnamen Eine Type Library (. TLB) Eine Registry Datei (. VBR)
COM-Server Dokumentation n n Andere Entwickler welche Ihre Komponenten verwenden, erhalten nur die Information welche Sie in der Description (Beschreibung) abgelegt haben (Klasse, Attribute, Methoden) COM Server Methoden sollten daher in der Beschreibung enthalten: n Beschreibung der zu übergebenden Parameter n High-Level Beschreibung der Methode n Was macht die Methode n Beschreibung des Return Wertes
Bessere Dokumentation in PRG! n n COMATTRIB (nur in PRG Dateien): n Festlegen welchen Status eine Property/Methode hat (n. Flags bzw [1]) n Restricted, Hidden, Non. Browsable n Hilfe String festlegen [2] n Gross/Kleinschreibung erhalten (Capitalisation) [3] n Property. Typ angeben [4] n Anzahl Parameter [5] Diese Einstellungen wandern nur in die TLB (reine Information) und werden nicht enforced n Es erfolgt also keine tatsächliche Typprüfung o. ä.
Beispiel programmatisch DEFINE CLASS Prg. Demo AS Session OLEPUBLIC PROCEDURE Get. Date. Time RETURN "Timestamp: "+TRANSFORM(DATETIME()) ENDPROC Get. Date. Time_COMATTRIB = COMATTRIB_NONBROWSABLE i. Anzahl = 0 DIMENSION i. Anzahl_COMATTRIB[4] i. Anzahl_COMATTRIB[1] = COMATTRIB_READONLY i. Anzahl_COMATTRIB[2] = „Anzahl der Einträge“ && Hilfe i. Anzahl_COMATTRIB[3] = „i. Anzahl“ && Gross/Kleinschr. i. Anzahl_COMATTRIB[4] = „Integer“ && Typ Angabe. . .
Access/Assign und Parameter n Geschützte Methoden / Eigenschaften n n Kleine Schnittstelle: Eigenschaften / Methoden ausblenden Extensive Parameterprüfung in Methoden Zugriffs-Methoden für Eigenschaften verwenden Assign- & Access-Methoden n n Vartype und gültige Werte (Werteliste, Datum usw. ) Formattierung (Großbuchstaben, Leerzeichen) Schreibgeschützte Eigenschaften Ausschließlich interner Zugriff (hidden property switch)
Sonstige Vorbereitungen n Überprüfung des Startmodus INLIST( _vfp. startmode, 2, 3, 5 ) n Automation Server Unattended Mode ausschalten =SYS(2335, 1) n Fehlerbehandlung integrieren =COMRETURNERROR n n Sollte auch aus Access/Assign-Methoden aufgerufen werden Setzen Sie alle Ihre Einstellungen n Uralt: Strg+OK liefert alle Optionen…
Projektdefinition n Hauptprogramm hinzufügen… n n n Tabellen für Steuerdaten inkludieren Config. fpw inkludieren n n Testprogramm eignet sich dafür SCREEN = OFF (kein VFP-Desktop sichtbar) RESOURCE=OFF (keine Anlage Foxuser. dbf) ALLOWEXTERNAL=ON (zusätzliche config. fpw mögl. ) Sichtbar schalten sofern sinnvoll
Ausführung des COM-Servers n Beispiel in Excel: n n n Dim lo. Ref as Object On Error Goto Some. Error Set lo. Ref = createobject(„exe. obj“) … other operations Set lo. Ref = Nothing Excel-Entwickler lieben VFP-Datenzugriff, da er viel einfacher für Sie ist als ODBC/ADO!
Type. Lib-Abfrage n n Der Object Browser (Objektkatalog) kann Type Libraries auslesen und anzeigen Informationen zu einem COM-Server können per Drag & Drop in VFP übernommen werden
Registrierung COM-Server n n Wenn Sie aus einem VFP Projekt einen COM Server kompilieren, dann werden alle OLE Public Klassen automatisch auf dem lokalen Rechner registriert Wenn Sie mit den gängigen Installations-tools (Installshield, Wise. . ) ein Setup erstellen, so werden die COM Komponenten automatisch auf dem Rechner registriert Sie können dies auch manuell mit Hilfe der Windows Tools Reg. Server, Un. Reg. Server und Reg. Srv 32 erledigen Wenn VFP nicht installiert ist, muss zuerst die VFP Runtime installiert werden, damit der COM-Server lauffähig ist!
Auslieferung des COM-Servers n Laufzeitverzeichnis enthält n n n n <Ihr. Server>. exe VFP 9 R. DLL, VFP 9 RENU. DLL GDIPLUS. DLL REGSVR 32. EXE MSVCR 71. DLL in system 32 Regsvr 32. exe vfp 9 r. dll <Ihr. Server>. exe /regserver
Querverweise n 06 -17 Entwickeln und Debuggen von COM Servern
Vielen Dank! Besuchen Sie unsere Webseiten: http: //www. dfpug. de, http: //portal. dfpug. de, http: //forum. dfpug. de, http: //newsletter. dfpug. de, http: //devcon. dfpug. de, http: //roadshow. dfpug. de, http: //www. visualextend. de, http: //www. linuxtransfer. de, http: //www. visualfoxpro. de
- Fox pro 6
- Xmltocursor
- Visual profox
- Visual fox pro
- Visual fox pro 6.0
- Dậy thổi cơm mua thịt cá
- Cơm
- Erasmus von rotterdam beeinflusst von
- Wind von backbord weicht wind von steuerbord
- Macro pro
- Stufenplan erstellen
- Learning snacks erstellen
- Geogebra funktionsplotter
- Mendeley word 2013
- Auftragskalkulation
- Courselets erstellen
- 1home kosten
- Schülerbeurteilungen erstellen
- Appsorg
- Datenbank konzept
- Preis absatz funktion excel