Programmieren mit dBASE PLUS: Klasse Form

Aus Wikibooks


Ein Formularobjekt.

Syntax[Bearbeiten]

[<oReferenz> =] new Form([<Titel AusdruckZ>])

<oReferenz>

Eine Variable oder Eigenschaft, in der eine Referenz auf das neu erstellte Form-Objekt gespeichert wird.

<Titel AusdruckZ>

Ein optionaler Titel für das Form-Objekt. Ohne Angabe dieses Parameters lautet der Titel "Form".

spezielle Eigenschaften[Bearbeiten]

Die folgenden Tabellen enthalten die speziellen Eigenschaften und Methoden der Klasse Form
Eigenschaft Vorgabe Beschreibung
activeControl Das aktive Steuerelement.
allowDrop false Bestimmt, ob es ein Objekt zuläßt, dass gezogenen Objekte darauf abgelegt werden dürfen.
appSpeedBar 2 Legt fest, ob die Standard-Schalterleiste angezeigt wird wenn eine Form den Fokus erhält. 0=Verstecken, 1=Anzeigen, 2=Aktuelle Einstellung der Eigenschaft speedBar des _app-Objekts verwenden.
autoCenter false Gibt an, ob das Formular beim Öffnen automatisch auf dem Bildschirm zentriert wird.
autoSize false Gibt an, ob das Formular automatisch seine Größe so anpaßt, daß alle darin enthaltenen Komponenten angezeigt werden können.
background Hintergrundbild.
baseClassName FORM Kennzeichnet das Objekt als Instanz der Klasse Form.
className FORM Kennzeichnet das Objekt als Instanz der abgeleiteten benutzerdefinierten Klasse. Wenn keine benutzerdefinierte Klasse existiert, gilt die Voreinstellung von baseClassName.
clientEdge false Gibt an, ob der Rand des Formulars den Client-Bereich vertieft darstellt.
colorNormal BtnFace Hintergrundfarbe.
designView Eine Ansicht, die beim Entwurf des Formulars verwendet wird.
elements Ein Array mit Objektreferenzen auf die im Formular enthaltenen Komponenten.
escExit true Gibt an, ob das Formular durch Drücken von Esc geschlossen wird.
first Die erste Komponente des Formulars in der Z-Reihenfolge.
hWndClient Das Fenster-Handle für den Client-Bereich des Formulars.
hWndParent 0 When used in conjunction with the showTaskBarButton property; determines, or specifies, the hWnd property for the parent window of a form.
icon Eine Symboldatei oder Ressource, die bei der Verkleinerung des Formulars zum Symbol angezeigt wird.
inDesign Gibt an, ob das Formular mit dem Formular-Designer instantiiert wurde.
maximize true Gibt an, ob das Formular zum Vollbild vergrößert werden kann, wenn es sich nicht um ein MDI-Formular handelt.
mdi true Gibt an, ob es sich um ein MDI- oder SDI-Formular handelt.
menuFile Der Name der .MNU-Menüdatei des Formulars.
metric Zeichen Maßeinheiten (0=Zeichen, 1=Twip, 2=Punkt, 3=Zoll, 4=Zentimeter, 5=Millimeter, 6=Pixel).
minimize true Gibt an, ob das Formular zum Symbol verkleinert werden kann, wenn es sich nicht um ein MDI-Formular handelt.
moveable true Gibt an, ob das Formular verschoben werden kann, wenn es sich nicht um ein MDI-Formular handelt.
nextObj Das Objekt, an das gerade der Fokus übergeben wird.
persistent false Determines whether custom control, datamodule, menu or procedure files associated with a subform are loaded in the persistent mode.
popupMenu Das Popup-Menüobjekt des Formulars.
refreshAlways true Gibt an, ob das Formular nach der Durchführung von Bewegungen und Aktualisierungen auf dem Bildschirm neu aufgebaut werden soll.
rowset null Das Ergebnis der Abfrage.
scaleFontBold true Gibt an, ob die Grundschrift für die Maßeinheit Zeichen fett ist.
scaleFontName MS Sans Serif Die Grundschrift für die Maßeinheit Zeichen.
scaleFontSize 10 Die Schriftgröße in Punkt der Grundschrift für die Maßeinheit Zeichen.
scrollBar Aus Gibt an, wann für das Beschriebene-Objekt eine Bildlaufleiste angezeigt wird (0=Aus, 1=Ein, 2=Auto, 3=Deaktiviert).
showSpeedTip true Gibt an, ob Tooltips angezeigt werden.
showTaskBarButton true Whether to display a button for the form on the Windows Taskbar.
sizeable true Gibt an, ob die Größe des Formulars geändert werden kann, wenn es sich nicht um ein MDI-Formular handelt.
smallTitle false Gibt an, ob für das Formular eine kleinere Titelleiste verwendet wird, wenn es sich nicht um ein MDI-Formular handelt.
sysMenue true Gibt an, ob das Systemmenü- und das Schließsymbol des Formulars angezeigt werden, wenn es sich nicht um ein MDI-Formular handelt.
text Der Text, der in der Titelleiste des Formulars eingeblendet wird.
topMost false Gibt an, ob das Formular immer im Vordergrund angezeigt wird, wenn es sich nicht um ein MDI-Formular handelt.
useTablePopup false Gibt an, ob das Standard-Popup-Menü zum Navigieren in Tabellen verwendet werden soll, wenn bei der Eigenschaft popupMenu nichts angegeben wird.
view Die Abfrage oder Tabelle, auf der das Formular beruht.
windowState Normal Der Status des Fensters (0=Normal, 1=Symbol, 2=Vollbild).

