Anzeigen von Text in Formularen und Bildfeldern

Wenn Sie Text in einem Formular oder in einem Bildfeld anzeigen möchten, verwenden Sie die Print-Methode, vor die Sie den Namen des Formulars bzw. des Bildfeldes setzen. Soll auszugebender Text an einen Drucker gesendet werden, verwenden Sie für das Printer-Objekt die Print-Methode.

Verwenden der Print-Methode

Die Print-Methode hat folgende Syntax:

[ Objekt .] Print Ausgabeliste ] [{ ; | , }]

Das Argument Objekt ist optional. Ist es nicht angegeben, bezieht sich die Print-Methode aufs aktuelle Formular.

Die folgenden Anweisungen senden z.B. Meldungen an:

·     Ein Formular namens "MyForm":

MyForm.Print "Dies ist ein Formular."

·     Ein Bildfeld namens "picMiniMsg":

picMiniMsg.Print "Dies ist ein Bildfeld."

·     Das aktuelle Formular:

Print "Dies ist das aktuelle Formular."

·     Das Printer-Objekt:

Printer.Print "Text wird an den Drucker gesendet."

Das Argument Ausgabeliste enthält den Text, der im Formular oder im Bildfeld erscheint. Besteht die Ausgabeliste aus mehreren Elementen, müssen diese durch Kommas, Semikolons oder beides voneinander getrennt sein.

Anzeigen mehrerer Elemente in einer Zeile

Folgende Elemente können angezeigt oder gedruckt werden: Eigenschaftswerte, Konstanten und Variablen (sowohl als Zeichenfolgen als auch als numerische Werte).

Bei der Ausgabe von numerischen Werten haben positive Zahlen sowohl ein führendes als auch ein nachgestelltes Leerzeichen. Bei negativen Zahlen wird das führende Leerzeichen durch ein Minuszeichen ersetzt.

Aufeinanderfolgende Elemente müssen durch ein Semikolon (;) oder ein Komma (,) voneinander getrennt werden. Wenn Sie ein Semikolon verwenden, gibt Visual Basic die Elemente direkt hintereinander aus, ohne Leerzeichen einzufügen. Wenn Sie ein Komma verwenden, springt Visual Basic zur nächsten Tabulatorspalte.

Die folgende Anweisung sendet z.B. Ihre Ausgabe an das aktuelle Formular:

Print "Der Wert von X ist "; X; ", und der Wert von Y ist "; Y

Enthält X den Wert 2 und Y den Wert 7, erzeugt die Anweisung die folgende Ausgabe:

Der Wert von X ist 2, und der Wert von Y ist 7

Standardmäßig gibt jede Print-Methode den jeweiligen Text aus und springt an den Anfang der nächsten Zeile. Sind keine Elemente angegeben, überspringt Print einfach eine Zeile. Mehrere Print-Anweisungen (im nächsten Beispiel für ein Bildfeld namens "picLineCount") verwenden automatisch jeweils eine eigene Zeile:

picLineCount.Print "Dies ist die Zeile 1."

picLineCount.Print "Dies ist die Zeile 2."

Setzen Sie dagegen ein Semikolon (oder ein Komma) an das Ende der ersten Anweisung, erscheint die Ausgabe der nächsten Print-Anweisung in derselben Zeile:

picLineCount.Print "Diese beiden Texte erscheinen ";

picLineCount.Print "in derselben Zeile."

Löschen von Text mit der Cls-Methode

Alle auf einem Objekt befindlichen Texte und Grafiken, die mit Print- und Grafikmethoden erstellt wurden, können mit der Cls-Methode gelöscht werden. Außerdem setzt die Cls-Methode die Ausgabekoordinaten auf den Ursprung (0,0) zurück, der standardmäßig die linke obere Ecke ist. Die folgenden Anweisungen löschen z.B.:

Ein Bildfeld namens "Picture1": Das aktuelle Formular:
Picture1.Cls  Cls

Anzeigen der Textausgabe an einer bestimmten Position

