RESOLVE POINTER

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 6.0


RESOLVE POINTER (Zeiger; VarName; TabNum; FeldNum)

ParameterTypBeschreibung
ZeigerZeigerZeiger für den das referenzierte Objekt
gefunden werden soll
VarNameStringName der referenzierten Variablen oder
leerer String
TabNumNumerischZiffer der referenzierten Tabelle bzw.
Arrayelemente oder 0 oder -1
FeldNumNumerischZiffer des referenzierten Feldes oder 0

Beschreibung

Der Befehl RESOLVE POINTER findet die Information des referenzierten Objekts über Zeiger und gibt ihn in den Parametern VarName, TabNum und FeldNum zurück.

RESOLVE POINTER gibt je nach Art des referenzierten Objeks folgende Werte zurück:

Referenziertes ObjektParameter
VarNameTabNumFeldNum
None (Zeiger NIL)"" (leerer String)00
VariableName der Variablen-10
ArrayName des Array-10
Array ElementName des ArrayElementnummer0
Tabelle"" (leerer String)Tabellennummer0
Feld"" (leerer String)TabellennummerFeldnummer

Hinweis: Ist der in Zeiger übergebene Wert kein Zeigerausdruck, tritt ein Syntaxfehler auf.

RESOLVE POINTER kann nicht für Zeiger auf lokale Variablen verwendet werden.

Beispiele

1. Sie erstellen in einem Formular eine Gruppe von 100 eingebbaren Variablen, bezeichnet mit v1, v2... v100. Dazu führen Sie folgendes aus:

a. Erstellen Sie eine eingebbare Variable mit der Bezeichnung v.

b. Legen Sie die Eigenschaften des Objekts fest.

c. Weisen Sie diesem Objekt folgende Methode zu:

   DoSomething (Self) ` DoSomething ist eine Projektmethode in Ihrer Datenbank

d. An dieser Stelle können Sie nun entweder die Variable so oft wie benötigt duplizieren oder das Symbol für Matrix im Formulareditor verwenden.

e. Müssen Sie den Index der Variablen wissen, für den die Methode aufgerufen wurde, schreiben Sie in der Methode DoSomething:

   RESOLVE POINTER($1;$vsVarName;$vlTableNum;$vlFieldNum)
   $vlVarNum:=Num(Substring($vsVarName;2))

Bauen Sie Ihr Formular auf diese Weise auf, schreiben Sie die Methoden für die 100 Variablen nur einmal; Sie müssen nicht schreiben DoSomething (1), DoSomething (2)...,DoSomething (100).

2. Zur Fehlerbehebung müssen Sie prüfen, ob der zweite Parameter ($2) einer Methode ein Zeiger auf eine Tabelle ist. Zu Beginn dieser Methode schreiben Sie:

      ` ...
   If (<>DebugOn)
      RESOLVE POINTER($2;$vsVarName;$vlTableNum;$vlFieldNum)
      If (Not(($vlTableNum>0)&($vlFieldNum=0)&($vsVarName="")))
         ` WARNUNG: Der Zeiger ist keine Referenz auf eine Tabelle
         TRACE
      End
   End if
      ` ...

3. Siehe Beispiel zum Befehl DRAG AND DROP PROPERTIES.

Referenz

DRAG AND DROP PROPERTIES, Field, Get pointer, Is a variable, Nil, Table.

Anwendung des Befehls

ContactListBox


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next