Freigeben über


Beispielklassenbibliotheken

Die Visual FoxPro-Beispielklassenbibliothek stellt gekapselte Funktionalität bereit, die Sie problemlos zu einer Anwendung hinzufügen können. Die Lösungsbeispiele veranschaulichen die Verwendung der meisten Beispielklassen. Die Beispielsklassen sind in folgenden Dateien enthalten:

  • Schaltflächen-Klassenbibliothek
  • Beispielklassenbibliothek
  • Typelib-Klassenbibliothek
  • Dienstprogramm-Klassenbibliothek
  • Registratur-Programm

Schaltflächen-Klassenbibliothek

Buttons.vcx enthält die folgenden Klassen:

Klasse Beschreibung
CmdOK Eine Befehlsschaltfläche, die das Formular freigibt, zu dem sie hinzugefügt wird. Wenn das Formular in einem Formularsatz enthalten ist, gibt cmdOK den Formularsatz frei.
CmdCancel Eine Unterklasse von cmdOK, bei der die Caption-Eigenschaft auf Abbrechen festgelegt ist.
CmdHelp Eine Befehlsschaltfläche, die Hilfe mit der HelpContextID-Eigenschaft des Formulars aufruft, zu dem sie hinzugefügt wird.
MailBtn Ein Container mit einer Befehlsschaltfläche, ein Microsoft MAPI-Nachrichten-Steuerelement und ein MAPI-Sitzung-Steuerelement. Code im Click-Ereignis der Befehlsschaltfläche meldet sich beim E-Mail-System an und stellt eine Nachricht zusammen, die die Werte im aktuellen Datensatz einer Tabelle enthalten.

Ein Beispiel für die Verwendung der MailBtn-Klasse finden Sie in SENDMAIL.SCX im Visual FoxPro-Ordner Samples\Solution\OLE.

VCR Ein Satz von Tabellennavigationsschaltflächen, der es dem Benutzer ermöglicht, den Datensatzzeiger zum nächsten, vorhergehenden, ersten und letzten Datensatz einer Tabelle zu bewegen.

Legen Sie die Skiptable-Eigenschaft auf den Aliasnamen der Tabelle fest, in der Sie den Datensatzzeiger bewegen möchten. Wenn Skiptable leer ist, wird der Datensatzzeiger im aktuell ausgewählten Arbeitsbereich bewegt.

Beispielklassenbibliothek

Samples.vcx enthält die folgenden Klassen:

Klasse Beschreibung
CboFontName Ein Kombinationsfeld, das die augenblicklich im System verfügbaren Schriftarten anzeigt.
CboFontSize Ein Kombinationsfeld, das alle verfügbaren Punktgrößen für eine bestimmte Schriftart anzeigt. Übergibt den Namen der Schriftart an die FillList-Methode, um das Kombinationsfeld zu füllen. Die Eigenschaften nLargestFont und nSmallestFont begrenzen die größten und kleinsten angezeigten Schriftartgrößen. Sie können dieses Steuerelement zusammen mit der cboFontName-Klasse verwenden. Rufen Sie die FillList-Methode des cboFontSize-Objekts im InteractiveChange-Ereignis des cboFontName-Objekts auf.

THISFORM.cboFontSize1.FillList(THIS.Value)

Ein Beispiel für die Verwendung dieser Klasse finden Sie in der tbrEditing-Klasse in derselben Klassenbibliothek.

Clock Ein Container, der das aktuelle Datum und die aktuelle Zeit anzeigt.

Das Beispiel "Anzeigen einer Systemuhr" aus Visual Foxpro-Lösungen (solution.pjx) verwendet ebenfalls die Clock-Klasse.

Datachecker Eine benutzerdefinierte Klasse, die das Auflösen von Datenkonflikten verwaltet. Code im Error-Ereignis der VCR-Klasse in BUTTONS.VCX ruft die CheckConflicts-Methode dieser Klasse auf, wenn ein Versuch, gepufferte Daten in eine Tabelle zu schreiben, veränderte Werte vorfindet.

nConflictStatus = ; THIS.DataChecker1.CheckConflicts()

Das Beispiel "Ausführen mehrerer Instanzen eines Formulars" aus Visual Foxpro-Lösungen (solution.pjx) verwendet ebenfalls diese Klasse zur Überprüfung im Hinblick auf Datenkonflikte.

