Version 2004.5 (Geändert)
WR GET CURSOR COORDINATES (Bereich; HorizPos; VertPos; Höhe)
Parameter | Typ | Beschreibung | |
Bereich | Lange Ganzzahl | 4D Write Bereich | |
HorizPos | Ganzzahl | Horizontale Position auf der Seite | |
VertPos | Ganzzahl | Vertikale Position auf der Seite | |
Höhe | Ganzzahl | Höhe des Cursors |
Beschreibung
Der Befehl WR GET CURSOR COORDINATES gibt die Koordinaten des Cursors in Bezug auf die obere linke Ecke der Seite zurück. Diese Werte werden in der aktuellen Standardeinheit des Dokuments ausgedrückt.
Wird der Befehl mit einem in Bereich gewählten Text oder einem Bild ausgeführt, gibt es zwei Möglichkeiten:
Wurde die Auswahl per Programmierung erstellt, gilt der Cursor als an das Ende der Auswahl gesetzt.
Wurde die Auswahl manuell erstellt, gilt der Cursor als an die Position gesetzt, wo die Maustaste losgelassen wurde. Haben Sie z.B. einen Absatz manuell durch Ziehen der Maus von der letzten zur ersten Zeile ausgewählt, wird der Cursor an den Anfang der Auswahl gesetzt.
Der Parameter Höhe gibt die aktuelle Höhe des Cursors zurück. Wurde nur ein Bild ausgewählt, wird die Höhe des Bildes zurückgegeben.
Beispiel
Ab 4D Version 2004.5 lassen sich mit der FunktionPrint form 4D Write Bereiche drucken. In der Regel werden diese Bereiche mit einer festen Höhe gedruckt. Nachfolgendes Beispiel zeigt, wie Sie 4D Befehle zum Drucken und den Befehl WR GET CURSOR COORDINATES einsetzen können, um die Druckhöhe des 4D Write Bereichs gemäß seinem Inhalt zu variieren.
Die von der FunktionPrint form aufgerufene Formularmethode lautet:
If(Form event=On Printing Detail) GET OBJECT RECT(4DWriteArea;$left;$top;$right;$bottom) $markerpos:=Get print marker(Form Detail) $areaheight:=$bottom-$top ` Höhe des 4D Write Bereichs $newheight:=sizecalcul ` sizecalcul gibt die Höhe des 4D Write Bereich gemäß seinem Inhalt an ` diese Methode folgt unten $shift:=$newheight-$areaheight MOVE OBJECT(4DWriteArea;0;0;0;$shift) ` 4D Write Bereich anpassen SET PRINT MARKER(Form Detail;$markerpos+$shift) ` Markierung bewegen End if
Die Methode
sizecalcullautet:
$area:=WR New offscreen area WR BLOB TO AREA ($area;[Table 1]Write_) WR SET DOC PROPERTY ($area;wr unit ;2) ` Wir arbeiten in Pixel WR SET SELECTION ($area;1;1) ` Textanfang WR GET CURSOR COORDINATES ($area;$hor;$startvert;$cursor1) WR SET SELECTION ($area;1000000;1000000) ` Textende WR GET CURSOR COORDINATES ($area;$hor;$vert;$cursor2) WR DELETE OFFSCREEN AREA ($area) $0:=Trunc(($vert-$startvert+$cursor1+$cursor2)*0.75;0)
Referenz