Session D-GALL

Einführung in die Component Gallery

Norbert Abb
Wizards & Builders GmbH


Einleitung

Die Component Gallery ist eines der neuen Elemente in VFP 6.0.  Mit der Component Gallery ist es möglich Objekte aller Art (Klassen, Dateien, Controls usw.) in einen ‚frei wählbaren‘ Zusammenhang zu bringen. Man kann sich also ein eigenes Set von Objekten aller Art zusammenstellen. Das User Interface der Gallery ist ähnlich dem Explorer aufgebaut mit einem Treeview links und einem Detailfenster auf der rechten Seite. In der Component Gallery werden auch die VFP Foundation Classes verwaltet.

User Interface

Aussehen

Die Component Gallery wird gestartet über das Menü ‚Tools‘ ‚Component Gallery‘. Die Anwahl dieses Menüs führt das in der System Variablen Gallery abgelegte Programm aus. D.h. auch der Befehl do (_Gallery) startet das Tool. Dieses Verhalten ist also genauso wie beim Class Browser.

Das Fenster der Gallery ist zweigeteilt wie beim Windows Explorer auf der linken Seite ist die Struktur der unterschiedlichen Kataloge zu sehen rechts jeweils die Inhalte. Die rechte Seite kann ebenso wie beim Explorer in unterschiedlichen Ansichten angezeigt werden.

Views

Über die Combobox im Toolbar kann die Ansicht für die Gallery ausgewählt werden. Einige Ansichten sind vordefiniert enthalten und können weder gelöscht noch manipuliert werden. Man kann sich allerdings beliebige Ansichten auf die verschiedenen Elemente der Gallery erstellen. Die Elemente, die dargestellt werden sollen können als ‚Dynamic View‘ definiert werden. Dabei kann die Selektion aus allen, oder einem Teil der Kataloge erfolgen. Als Beispiel kann man alle Word Dokumente ‚ausfiltern‘:

Elemente einfügen

Neue Elemente können entweder über einen Rechtsklick, oder per Drag & Drop eingefügt werden. Elemente können alle möglichen Objekte sein. Es kann sich um Dateien handeln, wie z.B. Word Dokumente oder Grafiken. Es können auch Controls sein, oder Web Adressen. Besonders interessant ist jedoch, daß in diesem Tool einzelne Klassen als Objekte verwaltet werden können und nicht nur als Klassenbibliotheken. Dies wird auch genutzt für die vorbereiteten Basis Klassen, sowie die ‚Foundation Classes‘.

Class Browser

Der Class Browser kann direkt aus der Component Gallery aufgerufen werden über das icon rechts neben der Combobox, oder wenn man eine Klasse in der Component Gallery angewählt hat kann diese per Kontextmenü (Rechtsklick) im Class Browser dargestellt werden.

Aus dem Class Browser kann man ebenfalls mit dem Icon rechts neben der Combo Box in die Component Gallery zurückspringen.

Optionen

Die Optionen für die Gallery können über den Optionen Dialog (Aufruf über drittes Icon neben Combobox) eingestellt werden. Dort können eigene Kataloge und Ansichten definiert werden.

Arbeiten mit der Component Gallery

Neue Kataloge

Eigene Kataloge können über den Optionen Dialog eingefügt werden. Dabei muß eine Tabelle für diesen Katalog erstellt werden. In dieser Tabelle werden dann die Einträge des Kataloges verwaltet.

Suchen

Über das ‚Suchen‘ Icon können Objekte in der Component Gallery gesucht werden. Der Dialog ist der gleiche wie bei der Definition eines Dynamischen Views in den Optionen und tatsächlich wird auch für jeden Suchvorgang ein View angelegt.

Externe Applikationen

Werden Elemente in der Gallery per Doppelklick aufgerufen so wird falls es sich um eine ‚nicht VFP‘ Datei handelt die entsprechende Applikation aufgerufen falls eine solche Verknüpfung besteht.

Es ist auch möglich externe Applikationen aus der Gallery heraus aufzurufen. Dadurch ergibt sich die Möglichkeit weitere benötigte Tools direkt aus der Gallery aufrufen zu können. Man kann sich eine persönliche Arbeitsumgebung in der Gallery zusammenstellen.

Drag & Drop

Objekte können aus dem Explorer in die Gallery gezogen werden. Objekte aus der Gallery können in VFP Forms oder Klassen (im jeweiligen Designer) gezogen werden.

Möglichkeiten

Man hat also die Möglichkeit sich für ein Projekt beispielsweise alle benötigten Informationen, Tools und externen Hilfs oder Dokumentationsdateien in einem Katalog zusammenzufassen. Dadurch ist es möglich schnell und unkompliziert aus der VFP Umgebung in alle benötigten sonstigen Tool zu springen.