Mit den Eigenschaften CurrentX und CurrentY können Sie die Ausgabekoordinaten eines Formulars oder eines Bildfeldes direkt festlegen. Die folgenden Anweisungen setzen z.B. die Ausgabekoordinaten für "Picture1" bzw. das aktuelle Formular auf die obere linke Ecke zurück:

·     für ein Bildfeld namens "Picture1":                                      für das aktuelle Formular:

Picture1.CurrentX = 0                     CurrentX = 0

Picture1.CurrentY = 0                     CurrentY = 0

Jeder neue Text, den Sie ausgeben, überlagert den Text sowie die Grafiken, die sich auf dieser Position befinden. Wenn Sie Text selektiv löschen möchten, müssen Sie mit der Line-Methode ein Feld zeichnen und dieses mit der Hintergrundfarbe ausfüllen. Denken Sie aber daran, dass die von CurrentX und CurrentY angegebenen Ausgabe­koordinaten in der Regel die Position verändern, wenn Sie eine Grafikmethode verwenden.

Standardmäßig wird für Formulare und Bildfelder ein Koordinatensystem verwendet, in dem jede Einheit auf Twips basiert (1.440 Twips entsprechen einem Zoll, und ca. 567 Twips entsprechen einem Zentimeter). Sie können die Skalierung (ScaleMode-Eigenschaft) eines Formulars, eines Bildfeldes oder eines Printer-Objekts von Twips in Punkte ändern, da Texthöhen in Punkten gemessen werden. Wenn Sie für den Text und das Objekt, auf dem der Text ausgegeben wird, dieselbe Maßeinheit verwenden, können Sie die Position des Textes einfacher berechnen.

Verwenden des Koordinatensystems

Jedes Formular, jedes Steuerelement, jede Text- und Grafikausgabe befindet sich in einem sogenannten Container, dessen Koordinatensystem die Position der darin enthaltenen Elemente bestimmt. Der Container für das Formular ist der Bildschirm (Screen-Objekt), für Steuerelemente ist es das Formular oder ein anderer Container (beispielsweise ein Bildfeld, ein Rahmen oder das Printer-Objekt).

Das Koordinatensystem ist ein zweidimensionales Raster, mit dem Positionen auf dem Bildschirm, in Formularen oder anderen Containern definiert werden. Die Positionen innerhalb des Rasters werden mit Koordinaten folgendermaßen definiert:

(x, y)

Der Wert x bezeichnet die Position des Punktes entlang der x-Achse, wobei die Standardposition 0 ganz links liegt. Der Wert y bezeichnet die Position des Punktes entlang der y-Achse, wobei die Standardposition 0 ganz oben liegt. Das Koordinatensystem wird in Abbildung 37 dargestellt.

Abbildung 37   Das Koordinatensystem eines Formulars

 Folgende Regeln gelten für das Visual Basic-Koordinatensystem:

·     Beim Verschieben, Verkleinern oder Vergrößern eines Steuerelements verwenden Sie das Koordinatensystem des Steuerelement-Containers. Wenn Sie ein Objekt direkt im Formular ausgeben, ist das Formular der Container. Wenn Sie das Steuerelement in einem Rahmen oder Bildfeld ausgeben, ist der Rahmen oder das Bildfeld der Container.

·     Alle Grafik- und Print-Methoden verwenden das Koordinatensystem des Containers. Anweisungen, die eine Grafik innerhalb eines Bildfeldes ausgeben, verwenden beispielsweise das Koordinatensystem dieses Steuerelements.

·     Anweisungen, die die Größe oder Position eines Formulars ändern, geben die Position und Größe des Formulars immer in der Maßeinheit Twip an.

Wenn Sie Code erstellen, um die Größe oder Position eines Formulars zu ändern, sollten Sie zunächst die Height- und Width-Eigenschaften des Screen-Objekts überprüfen, um sicherzustellen, dass das Formular auf den Bildschirm passt.

·     Die linke obere Ecke des Bildschirms hat immer die Koordinaten (0, 0). Das Standardkoordinatensystem aller Container beginnt mit der Koordinate (0, 0) in der oberen linken Ecke des Containers.