spezielle Events[Bearbeiten]

Event Parameter Beschreibung
canClose Wird beim Versuch ausgelöst, das Formular zu schließen. Der Rückgabewert legt fest, ob das Formular geschlossen werden kann.
canNavigate <Arbeitsbereich AusdruckN> Wird beim Versuch ausgelöst, Bewegungen im Arbeitsbereich durchzuführen. Der Rückgabewert bestimmt, ob der aktuelle Datensatz verlassen werden kann.
onAppend Wird ausgelöst, nachdem die Funktion beginAppend( ) erfolgreich war.
onDragEnter <left expN>
<top expN>
<type expC>
<name expC>
Wenn die Maus im Anzeigefeld eines aktiven Drop Targets erscheint
onDragLeave Wird ausgelöst, wenn die Maus ein aktives “Drop-Ziel” und den Bereich der Objektanzeige verlässt ohne das etwas reingezogen würde.
onDragOver <left expN>
<top expN>
<type expC>
<name expC>
Wird ausgelöst, während die Maus sich über dem Anzeigefeld eines aktiven Drop Target Objekts befindet.
onDrop <left expN>
<top expN>
<type expC>
<name expC>
Wenn der Mausknopf während einer Drag&Copy Operation über einem aktiven Drop Target Objekt losgelassen wird.
onChange <Arbeitsbereich AusdruckN> Wird ausgelöst, nachdem ein geänderter Datensatz verlassen wurde, aber bevor das Event onNavigate eintritt.
onClose Wird nach dem Schließen des Formulars ausgelöst.
onMove Wird nach dem Verschieben des Formulars ausgelöst.
onNavigate <Arbeitsbereich AusdruckN> Wird nach Bewegungen in einem Arbeitsbereich ausgelöst.
onSelection <Steuerelement-ID AusdruckN> Wird nach der Übergabe des Formulars ausgelöst.
onSize <AusdruckN> Wird ausgelöst, nachdem die Größe des Formulars oder windowState geändert wurde.

spezielle Funktionen/Methoden[Bearbeiten]

Methode Parameter Beschreibung
abandonRecord( )   Die im aktuellen Datensatz durchgeführten Änderungen werden verworfen.
beginAppend( )   Das Anfügen eines neuen Datensatzes wird gestartet.
close( )   Das {{{Objekt}}} wird geschlossen.
isRecordChanged( )   Gibt an, ob die im Datensatzpuffer enthaltenen Daten geändert wurden.
open( )   Das {{{Objekt}}} wird geladen und geöffnet.
pageCount( )   Die höchste Seitennummer (Eigenschaft pageno) aller Komponenten wird ausgegeben.
print( )   Das {{{Objekt}}} wird gedruckt.
readModal( )   Das Formular wird als modales Formular geöffnet.
refresh( )   Das Formular wird auf dem Bildschirm neu aufgebaut.
saveRecord( )   Die Änderungen im aktuellen oder neuen Datensatz werden gespeichert.
scroll( ) <horizontal expN>, <vertical expN> Programatically scrolls the client area (the contents) of a subform
showFormatBar( ) <AusdruckL> Die Formatierungsleiste wird ein- oder ausgeblendet.

Basis Eigenschaften[Bearbeiten]

Die folgende Tabelle enthält die Basis-Eigenschaften, -Events und -Methoden der Klasse Form
Eigenschaft Event Methode

enabled
height
helpFile
helpId
hWnd
left
mousePointer
pageno
statusMessage
top
visible
width

