Vier verschiedene Möglichkeiten, Objekte mit 4D Write Pro zu verwenden!

Automatisch übersetzt von Deepl

Offen gesagt, wir lieben Objekte. 4D Write Pro verwendet Objekte als Eingabe/Ausgabe von Befehlen und Funktionen zur Bearbeitung von Dokumenten, Text, Absätzen usw. In diesem Blogbeitrag zeigen wir Ihnen vier verschiedene Möglichkeiten, wie Sie Objekte mit 4D Write Pro nutzen können.

Attribute setzen

Lassen Sie uns ein einfaches Beispiel verwenden. Sie möchten die Schriftart, Größe und Gewichtung des ausgewählten Textes auf „Arial“, „Bold“ und „16pt“ setzen.

Erfassen Sie zunächst den markierten Text als einen Bereich.

$range:=WP Get selection(WParea)

Zur Erinnerung: WP Get selection gibt keinen Text zurück, sondern den Bereich, der mit dem ausgewählten Text übereinstimmt. Dieser Bereich hat mehrere Attribute, die im Debugger sichtbar sind: „Start“, „Ende“, „Typ“ und „Besitzer“.

Definieren Sie dann die Attribute mit dem WP SET ATTRIBUTES Befehl:

WP SET ATTRIBUTES($range;wk font family; "Arial")
WP SET ATTRIBUTES ($range;wk font size;16)
WP SET ATTRIBUTES ($range;wk font bold;wk true)

Dieser Code ist dank der Konstanten und in einigen Fällen der intelligenten Konstanten (wie wk true in der dritten Zeile) leicht zu lesen und zu schreiben.

Alternative 1: OB SET

Solange $range ein Objekt und wk font xxx ein Attribut ist, können Sie mit dem Befehl OB SET Befehl verwenden, um das Gleiche zu tun.

Und wissen Sie was? Es funktioniert großartig! Der folgende Code macht genau das Gleiche:

OB SET($range;wk font family; "Arial")
OB SET ($range;wk font size;16)
OB SET ($range;wk font bold;wk true)

Es können sogar die gleichen Konstanten verwendet werden. Der einzige Unterschied ist, dass es nicht mehr offensichtlich ist, dass dieser Code für ein 4D Write Pro Dokument gilt. Hmmmmm. Werfen wir einen Blick auf die zweite Alternative.

Alternative 2: Objektnotation

Wenn Sie die Objektnotation in Ihren Datenbanken aktiviert haben, möchten Sie sie doch so oft wie möglich verwenden, oder?

Wird dieser Code auch funktionieren?

$range.fontFamily:="Arial"
$range .fontSize:=16
$range .
fontBold:=wk true

Ja, das tut er! Und er hat noch ein paar weitere Vorteile: kompakter Code, leicht zu lesen, und das Ergebnis ist – natürlich – genau dasselbe.

Ein kleiner Hinweis zur Vorsicht: So geschrieben gibt es keine Autovervollständigung, und bei Konstanten/smart constants ist besondere Vorsicht geboten, da sie zwischen Groß- und Kleinschreibung unterscheiden(z. B. funktioniert fontFamily, aber FontFamily nicht). Wenn Sie also diese Art von Code schreiben, empfehlen wir Ihnen, sehr vorsichtig zu sein 😉

Gibt es eine andere Möglichkeit? Ja, die gibt es!

Alternative 3: Objektnotation mit Klammern

Object Notation ist wirklich mächtig. Die Namen von Attributen können ausgewertet werden, wenn sie in eckigen Klammern stehen [„myAttribute“]. Wenn du also schreibst:

contact["name"]:="Brown"

ist dies das genaue Äquivalent zum Schreiben von:

contact.name:="Braun"

Was bedeutet das für 4D Write Pro? Die kurze Antwort lautet: Sie können die Objektnotation UND Konstanten verwenden!

$range[wk font family]:="Arial"
$range [wk font size]:=16
$range [wk font bold]:=wk true

Diese letzte Alternative ist kompakt, leicht zu lesen/schreiben und verwendet Konstanten… ein Rundum-Sieger!

Was ist mit dem Lesen von Attributen?

Das Gleiche gilt für das Lesen von Attributen. Die folgenden Code-Beispiele sind gültig.

WP GET ATTRIBUTES($range;wk font family;$family)
WP GET ATTRIBUTES ($range;wk font size;$size)
WP GET ATTRIBUTES ($range;wk font bold;$bold)

Alternative 1: OB GET

$family:=OB Get($range;wk font family)
$size :=OB Get($range;wk font size)
$bold :=OB Get($range;wk font bold)

Alternative 2: Objektnotation

$family:=$range.fontFamily
$size :=$range.fontSize

$bold:=$range.fontBold

Alternative 3: Objektnotation mit Klammern

$family:=$range[wk font family]
$size :=$range[wk font size]
$bold :=$range[wk font bold]

Wie Sie sehen, können verschiedene Arten der Programmierung zum gleichen Ergebnis führen. Es liegt nun an Ihnen, sich für einen Weg zu entscheiden!

Roland Lannuzel
- Product Owner & 4D Experte - Nach seinem Studium der Elektronik arbeitete Roland als Entwickler und Berater in der industriellen IT-Branche, wo er Lösungen für Kunden mit einer Vielzahl von Datenbanken und Technologien entwickelte. In den späten 80er Jahren verliebte er sich in 4D und setzte es bei der Entwicklung von Geschäftsanwendungen wie Buchhaltungs-, Abrechnungs- und E-Mail-Systemen ein. 1997 trat er schließlich in das Unternehmen ein und leistete einen wertvollen Beitrag, indem er Spezifikationen, Testtools und Demos entwarf, Schulungen durchführte und auf vielen Konferenzen für die 4D Community sprach. Er gestaltet die Zukunft von 4D aktiv mit, indem er neue Funktionen und Datenbankentwicklungstools definiert.