Weitere Informationen finden Sie, wenn Sie die Klasse öffnen und die Kommentare im Code lesen.

Distinct_values_combo Ein Kombinationsfeld, das bei der Initialisierung mit den Werten im ControlSource-Alias aufgefüllt wird. Wenn Sie diese Klasse z. B. zu einem Formular hinzufügen und ControlSource auf customer.country festlegen, wird das Kombinationsfeld mit den Ländern in der Customer-Tabelle aufgefüllt, ohne einen Ländernamen mehr als einmal anzuzeigen.
FrmNoTitle Ein Formular mit Eigenschaften, die so festgelegt sind, dass kein Titel angezeigt wird. Wenn Sie Informationen in einem getrennten Fenster anzeigen möchten, können Sie ein Objekt erzeugen, das auf dieser Klasse basiert und Graphics-Methoden für das Formular verwenden.

Das Beispiel "Anzeigen animierter Linien auf einem Formular" aus Visual Foxpro-Lösungen (solution.pjx) verwendet ebenfalls ein Formular ohne Titel, um die Animation anzuzeigen.

Lookup_combo Ein Kombinationsfeld, das es erleichtert, Werte von einem Feld, zum Beispiel einen Firmennamen, anzuzeigen, während ein ControlSource an ein anderes Feld gebunden wird, zum Beispiel eine Firmenkennziffer. Diese Klasse hat vier benutzerdefinierte Eigenschaften.

order_column: Spalte, nach der die Tabelle sortiert werden soll (optional).

lookup_table: Tabelle, aus der das Kombinationsfeld gefüllt wird.

display_column: Spalte in der Tabelle, die angezeigt werden soll.

return_column: Spalte, deren Wert in ControlSource geschrieben wird.

MoverLists Ein Container mit zwei Listenfeldern und vier Befehlsschaltflächen. Benutzer können markierte Einträge von einer Liste in die andere Liste verschieben, indem sie auf die Befehlsschaltflächen klicken oder die Einträge mittels Drag & Drop in die andere Liste ziehen.

Sie müssen sicherstellen, dass die RowSourceType-Eigenschaft jedes Listenfeldes auf 0 festgelegt ist und die AddItem-Methode verwenden, um zum Quelllistenfeld Einträge hinzuzufügen.

MoverLists hat drei benutzerdefinierte Eigenschaften:

CanDropIcon: Cursor, der über einem gültigen Ziel in einer Drag & Drop-Operation angezeigt wird.

NoDropIcon: Cursor, der angezeigt wird, wenn ein Dropvorgang die markierten Elemente nicht zu dem Listenfeld hinzufügt.

DragThreshold: Anzahl der Pixel, bevor der Dragvorgang beginnt.

Das Beispiel "Verschieben von Einträgen zwischen Listenfeldern" aus Visual Foxpro-Lösungen (solution.pjx) verdeutlicht die Verwendung dieser Klasse.

Print_reports Ein modales Formular, das es Benutzern ermöglicht, einen Bericht als Vorschau anzuzeigen, ihn zu drucken oder ihn in eine Datei umzuleiten. Sie können die cReport-Eigenschaft der Klasse auf den Namen des Berichts setzen oder den Berichtsnamen als Parameter übergeben.

o = CREATEOBJECT(print_reports, ; "myreport.frx")

QBF Ein Container mit drei Befehlsschaltflächen. Fügen Sie diese Klasse und die VCR-Klasse zu einem Formular mit datengebundenen Steuerelementen hinzu. Wenn ein Benutzer QBF eingeben wählt, werden die Werte in den Steuerelementen ausgeblendet. Werte, die der Benutzer in den Steuerelementen eingibt, geben den Filter an, der auf die Tabelle festgelegt wird, wenn der Benutzer Abfrage wählt.

Für die Steuerelemente muss die ControlSource-Eigenschaft festgelegt sein, und das übergeordnete Objekt der Steuerelemente muss das Formular sein, nicht ein anderer Container.

Das Beispiel "Erstellen eines QBE (Abfrage mit Beispiel)-Formulars" aus Visual Foxpro-Lösungen (solution.pjx) verdeutlicht die Verwendung dieser Klasse.

