Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
WP Get position
|
WP Get position ( targetObj {; layout} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
targetObj | Objekt |
![]() |
Range, Element oder 4D Write Pro Dokument | |||||
layout | Lange Ganzzahl |
![]() |
Layout des 4D Write Pro Dokuments für die Bewertung: 0 (Standard)= 4D Write Pro Layout, 1 = HTML WYSIWYG | |||||
Funktionsergebnis | Objekt |
![]() |
Angabe der Position | |||||
Der Befehl WP Get position gibt ein Objekt mit der aktuellen Position von targetObj zurück.
Im Parameter targetObj übergeben Sie:
Der Befehl gibt die Positionsangaben in einem Objekt mit den folgenden Eigenschaften zurück:
Name der Eigenschaft | Typ | Beschreibung | |
section | Zahl | Nummer des ersten Abschnitts, der targetObj überschneidet. | |
page | Zahl | Nummer der ersten Seite, die targetObj überschneidet. | |
column | Zahl | Nummer der ersten Spalte, die targetObj überschneidet. (auf 1 basierend) | |
line | Zahl | Index der ersten Zeile, die targetObj überschneidet. (relativ zur Spalte - oder Seite, falls es keine Spalte gibt - auf 1 basierend) | |
position | Zahl | Position in der Zeile mit dem ersten Zeichen targetObj (auf 1 basierend) | |
bounds | Objekt | Koordinaten des Begrenzungsrechtecks von targetObj, dargestellt in der aktuellen Größe des Dokuments und relativ zur oberen linken Ecke von page. Größe von Einrückung und Rahmen (falls vorhanden) werden berücksichtigt, Ränder und Lineale werden nicht berücksichtigt. | |
top | Zahl | Obere Koordinate des Rechtecks | |
left | Zahl | Linke Koordinate des Rechtecks | |
bottom | Zahl | Untere Koordinate des Rechtecks | |
right | Zahl | Rechte Koordinate des Rechtecks | |
rangeHeight | Zahl | Höhe des Begrenzungsrechtecks von targetObj. Dieser Wert kann sich von bounds.bottom-bounds.top unterscheiden, wenn targetObj über mehrere Spalten geht (siehe Beispiel 4). |
Ist targetObj ein leerer Bereich, gibt WP Get position die Position am Anfang des "Range" zurück. Beachten Sie, dass bei einem leeren Range des Standardtyps (Text) die Range-Höhe (rangeHeight oder bounds.bottom-bounds.top) der Cursorhöhe entspricht und die Range-Breite (bounds.right-bounds.left) 1 Pixel beträgt.
Ist targetObj ein Text im Kopf- oder Fußteil, gibt WP Get position die Position zurück, wo Kopf- und Fußzeile im ersten Abschnitt/Seite angezeigt werden.
Ist targetObj ein verankertes Bild (das auf mehreren Seiten wiederholt werden kann), gibt WP Get position die Position zurück, wo das Bild im ersten Abschnitt/Seite verankert ist.
Ist targetObj ein Unterabschnitt, gibt WP Get position die Positionsinformationen der ersten Seite des übergeordneten Abschnitts zurück.
Mit dem optionalen Parameter Layout kann die HTML wysiwyg Ansicht für die targetObj Bewertung gesetzt werden. Sie können eine der folgenden Konstanten aus dem Thema "4D Write Pro" übergeben:
Konstante | Typ | Wert | Kommentar |
wk 4D Write Pro layout | Lange Ganzzahl | 0 | Standardmäßige 4D Write Pro Ausgabe mit ein paar spezifischen Stilattributen |
wk html wysiwyg | Lange Ganzzahl | 1 | In dieser Ausgabe werden die erweiterten 4D Write Pro Attribute entfernt, die nicht mit allen Browsern kompatibel sind. |
Ohne den Parameter layout wird standardmäßig das 4D Write Pro Layout verwendet.
Hinweise zur Performance
Sie möchten die Seitennummer von "Range" wissen:
C_OBJECT($range;$rangePosition)
$range:=WP Text range(WParea) //Range aus einer Benutzerauswahl
$rangePosition:=WP Get position($range;wk 4D Write Pro layout)
ALERT("First page number in selection is "+String($rangePosition.page))
Sie möchten den Text auf der ersten und letzten Seite des Dokuments blau einfärben:
C_LONGINT($nbPages)
C_OBJECT($body)
C_COLLECTION($_paragraphs)
$nbPages:=WP Get page count([DOC]Sample)
$body:=WP Get body([DOC]Sample)
$_paragraphs:=WP Get elements($body;wk type paragraph)
For each($paragraph;$_paragraphs)
$info:=WP Get position($paragraph)
If($info.page=1)|($info.page=$nbPages) //Abschnitte der ersten und letzten Seite in blau
WP SET ATTRIBUTES($paragraph;wk text color;"blue")
Else //Abschnitte anderer Seiten in schwarz
WP SET ATTRIBUTES($paragraph;wk text color;"black")
End if
End for each
Beim Erstellen eines Dokuments möchten Sie Aufteilungen in Absätze vermeiden:
C_OBJECT(WParea;$body)
C_COLLECTION($_paragraphs)
WParea:=WP New
$body:=WP Get body([DOC]Sample)
$_paragraphs:=WP Get elements($body;wk type paragraph)
For each($paragraph;$_paragraphs)
$insert:=WP New($paragraph)
//aktuellen Bereich und Seitenzahl speichern
$rangeBefore:=WP Text range(WParea;wk end text;wk end text)
$info:=WP Get position($rangeBefore)
$memoPage:=$info.page
//den Inhalt einfügen, den Bereich unverändert lassen
WP INSERT DOCUMENT($rangeBefore;$insert;wk append;wk exclude from range)
//Position nach dem Einsetzen prüfen
$rangeAfter:=WP Text range(WParea;wk end text;wk end text)
$info:=WP Get position($rangeAfter)
If($memoPage#$info.page) // Wenn sich die Seite geändert hat, einen Seitenumbruch einfügen.
WP INSERT BREAK($rangeBefore;wk page break;wk replace)
End if
End for each
Dieses Beispiel zeigt das zurückgegebene Rechteck mit den Begrenzungskoordinaten, angegeben in targetObj.
$default:=WP Text range(WPArea) //Standard (Text) Range
$textCoordinates:=WP Get position($default) //rote gestrichelte Linie
$paragraph:=WP Create paragraph range($default) //Absatz Range
$paraCoordinates:=WP Get position($paragraph) // grüne gestrichelte Linie
Rote gestrichelte Linie: $textCoordinates Objektwerte
Grüne gestrichelte Linie: $paraCoordinates Objektwerte
Hinweis: Werden mehrere Spalten angezeigt, kann die Eigenschaft rangeHeight (volle Linien) größer sein als bounds.bottom-bounds.top (gestrichelte Linien):
Produkt: 4D
Thema: 4D Write Pro Programmiersprache
Nummer:
1577
Erstellt: 4D v17
Geändert: 4D v17 R3
Geändert: 4D v17 R4
4D Write Pro Handbuch ( 4D v20 R7)