Foundation Classes

Base Classes

Mit VFP 6.0 wird eine Klassenbibliothek (ffc\_base.vcx) ausgeliefert, in der bereits alle VFP Klassen einmal als Vererbung vorhanden sind. Die Namen der Klassen beginnen mit einem ‚_‘. Von diesen Klassen sind alle FFC Klassen (FoxPro Foundation Classes abgeleitet). Es empfiehlt sich Anpassungen, die man selbst an den Basisklassen machen möchte nicht direkt in diesem Klassen zu arbeiten, da diese mit neuen Versionen von MS überspielt werden können, sondern sich zwischen die ursprünglichen FoxPro Klassen und diese _base Klassen einzuklinken.

Komplexere Klassen

Bei VFP 6.0 werden außer den eben genannten Basisklassen weitere Gruppen von Klassen geliefert, die bestimmte Funktionalitäten (wie z.B. Media File Zugriff, oder Registry Zugriff) zur Verfügung stellen.

Die komplexeren Klassen werden mit eigenen Buildern geliefert um die Verwendung dieser Klassen als Komponenten zu vereinfachen.

Der Umfang dieser Klassen geht vom einfachen Button über Dialoge (Passwort) bis zu Moverboxen.

Das ‚Framework‘

Foundation Classes

Bei VFP 6.o wird ein einfaches ‚Framework‘ für Applikationen mitgeliefert. Es dient dazu einem Einsteiger zu ermöglichen schnell erste Erfolg beim Bau von Applikationen zu vermitteln.

Das Framework ist auf den bereits vorgestellten Foundation Classes aufgebaut. Dadurch ist es möglich eigene Anpassungen in den Foundation Classes anzubringen und damit das Framework zu beeinflussen.

Der Application Wizard

Der Application Wizard erstellt nur einen Rahmen für ein Projekt. Es wird eine Klassenbibliothek angelegt sowie das Hauptmenü und das Startprogramm. Das weitere Aufbauen des Projektes geschieht mit dem Application Builder, der auch direkt aufgerufen wird.

Der Application Builder

Mit dem Application Builder kann die gesamte Applikation nach den Bedürfnissen des Benutzer (im Rahmen des Frameworks) angepaßt werden. Es ist damit möglich eine einfache Applikation durch den Builder geführt zu erstellen. Für Neuanwender kann dies interessant sein um schnell erste Erfolge zu erzielen.

Für den erfahrenen Entwickler, der eventuell auch schon ein Framework einsetzt (selbstgebaut, oder gekauft), kann es interessant sein manche Klassen aus den Foundation Classes in der eigenen Applikation zu verwenden wie z.B. die Registry Access Klasse um die Registry zu lesen und zu manipulieren.

Zusammenfassung

Component Gallery

Die Component Gallery bietet eine Möglichkeit unterschiedlichste Objekte (im allgemeinen Sinn von Objekten) zusammen an einer Stelle zu verwalten selbst wenn sie im Dateisystem an den unterschiedlichsten Stelle zu finden sind. Es ist damit möglich sich eine VFP zentrierte Entwicklungsumgebung zu bauen. Per Default sind die Foundation Classes und der Application Wizards (samt Builder) in die Gallery eingebunden. Es können eigene Kataloge und Ansichte definiert werden.

Das Verhalten der Gallery scheint nicht immer konsistent (Drag & Drop, Kataloge). Manchmal verschwinden Definitionen. Das Arbeiten mit dem Tool ist nicht immer intuitiv (Zusammenarbeit Class Browser).

FFC und Framework

Die Foundation Classes und der Application Builder kommen ein paar Releases zu spät. Die meisten Entwickler werde sich mittlerweile ein Framework besorgt haben, entweder gekauft und angepaßt, oder selbst gebaut.

Daher muß das Framework  als Lockmittel für Neuanwender gesehen werden. Es ist damit möglich sich schneller in VFP einzuarbeiten und erste Erfolge zu haben.

Die FFC Klassen können allerdings auch recht unabhängig in eigenen Projekten verwendet werden, man sollte sich einmal die Mühe machen sie durchzugehen.

Wenn man sich genauer mit dem Framework beschäftigen möchte so hat man die Möglichkeit dazu: Der Sourcecode zu allen Komponenten wird mitgeliefert und man kann sich das Framework und auch den Application Builder nach eigenen Bedürfnissen anpassen. Dies erfordert allerdings zum Einen ein tieferes Verständnis des Frameworks und zum Anderen einiges an Arbeit. Wäre das Framework in dieser Form bereits bei der ersten Version von VFP mitgeliefert worden, so wären aus diesem Ansatz sicher einige Frameworks mit weiteren Möglichkeiten entstanden.