Resizable Eine benutzerdefinierte Klasse, die das Ändern der Größe und das Umordnen der Steuerelemente in einem Formular während der Laufzeit ermöglicht und gleichzeitig die relativen Größen und Positionen beibehält. Fügen Sie die Klasse zu einem Formular hinzu, und rufen Sie im Resize-Ereignis des Formulars die AdjustControls-Methode auf.

THIS.Resizable2.AdjustControls

Resizable hat zwei benutzerdefinierte Eigenschaften, die Sie festlegen müssen:

RepositionList: Eine Zeichenfolge, die alle Klassen enthält, deren Objekte neu angeordnet werden sollen.

ResizeList: Eine Zeichenfolge, die alle Klassen enthält, deren Objekte in der Größe geändert werden sollen.

Das Beispiel "Ändern der Größe und Position von Steuerelementen zur Laufzeit" aus Visual Foxpro-Lösungen (solution.pjx) verdeutlicht die Verwendung dieser Klasse.

RTFcontrols Eine Container-Klasse, die cboFontName, cboFontSize und Befehlsschaltflächen für Fett, Kursiv und ForeColor enthält. Das cboFontSize-Steuerelement wird im InteractiveChange-Ereignis von cboFontName aktualisiert, es wird jedoch keine zusätzliche Funktionalität mit den Befehlsschaltflächen für Fett, Kursiv und ForeColor codiert.

Das Beispiel "Verwenden des RTF-Steuerelements" aus Visual Foxpro-Lösungen (solution.pjx) verdeutlicht die Verwendung dieser Klasse.

SoundPlayer Diese Klasse kann für die Wiedergabe nicht visueller Multimediadateien, wie WAV-Audiodateien, verwendet werde. Weitere Informationen zu dieser Klasse finden Sie im folgenden Abschnitt "Multimedia-Beispielklassen".
StopWatch Ein Container mit einem Zeitgeber und Bezeichnern zum Anzeigen der Stoppuhrwerte.

StopWatch hat drei benutzerdefinierte Methoden, die Sie verwenden können.

Start: Startet die Stoppuhr.

Stop: Hält die Stoppuhr an.

Reset: Setzt die angezeigte Zeit auf 0:00 zurück.

Das Beispiel "Anzeigen einer Stoppuhr" aus Visual Foxpro-Lösungen (solution.pjx) verdeutlicht die Verwendung dieser Klasse.

TbrEditing tbrEditing hat eine benutzerdefinierte Eigenschaft und eine Methode, die Sie verwenden können.

nAppliesTo Property: Diese Eigenschaft kann auf 1, 2 oder 3 festgelegt werden.

  1. Die Benutzerauswahl beeinflusst das aktuelle Steuerelement im aktiven Formular.
  2. Die Benutzerauswahl beeinflusst alle Text- und Bearbeitungsfelder im aktiven Formular.
  3. Die Benutzerauswahl beeinflusst alle Steuerelemente im aktiven Formular.

Refresh: Akzeptiert einen Objektverweis als Parameter und legt alle Bearbeitungssteuerelemente auf die entsprechenden Werte des Objekts fest. Rufen Sie die Refresh-Methode im GotFocus-Ereignis eines Steuerelements auf.

Das Beispiel "Ändern von Schriftartattributen " aus Visual Foxpro-Lösungen (solution.pjx) verdeutlicht die Verwendung dieser Klasse.

VideoFrame Diese Klasse kann verwendet werden, um visuelle Multimediadateien wie eine Video-für-Windows-Datei abzuspielen. Weitere Informationen zu dieser Klasse finden Sie im folgenden Abschnitt "Multimedia-Beispielklassen".

Multimedia-Beispielklassen

Zwei der Klassen (SoundPlayer und VideoFrame), die in der Visual FoxPro-Klassenbibliothek Samples.vcx unter Samples\Classes\Samples.vcx gespeichert sind, ermöglichen Ihnen die Verwendung von MCI (Multimedia Command Interface) zur Wiedergabe von Multimediadateien.