onDesignOpen
onGotFocus
onHelp
onLeftDblClick
onLeftMouseDown
onLeftMouseUp
onLostFocus
onMiddleDblClick
onMiddleMouseDown
onMiddleMouseUp
onMouseMove
onOpen
onRightDblClick
onRightMouseDown
onRightMouseUp

move( )
release( )
setFocus( )

Beschreibung[Bearbeiten]

Ein Form-Objekt ist ein Container für andere visuelle Komponenten (auch als Steuerelemente bezeichnet) und die mit ihnen verbundenen Datenzugriffsobjekte. Daher werden bei der Freigabe eines Form-Objekts im Speicher auch alle in ihm enthaltenen Objekte freigegeben. Im Array elements des Form-Objekts wird eine Objektreferenz auf alle visuellen Komponenten des Formulars gespeichert. Alle visuellen Komponenten besitzen die Eigenschaft form, die auf das Formular zeigt.

Das Formular verfügt über die Eigenschaft rowset, die sich auf einen primären Datensatzbereich bezieht. Die Komponenten können in ihren Event-Handlern mit der Objektreferenz form.rowset grundsätzlich auf diesen Datensatzbereich zugreifen. Beispielsweise könnte ein Schalter im Formular, der zum ersten Datensatz in einem Datensatzbereich wechselt, den folgenden Event-Handler für onClick haben:

function firstButton_onClick( )
form.rowset.first( )

Wenn das Formular mehrere Datensatzbereiche aufweist, kann über die Eigenschaft rowset der Query-Objekte auf jeden einzelnen dieser Bereiche zugegriffen werden (bei diesen Objekten handelt es sich um Eigenschaften des Formulars). Um beispielsweise zum letzten Datensatz im Datensatzbereich des Query-Objekts members1 zu gelangen, würde der onClick- Event-Handler in etwa folgendermaßen aussehen::

function lastMemberButton_onClick( )
form.members1.rowset.last( )

Ein Formular kann über mehrere Seiten verfügen. Mehrseitige Formulare können u.a. mit Hilfe der Eigenschaft pageno der Steuerelemente und eines TabBox-Steuerelements erstellt werden. Die Eigenschaft pageno legt fest, auf welcher Seite die jeweiligen Steuerelemente angezeigt werden sollen, während das TabBox-Steuerelement dem Benutzer ermöglicht, zwischen den Seiten hin- und herzuwechseln. Mit Hilfe eines NoteBook-Steuerelements können Sie außerdem einen mehrseitigen Container in einem Formular anlegen.

Es gibt zwei Arten von Formularen: modale und nicht-modale. Ein modales Formular unterbricht die Ausführung der Routine, mit deren Hilfe es geöffnet wurde, bis das Formular geschlossen wird. Ein aktives modales Formular hat vollständige Kontrolle über die Benutzeroberfläche. Der Benutzer kann erst dann zu einem anderen Fenster in derselben Anwendung wechseln, wenn er das Formular geschlossen hat. Ein Beispiel für modale Formulare sind Dialogfelder, die im geöffneten Zustand die Ausführung des Programms unterbrechen. Der Fokus kann in dieser Situation erst dann an ein anderes Fenster übergeben werden, wenn der Benutzer das Dialogfeld schließt.

Im Gegensatz dazu ermöglichen nicht-modale Formularfenster den uneingeschränkten Wechsel zu anderen Fenstern der Anwendung. Bei den meisten Formularen, die Sie für eine Anwendung erstellen, handelt es sich um nicht-modale Formulare. Ein nicht-modales Formularfenster entspricht der MDI-Schnittstelle (Multiple Document Interface), die das Öffnen mehrerer Dokumentfenster in einem Anwendungsfenster ermöglicht.

Um ein nicht-modales Formular zu erstellen und zu verwenden, setzen Sie die Eigenschaft mdi auf True und öffnen das Formular mit der Methode open( ). Wenn Sie ein modales Formular erstellen und verwenden wollen, belegen Sie die Eigenschaft mdi mit False und öffnen das Formular mit der Methode readModal( ).

Sie können auch SDI-Fenster (SDI = Single Document Interface) erstellen, die wie Anwendungsfenster aussehen. Zu diesem Zweck setzen Sie die Eigenschaft mdi auf False und verwenden SHELL(false). Dieser Befehl blendet die Standardumgebung von dBASE Plus aus und übergibt dem Formular die Kontrolle über die Benutzeroberfläche. Das dBASE Plus -Anwendungsfenster wird ausgeblendet, und der Formularname wird in der Task-Liste von Windows aufgeführt.

Beispiele[Bearbeiten]