4D v15

OBJECT GET COORDINATES

Home

 
4D v15
OBJECT GET COORDINATES

OBJECT GET COORDINATES  


 

 

OBJECT GET COORDINATES ( {* ;} Objekt ; Links ; Oben ; Rechts ; Unten)

Eingeführt mit 4D v14 R5

Kapitel: Objekte (Formulare)

Der Befehl OBJECT GET COORDINATES kann jetzt Koordinaten für Teile der Listbox zurückgeben, z.B. Spalten, Kopf- oder Fußteile, und nicht nur für das Objekt Listbox selbst.

In bisherigen Versionen gab dieser Befehl immer die Koordinaten des Objekts Listbox zurück, egal auf welchen Teil er angewendet wurde. Jetzt werden die Koordinaten des jeweiligen Unterobjekts zurückgegeben, wenn die angegebene Referenz in Objekt ein Unterobjekt Kopfteil, Spalte oder Fußteil der Listbox ist.

Auf diese Weise können Sie z.B. beim Klicken in eine Kopfteilzelle der Listbox ein Icon anzeigen, über das sich ein Kontextmenü öffnen lässt.

Hinweis zur Kompatibilität: Haben Sie diesen Befehl in Ihrer Anwendung für den Kopfteil, Fußteil oder eine Spalte einer Listbox verwendet, passen die Koordinaten nach der Konvertierung in 4D v14 R5 oder höher nicht mehr. Um die Koordinaten für die ganze Listbox zu erhalten, müssen Sie den Code entsprechend anpassen, damit er für die Listbox selbst und nicht für ein Unterobjekt aufgerufen wird.

Zur Wahrung der Konsistenz bleibt der Referenzrahmen gleich, egal, ob das Objekt ein Unterobjekt der Listbox oder die Listbox selbst ist: Ausgangspunkt ist die obere linke Ecke des Formulars, welches das Objekt enthält. Für Unterobjekte der Listbox sind die zurückgegebenen Koordinaten theoretisch, d.h. sie berücksichtigen den Scrollen-Status der Listbox vor dem Zuschneiden. So kann es vorkommen, das das Unterobjekt nicht oder nur teilweise sichtbar ist, wenn die angegebenen Koordinaten außerhalb der Formulargrenzen oder negativ sind. Um herauszufinden, ob das Unterobjekt bzw. welcher Teil davon sichtbar ist, müssen Sie die zurückgegebenen Koordinaten mit den Koordinaten der Listbox vergleichen. Dabei gelten folgende Regeln:

  • Alle Unterobjekte werden auf die Koordinaten der zugehörigen Listbox zugeschnitten, d.h. wie sie vom Befehl OBJECT GET COORDINATES für die Listbox zurückgegeben werden.
  • Die Unterobjekte Kopfteil und Fußteil erscheinen vor dem Inhalt der Spalte: Überschneiden sich die Koordinaten einer Spalte mit den Koordinaten der Zeilen für Kopf- bzw. Fußteil, wird die Spalte an dieser Schnittstelle nicht angezeigt.
  • Elemente gesperrter Spalten erscheinen vor den Elementen scrollbarer Spalten: Überschneiden sich die Koordinaten eines Elements in einer scrollbaren Spalte mit den Koordinaten eines Elements in einer gesperrten Spalte, erscheint es nicht an dieser Schnittstelle.

Nehmen wir als Beispiel folgende Darstellung eines Formulars:

Die Koordinaten von Capital werden als rotes Rechteck dargestellt. Wie Sie im ersten Bild sehen können, ist die Spalte länger als die Listbox, d.h. ihre Koordinaten liegen außerhalb der unteren Grenze der Listbox, inkl. Fußteil. Im zweiten Bild wurde die Listbox gescrollt, so dass die Spalte jetzt auch die Spalte Language und den Kopfteil überlagert. Um den tatsächlich sichtbaren Bereich (grüner Teil) zu berechnen, müssen Sie die roten Bereiche davon subtrahieren.

Für eine Oberflächenanzeige soll der angeklickte Bereich mit einem roten Rechteck eingerahmt werden:

Die Objektmethode der Listbox lautet wie folgt:

 OBJECT SET VISIBLE(*;"rectangleInfo";False//Roten Rahmen für Rechteck setzen
 $ptr:=OBJECT Get pointer(Object current)
 OBJECT GET COORDINATES($ptr->;$x1;$y1;$x2;$y2)
 OBJECT SET VISIBLE(*;"RedRect";True)
 OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)
 
 OBJECT GET COORDINATES(*;"LB1";$lbx1;$lby1;$lbx2;$lby2)
 If($lby1>$y1)|($lby2<$y2// liegt der angeklickte Bereich außerhalb der Listbox
    OBJECT SET VISIBLE(*;"Alert";True//eine Meldung zeigen
 Else
    OBJECT SET VISIBLE(*;"Alert";False)
 End if

Diese Methode gibt theoretische Koordinaten zurück. Wird die Größe der Listbox verändert, müssen Sie u.U. den Ausschnitt berechnen, um den sichtbaren Teil herauszufinden:

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Programmiersprache

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D v15 - Upgrade (Standard Edition) ( 4D v15)