Eine Dokumentation zu den MCI-Befehlen erhalten Sie, indem Sie in der MSDN-Bibliothek (https://msdn.microsoft.com/library) nach "Multimedia Commands" suchen.

SoundPlayer-Klasse

Diese Klasse kann verwendet werden, um nichtvisuelle Multimediadateien, wie WAV-Audiodateien, abzuspielen. Sie ermöglicht es Ihnen, die Datei anzugeben, die wiedergegeben werden soll. Sie stellt außerdem integrierte Methoden für die einfache Wiedergabe der Mediendatei zur Verfügung.

Property Beschreibung
AutoOpen Gibt an, ob die Sounddatei automatisch geöffnet und angezeigt werden soll, wenn das Objekt instanziiert wird. Der Standardwert ist Wahr (.T.).
AutoPlay Gibt an, ob die Sounddatei automatisch abgespielt werden soll, wenn sie geöffnet wird. Der Standardwert ist Wahr (.T.).
AutoRepeat Gibt an, ob die Sounddatei ohne Unterbrechung abgespielt werden soll. Der Standardwert ist Falsch (.F.).
ControlSource Gibt die Spalte an, die den Sounddateiverweis enthält. Wenn diese leer ist, erwartet die Klasse einen statischen Dateinamen in der SoundFile-Eigenschaft.
MCIAlias Gibt den Alias an, der von MCI verwendet werden soll. Wenn dieser Eintrag leer bleibt, ist der Alias standardmäßig der der Name-Eigenschaft. Normalerweise kann dieser Eintrag leer bleiben, wenn der Benutzer jedoch die gleiche Sounddatei zweimal zur gleichen Zeit spielen möchte, müsste ein unterschiedlicher Alias für jede angegeben werden.
SoundFile Enthält den Namen einer Sounddatei, die wiedergegeben werden soll, zum Beispiel "C:\WINDOWS\CHIMES.WAV".
Methode Beschreibung
OpenSound Öffnet die Sounddatei.
PlaySound Spielt die Sounddatei ab. Die Datei muss mit der OpenSound-Methode geöffnet werden, bevor sie abgespielt werden kann.
PauseSound Unterbricht das Abspielen einer Sounddatei. Die Wiedergabe kann durch das Aufrufen der PlaySound-Methode fortgesetzt werden.
SetPosition Ermöglicht es den Benutzern, die Position der Mediendatei anzugeben. Sie kann zu jedem Zeitpunkt ausgeführt werden, nachdem die Datei geöffnet wurde. Gültige Werte sind "Start", "End" oder eine spezifische Millisekunde im Sound.
CloseSound Schließt die Sounddatei und gibt alle zugeordneten Ressourcen wieder frei.

VideoFrame-Klasse

Mit Hilfe der VideoFrame-Klasse können visuelle Multimediadateien, wie z. B. eine Video-für-Windows-Datei, wiedergegeben werden. Diese Klasse ermöglicht es Ihnen, die Position und Größe des wiederzugebenden Videos anzugeben. Sie stellt außerdem integrierte Methoden für eine einfache Wiedergabe der Mediendatei zur Verfügung.

Ein Beispiel für die Verwendung dieser Klasse finden Sie in Video.scx im Visual FoxPro-Verzeichnis Samples\Solution\Forms.

Property Beschreibung
AutoOpen Gibt an, ob die Videodatei automatisch geöffnet und angezeigt werden soll, wenn das Objekt instanziiert wird. Der Standardwert ist Wahr (.T.).
AutoPlay Gibt an, ob die Videodatei automatisch abgespielt werden soll, wenn sie geöffnet wird. Der Standardwert ist Wahr (.T.).
AutoRepeat Gibt an, ob die Videodatei als Schleife ausgeführt werden soll. Ist dieser Wert auf .T. festgelegt, wird das Video ohne Unterbrechung gespielt. Der Standardwert ist Falsch (.F.).
ControlSource Gibt ein Feld an, das den Videodateiverweis enthält. Wenn dieses leer ist, erwartet die Klasse einen statischen Dateinamen in der VideoFile-Eigenschaft.
MCIalias Gibt den Alias an, der von MCI verwendet werden soll. Wenn dieser Eintrag leer bleibt, ist der Alias standardmäßig der der Name-Eigenschaft. Normalerweise kann dieser Eintrag leer bleiben, wenn der Benutzer jedoch die gleiche Videodatei zweimal zur gleichen Zeit spielen möchte, müsste ein unterschiedlicher Alias für jede angegeben werden.
VideoFile Enthält den Namen einer Videodatei, die wiedergegeben werden soll, zum Beispiel: "C:\VFP\SAMPLES\SOLUTION\FORMS\FOX.AVI".
Methode Beschreibung
CloseVideo Schließt die Videodatei und gibt alle ihr zugeordneten Ressourcen wieder frei.
DoMCI Wird von anderen Methoden aufgerufen, um MCI-Befehle auszuführen. Sie kann ebenso von einem Benutzer aufgerufen werden, um einen bestimmten MCI-Befehl auszuführen.
OpenVideo Öffnet die Videodatei und zeigt den ersten Rahmen an.
PauseVideo Unterbricht die Wiedergabe des Videos. Das Video kann mit der PlayVideo-Methode neu gestartet werden.
PlayVideo Spielt die Videodatei ab. Die Videodatei muss mit der OpenVideo-Methode geöffnet werden, bevor sie abgespielt werden kann.
SetPosition Ermöglicht es den Benutzern, die Position der Mediendatei anzugeben. Sie kann zu jedem Zeitpunkt ausgeführt werden, nachdem die Videodatei geöffnet wurde. Gültige Werte sind "Start", "End" oder eine spezifische Millisekunde im Video.

Typelib-Klassenbibliothek

Typelib.vcx enthält die folgenden Klassen:

Klasse Beschreibung
Typelib Eine Containerklasse, die ein Visual FoxPro-Foxtlib-Steuerelement enthält. Die ExportTypeLib-Methode dieser Klasse ruft die Methoden des Foxtlib-Steuerelements auf, um Typbibliotheksinformationen aus OLB-, TLB- und EXE-Dateien zu lesen.

Das Beispiel "Anzeigen von Typbibliotheksinformationen" aus Visual FoxPro-Lösungen (solution.pjx) verdeutlicht die Verwendung dieser Klasse.

Dienstprogramm-Klassenbibliothek

Utility.vcx enthält die folgenden Klassen:

Klasse Beschreibung
Arraylib Eine benutzerdefinierte Klasse mit Methoden zum Einfügen und Löschen von Arrayelementen und zum Scannen von Arrayspalten.
Execsp Eine benutzerdefinierte Klasse mit Methoden, die SQL-Pass-Through und das Ausführen von gespeicherten Prozeduren auf Remotedatenbanken erleichtern.
Filelib Eine benutzerdefinierte Klasse mit Methoden, die gebräuchliche Aufgaben für Zeichenfolgen durchführt, wenn Dateinamen geändert werden, zum Beispiel das Entfernen der Erweiterung, das Hinzufügen eines umgekehrten Schrägstriches zu einem Pfad usw.
Menulib Eine benutzerdefinierte Klasse mit Methoden, die ein Kontextmenü aus einem Array erzeugen.

Das Beispiel "Erstellen dynamischer Kontextmenüs" aus Visual Foxpro-Lösungen (solution.pjx) verdeutlicht die Verwendung dieser Klasse.

Registratur-Programm

Registry.prg enthält die folgenden Klassen:

Klasse Beschreibung
FileReg Eine Unterklasse der Registry-Klasse, die Methoden für das Lesen der Anwendung zur Verfügung stellt, die mit bestimmten Dateierweiterungen und dem Pfad der Anwendung verbunden ist.
FoxReg Eine Unterklasse der Registry-Klasse, die Methoden für das Lesen und Schreiben von Visual FoxPro-Einstellungen in der Windows-Registrierung zur Verfügung stellt.
ODBCReg Eine Unterklasse der Registry-Klasse, die Methoden für das Lesen von Informationen der ODBC-Datenquelle und des Treibers zur Verfügung stellt.
OldINIReg Eine Unterklasse der Registry-Klasse, die Methoden für das Lesen und Schreiben einer INI-Datei zur Verfügung stellt.
Registry Eine benutzerdefinierte Klasse, die Methoden für den Zugriff auf Windows API-Funktionen zur Bearbeitung der Windows-Registrierung zur Verfügung stellt.

Beispiele zur Verwendung der Registrierungsklassen werden angezeigt, wenn Sie SOLUTION.app im Ordner ..\Samples\Solution ausführen.

Siehe auch

Lösungsbeispiele | Visual FoxPro-Foxtlib-Steuerelement | Visual FoxPro Foundation Classes | Beispiel Tasmanische Handelsgesellschaft | Client/Server-Beispiel | Serverbeispiele