with
with
Überprüfung der Objektnamen bei der Übersetzung
Details
- Siehe: Verwandte Befehle
Das with-Konstrukt ist ein Sprachelement, welches in Verbindung mit dem Operator $: (nicht zu verwechseln mit $) das Vorhandensein von Oberflächen-Objekten bereits zur Übersetzungszeit sicherstellt.
Wird ein Deskriptor mit dem $-Zeichen referenziert, erfolgt die Überprüfung erst zur Laufzeit der Prozedur. Kann kein Objekt mit dem angegebenen Namen ermittelt werden, erfolgt der Laufzeitfehler "Deskriptor ungültig" und die Prozedur wird abgebrochen.
Mit dem with-Konstrukt und dem $:-Operator erfolgt die Überprüfung bereits zum Zeitpunkt der Übersetzung.
Syntax:
with <Dialogname> $:<Objektname>->...
Existiert das Objekt oder der Dialog nicht, wird die Übersetzung mit dem Fehler "Name unbekannt" abgebrochen. Als Dialog können folgende Objekte angegeben werden:
Sollen mehrere Anweisungen innerhalb des with-Konstrukts verarbeitet werden, müssen diese durch die geschweiften Klammern, in der üblichen Weise geklammert werden.
Beispiele:
// Überprüfung eines Objekts
with FrmKunden $:edKndNummer->wpCaptionInt # 0;
// Überprüfung bei mehreren Anweisungen
with FrmKunden
{
...
$:edKndNummer->wpCaptionInt # 0;
$:edKndName->wpCaption # '';
...
}
with-Konstrukte können geschachtelt werden:
with FrmKunden
{
...
with FrmSelectionDialog
{
...
$:rlsSelection->wp...
...
}
...
}
Ist das Objekt rlsSelection im Dialog FrmSelectionDialog nicht vorhanden, wird dieses im Dialog FrmKunden gesucht. Erst wenn es auch dort nicht vorhanden ist, erfolgt ein Übersetzungsfehler. Die Suche erfolgt immer vom inneren zum äußeren with-Block.
Mit dem with-Konstrukt werden auch die Namensreferenzen auf Dialog-Objekte schneller aufgelöst. Wird während der Übersetzung eine $:-Referenz gefunden, wird der Pfad zu dem entsprechenden Objekt gespeichert. Zur Laufzeit muss nicht mehr das ganze geladene Objekt durchsucht werden, statt dessen erfolgt die Ermittlung des Deskriptors direkt über den gespeicherten Pfad.
Wurde die Datenbank von einem Stand vor Version 5.0 konvertiert, muss ein Dialog mit der aktuellen Version geöffnet und wieder gespeichert werden, damit die with-Anweisung verwendet werden kann.