Vorbereitung der Klassenerzeugung
Klassen möchten Sie eventuell in vielen verschiedenen Zusammenhängen verwenden können. Eine intelligente Planung hilft Ihnen bei der Entscheidung, welche Klassen zu entwerfen sind und welche Funktionen in eine Klasse einbezogen werden sollen.
Entscheiden, wann Klassen zu erstellen sind
Theoretisch könnten Sie für jedes einzelne jemals zu verwendende Steuerelement und Formular eine eigene Klasse erstellen; dies wäre jedoch nicht besonders effektiv. Wahrscheinlich besäßen Sie am Ende viele verschiedene Klassen, die zwar ähnliche Funktionen erfüllen, jedoch separat verwaltet werden müssten.
Zusammenfassen generischer Funktionalität
Sie können eine Steuerelementklasse für generische Funktionalität erstellen. Beispielsweise lassen sich Befehlsschaltflächen, mit denen ein Benutzer den Datensatzzeiger in einer Tabelle verschieben kann, eine Schaltfläche zum Schließen eines Formulars sowie eine Hilfeschaltfläche als Klassen speichern. Diese Klassen können dann zu Formularen hinzugefügt werden, wenn diese die vorgesehenen Funktionen bieten sollen.
Sie können Eigenschaften und Methoden in einer Klasse offenlegen, damit der Benutzer sie in die jeweilige Datenumgebung eines Formulars oder Formularsatzes integrieren kann.
Schaffen einer einheitlichen Darstellung und intuitiven Zugriffs für die Anwendung
Sie können Formularsatz-, Formular- und Steuerelementklassen mit einer charakteristischen Darstellung erstellen, so dass alle Komponenten Ihrer Anwendung gleich aussehen. So könnten Sie z. B. einer Formularklasse Grafiken und bestimmte Farbmuster hinzufügen und diese Klasse dann als Vorlage für sämtliche zu erstellenden Formulare verwenden. Sie können z. B. eine Textfeldklasse mit einer besonderen Darstellung wie einer Schattierung erstellen und diese Klasse in Ihrer gesamten Anwendung immer dann verwenden, wenn Sie ein Textfeld hinzufügen möchten.
Entscheiden, welcher Klassentyp zu erstellen ist
Visual FoxPro ermöglicht es Ihnen, mehrere Arten von Klassen, jede mit eigenen Eigenschaften, zu erstellen. Sie geben den gewünschten Klassentyp entweder im Dialogfeld "Neue Klasse" oder mit der AS-Klausel des Befehls CREATE CLASS an.
Die Visual FoxPro-Basisklassen
Im Klassen-Designer können Sie Unterklassen zu den meisten Visual FoxPro-Basisklassen erstellen:
Visual FoxPro-Basisklassen
* Da diese Klassen ein integraler Bestandteil eines übergeordneten Containers sind, lassen sich im Klassen-Designer keine Unterklassen dazu bilden.
Alle Visual FoxPro-Basisklassen erkennen zumindest die folgenden Ereignisse:
Methode | Beschreibung |
---|---|
Init | Tritt auf, wenn das Objekt erstellt wird. |
Destroy | Tritt auf, wenn das Objekt aus dem Arbeitsspeicher gelöscht wird. |
Error | Tritt immer dann auf, wenn in Ereignis- oder Methodenprozeduren dieser Klasse ein Fehler auftritt. |
Alle Visual FoxPro-Basisklassen haben mindestens die folgenden Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
Class | Legt den Klassentyp fest. |
BaseClass | Legt die Basisklasse fest, von der die Klasse abgeleitet wurde, wie z. B. Form, CommandButton, Custom usw. |
ClassLibrary | Die Klassenbibliothek, in der die Klasse gespeichert ist. |
ParentClass | Die Klasse, aus der die aktuelle Klasse abgeleitet wurde. Wurde die Klasse direkt aus einer Visual FoxPro-Basisklasse abgeleitet, ist die ParentClass-Eigenschaft die gleiche wie die BaseClass-Eigenschaft. |
Erweitern der Visual FoxPro-Basisklassen
Zu diesen Klassen können Sie Unterklassen erstellen, um Ihre eigenen Standardeigenschaften für Steuerelemente festzulegen. Wenn z. B. die Standardnamen von Steuerelementen, die Sie Formularen in Ihren Anwendungen hinzufügen, automatisch Ihre Benennungskonventionen widerspiegeln sollen, könnten Sie hierfür Klassen erstellen, die auf den Basisklassen von Visual FoxPro basieren. Sie können Formularklassen mit einer speziell angepassten Darstellung oder Verhalten erstellen, die als Vorlagen für alle künftig erstellten Formulare dienen sollen.
Unterklassen zu den Visual FoxPro-Basisklassen können Sie auch erstellen, um Steuerelemente mit gekapselten Funktionen zu erstellen. Wenn beispielsweise eine Schaltfläche beim Klicken Formulare freigeben soll, können Sie eine auf der Commandbutton-Klasse basierende Klasse erstellen, deren Caption-Eigenschaft auf Beenden einstellen und in das Click-Ereignis den folgenden Befehl einfügen:
THISFORM.Release
Diese neue Schaltfläche können Sie zu jedem Formular in Ihrer Anwendung hinzufügen.
Erstellen von Steuerelementen mit mehreren Komponenten
Ihre Unterklassen sind nicht auf einzelne Basisklassen beschränkt. Sie können mehrere Steuerelemente in einer einzigen Containerklassendefinition zusammenfassen. Viele der Klassen in der Beispielklassenbibliothek von Visual FoxPro gehören zu dieser Kategorie.
Erstellen von nichtvisuellen Klassen
Eine Klasse, die auf der Visual FoxPro-Klasse Custom basiert, enthält kein visuelles Laufzeitelement. Mit Hilfe der Umgebung des Klassen-Designers können Sie Methoden und Eigenschaften für Ihre benutzerdefinierte Klasse erstellen. Beispielsweise könnten Sie die benutzerdefinierte Klasse StrMethods
erstellen und darin mehrere Methoden zum Bearbeiten von Zeichenfolgen einbeziehen. Diese Klasse könnten Sie zu einem Formular mit einem Bearbeitungsfeld hinzufügen und die integrierten Methoden bei Bedarf aufrufen. Eine Methode namens WordCount
könnten Sie dann folgendermaßen aufrufen:
THISFORM.txtCount.Value = ;
THISFORM.StrMethods.WordCount(THISFORM.edtText.Value)
Nichtvisuelle Klassen (wie benutzerdefinierte Steuerelemente und das Zeitgeber-Steuerelement) werden nur während der Entwurfszeit im Formular-Designer visuell dargestellt. Legen Sie daher die Picture-Eigenschaft der benutzerdefinierten Klasse auf die BMP-Datei fest, die im Formular-Designer angezeigt werden soll, wenn die benutzerdefinierte Klasse einem Formular hinzugefügt wird.
Siehe auch
Objektorientierte Programmierung | Klassen und Objekte: Die Bausteine einer Anwendung | Klassen in Visual FoxPro | Erstellen von Klassen | Ändern einer Klassendefinition | Erstellen einer Unterklasse zu einer Klassendefinition | Funktionsweise des Klassen-Designers | Schützen und Ausblenden von Klassenelementen | Angeben der Entwurfszeit-Darstellung | Erstellen, Kopieren und Entfernen von Klassenbibliotheksdateien | Hinzufügen von Klassen zu Formularen | Außer Kraft setzen der Standardeinstellungen von Eigenschaften | Verweisen auf Objekte in der Containerhierarchie | Setzen von Eigenschaften | Aufrufen von Methoden | Ereignisrückmeldung