Builder / GeneratorenBuilder heißt soviel wie Erbauer. Erbauer sind Personen, die etwas erschaffen. Solche Erbauer gibt es auch in VFP. Dort heißen sie Steuerelementeassistenten (VFP 3.0/5.0) oder neuerdings Generatoren (VFP 6.0). Mit ihnen können Sie ganze Applikationen bauen oder auch nur eine Maske erstellen. In VFP gibt es zum einen die mit VFP ausgelieferten Standardgeneratoren oder die Generatoren, welche von Frameworks zur Verfügung gestellt werdem, um dort die Arbeit zu optimieren. Das Problem bei diesen Generatoren ist, daß sie alle sehr komplex zu programmieren sind, und auch die Integration über die Builder.dbf etwas umständlich ist. Seit VFP 5.0 gibt es nun eine weitere Möglichkeit; diese Technologie sehr schnell und einfach zu benützen: Der Trick besteht in der Verwendung eines Properties mit dem Namen Builder ( in jeder beliebigen visuellen Klasse). Legen Sie (z.B.: an einer Form) ein solches Property an, füllen Sie das neue Property mit dem Wert BldTest.Prg. Anschließend erzeugen Sie ein neues Programm mit dem Namen BldTest.prg. In dieses Programm schreiben Sie die folgenden Zeilen:
LParameter toObject, tcFrom Acti Screen ? Name des Objects, toObject.Name ? Builder wurde gestartet von:, tcFrom
Starten Sie nun den Generator durch Auswahl mit der rechten Maustaste. Was passiert? Sobald dieses BUILDER-Property existiert, ruft VFP jetzt nicht mehr den Standardgenerator auf, sondern direkt das eingetragene Programm. Dem Programm wird die Referenz auf das aktuelle Objekt und eine Kennung, von wo der Generator gestartet wurde, übergeben. Da das Formular im Design-Modus bereits ein lebendes Objekt ist, können Sie alle erlaubten Aktionen und Änderungen an dem Objekt bereits in diesem Programm durchführen. Sie sind dabei nicht nur auf ein "echtes" Programm beschränkt. In der folgenden Übersicht sind die mir bekannten Möglichkeiten einmal aufgelistet.
ToolsTool steht im Englischen für Werkzeug. Genau wie in einer Werkstatt gibt es große und kleine Werkzeuge und Hilfsmittel. VFP steht z.B. für ein großes Werkzeug. Dann gibt es (in unserer Welt) auch noch viele kleine Helferlein. Drei davon möchte ich Ihnen hier vorstellen. CEEWie im richtigen Leben gibt es einfach Sachen, die dürfen nicht fehlen. Dazu gehört auch der CEE (Cobb's Editor Extensions). Schon in den Versionen vor VFP5 (bevor also die Entwickler bei Microsoft das Rightclick-Menü in VFP endeckt haben J ) bot der CEE viele Funktionen an, die jetzt im Rightclick-Menü verfügbar sind (z.B.: Sourcecode formatieren oder Textblöcke einrücken). Der CEE kann aber natürlich noch mehr. Wenn Sie den CEE aktiviert haben, geben Sie doch einfach mal im Befehlsfenster HEADER ein und setzen dann ein Leerzeichen dahinter. Aus dem HEADER macht der CEE dann einen kompletten Programmkopf.... D.h. Sie können Schlüsselworte definieren und diese dann vom CEE ersetzen lassen. Mit der installierten Version erhalten Sie bereits eine sehr umfangreiche Sammlung von Makros. Probieren Sie es einfach mal aus. Eingebunden wird der CEE durch den Aufruf der CEE.APP, am besten durch das Woodystartmenü (Was das wiederum ist, sehen wir gleich...)
Ach ja, in der Version 7 von VFP wird es voraussichtlich auch eine ähnliche Editorerweiterung geben .... ... Was gut ist, setzt sich eben auch durch! WoodystartWoodystart ist auch so ein Werkzeug, welches nun auch schon eine Weile gibt (genau genommen schon seit FoxPro/DOS 2.0) Es ersetzt das normale Systemmenü, und bietet damit eine schnelle Möglichkeit, die IDE (also ihre tägliche Arbeitsumgebung) mit einfachen Funktionen flexibel zu erweitern. Ein Beispiel ist die Funktion DBF-Shared/Excl. Damit können sie den Zugriffsmodus einer geöffneten Tabelle auf Tastendruck umwechseln. Oder vielleicht die Funktion Messagebox. Diese bietet einen Dialog, in dem sie einen MessageBox() Aufruf zusammenstellen können. Alles Funktionen aus dem Bereich klein aber fein. Aktiviert wird das Woodstartmenu durch die folgende Zeile in der Config.Fpw
_STARTUP=C:\VFP98\WOODYSTART\WOODYSTART.MPR
Danach wird die aktuell verwendete Config.fpw wie eine INI-Datei ausgewertet, und entsprechend das Menü aufgebaut. Dies funktioniert, weil FoxPro alle ihm unbekannten Einträge in der Config.fpw ignoriert. Dadurch können Sie z.B. auch eine einfache Projektverwaltung erstellen. Dazu müssen Sie nur in der Config.Fpw folgenden Eintrag machen:
[PROJEKTE] ProjektName01=Testprojekt ProjektPfad01=c:\Test\Test.Pjx Im Menü steht Ihnen dann ein neuer Eintrag Testprojekt zur Verfügung. Wenn Sie diesen aktiveren, wird das Projekt geöffnet und der zugehörige Defaultpfad gesetzt. Wenn Sie schon mal die Config.Fpw geöffnet haben, machen sie doch auch gleich den folgenden Eintrag:
[AUTOSTART] DO C:\VFP98\CEE6\CEE6.APP In der Sektion Autostart können Sie also beliebige VFP-Programmzeilen hinterlegen, die beim Start der IDE ausgeführt werden. Also auch so Sachen wie :
[AUTOSTART] _SCREEN.CAPTION = STRTRAN(VERS(), "00.00.","") && Titelzeile ändern _SCREEN.BACKCOLOR = 8454143 && zartes Gelb _SCREEN.FONTNAME = "Andale Mono" && eine lesbare Schrift _SCREEN.FONTSIZE = 10 Wenn Sie nun noch für verschiedene VFP-Konfigurationen sich unterschiedliche Links auf dem Windows-Desktop anlegen, und dabei über den Aufrufparameter c auf unterschiedliche CONFIG.FPWs zugreifen, so steht einem stressfreien Projektmanagement fast nichts mehr im Wege (na ja, bis auf den Auftragsgeber...) Geändert wird Woodystart über einen eigenen Menüpunkt, indem man entweder direkt Einträge in der Config.fpw macht, oder direkt im Menüdesigner seine Funktionen hinterlegt. Danach Generieren nicht vergessen! Übrigens: Der im obigen Autostart zugewiesene Zeichensatz "Andale Mono" ist von Microsoft und kann entweder frei vom Web heruntergeladen werden, oder sie sehen mal auf die Konferenz-CD J. Dieser Font ist, genauso wie Courier New, ein nichtproporionaler Font, hat aber den Vorteil, daß man z.B. Oh und Null oder Klein-L und Groß-i viel besser unterscheiden kann. Tja, und nebenbei liest sich auch noch besser. OPTUTILIst eigentlich nur etwas für Sie, wenn Sie an mehr als einem Projekt arbeiten. Sie haben nun die Möglichkeit, die Klassenzuordnung zu Feldern in verschiedenen Versionen zu speichern und zwischen diesen Versionen umzuschalten. Dadurch können Sie relativ einfach sicherstellen, daß bei Masken, die Sie durch Drag & Drop erstellen, auch immer die Klassen des jeweiligen Projektes verwendet werden. Sollten Sie jedoch ständig an einem Projekt arbeiten, dann brauchen Sie eine solche Funktionalität sicher nicht. Aber selbst dann können Sie es immer noch als praktisches Beispiel für die Funktionen aus dem Registry.Prg betrachten.... Sicherlich sind das nicht alle nützlichen Tools, die es für VFP gibt. Es sind jedoch die (Freeware) Programme, die in keiner IDE fehlen sollten. Auf der Begleit-CD finden Sie noch einige weitere Tools aus der Reihe Was man immer wieder braucht.
|