·     Bei Containern,die Rahmen, Menüleisten, Statusleisten oder Titelleisten enthalten, hat die linke obere Ecke im Innern des Containers die Koordinaten (0, 0). Der verfügbare Innenbereich ergibt sich aus den Innenmaßen des Containers ScaleHeight und ScaleWidth, die kleiner sind als die Außenmaße Height und Width.

Die Maßeinheiten, die zum Definieren von Positionen entlang der Achsen verwendet werden, werden als Skala bezeichnet. In Visual Basic kann jede Achse des Koordinatensystems eine eigene Skala haben.

Sie können die Richtung der Achsen, den Ursprung und die Skala des Koordinatensystems ändern, sollten aber vorerst das Standardsystem verwenden.

Erläuterung von Twips

Standardmäßig verwenden alle Visual Basic-Anweisungen zum Verschieben, zum Vergrößern und Verkleinern sowie zum grafischen Zeichnen die Maßeinheit Twip. Ein Twip ist ein Zwanzigstel eines Druckerpunktes (1440 Twips entsprechen einem Zoll, und 567 Twips entsprechen einem Zentimeter). Diese Maße legen die Größe eines Objekts beim Drucken fest. Die auf dem Bildschirm tatsächlich angezeigte Größe hängt von der Größe des Monitors ab.

Achtung: Grafiken, die in ein Steuerelement geladen werden, haben eine andere Maßeinheit.

Arbeiten mit ausgewähltem Text

Text- und Kombinationsfelder verfügen über eine Reihe von Eigenschaften für ausgewählten Text, die besonders bei der Arbeit mit der Zwischenablage nützlich sind. Mit diesen Eigenschaften, die sich auf den im Steuerelement ausgewählten (hervorgehobenen) Textblock beziehen, können Sie für den Benutzer Funktionen zum Ausschneiden und Einfügen erstellen. Die folgenden Eigenschaften können während der Laufzeit geändert werden.

Eigenschaft

Beschreibung

SelStart

Eine Ganzzahl vom Typ Long, die die Anfangsposition des ausgewählten Textblocks festlegt. Ist kein Text ausgewählt, legt diese Eigenschaft die Cursorposition fest. Eine Einstellung von 0 gibt die Position unmittelbar vor dem ersten Zeichen im Text- bzw. Kombinationsfeld an. Eine Einstellung, die mit der Länge des im Text- oder Kombinationsfeld enthaltenen Textes übereinstimmt, gibt die Position unmittelbar nach dem letzten Zeichen im Steuerelement an.

SelLength

Eine Ganzzahl vom Typ Long, die die Anzahl der ausgewählten Zeichen festlegt.

SelText

Die Zeichenfolge, die die ausgewählten Zeichen enthält (bzw. eine leere Zeichenfolge, wenn keine Zeichen ausgewählt sind).

Durch Einstellen der Eigenschaften SelStart und SelLength können Sie steuern, welcher Text ausgewählt wird. Diese Anweisungen heben beispielsweise den gesamten Text in einem Textfeld hervor:

Text1.SetFocus

Text1.SelStart = 0                ' Hervorhebung vor dem ersten Zeichen beginnen.

Text1.SelLength = Len(Text1.Text) ' Bis zum Textende hervorheben (Gesamtlänge des Texts).

Wenn Sie SelText eine neue Zeichenfolge zuweisen, ersetzt diese Zeichenfolge den ausgewählten Text, und die Einfügemarke wird unmittelbar im Anschluss an den gerade eingefügten Text positioniert. Die folgende Anweisung ersetzt beispielsweise den ausgewählten Text durch die Zeichenfolge "Gerade eingefügter Text!":

Text1.SelText = "Gerade eingefügter Text!"

Wenn kein Text ausgewählt wurde, wird die Zeichenfolge einfach an der Einfügemarke im Textfeld eingefügt.

Weitere Erläuterungen im Abschnitt "Arbeiten mit Text in einem Textfeld".