Verweis auf ein InDesign®-Objekt (Rahmen, Tabelle, Dokument, ...).

Verweis auf ein InDesign®-Objekt (Rahmen, Tabelle, Dokument, ...). Mit Hilfe der ItemRefs kann das Objekt im Zieldokument gefunden werden. Das Objekt enthält einen Verweis auf das Dokument und eine sogenannte UID, über die das Objekt im Dokument gefunden werden kann. UIDs sind dokumentweit eindeutig und werden bei Anlage neuer Objekte immer größer. Die UID 1 bezeichnet das Dokument selbst.

Häufigste Anwendung der ItemRefs sind gFrame und gTable.

So können Sie die Rahmen-UIDs im Dokument anzeigen:

  1. Rechtsklick in das Dokument
  2. Im erscheinenden Kontextmenü den Eintrag Nägel und Magneten -> Zeigen auswählen
  3. Nochmal Rechtsklick in das Dokument
  4. Im erscheinenden Kontextmenü den Eintrag Nägel und Magneten -> Rahmennummern zeigen auswählen

Um die UID einer ItemRef-Variable zu erfragen, verwenden Sie die Funktion item::getint. Mit Hilfe des Menüs

   Fly out der Productrecherche -> Verschiedenes -> Rahmen auswählen ...

können die Rahmen im Dokument ausgewählt werden: In dem erscheinenden Dialog können Sie einen beliebigen Text eingeben. Alle Zahlen darin werden als UIDs interpretiert und gültige Rahmen-UIDs werden im Dokument ausgewählt.

int main ()
{
 	showmessage ("UID of gFrame : %d", item::getint (gFrame));

  return 0; }

Mit item::define können Sie aus einer als Ganzzahl (int) gegebenen UID leicht ein ItemRef erzeugen. Aber Achtung: Die gegebene UID (hier 1234), sollte dann auch ein gültiges Objekt im Dokument (hier das aktuelle Frontdokument) adressieren.

int main ()
{
 	ItemRef 		myRef	= item::alloc ();

  item::define (myRef, 0, 1234);

  return 0; }

Die Klasse einer ItemRef-Variable kann mit item::get_class erfragt werden.

int main ()
{
 	ItemRef 		pageRef	= item::alloc ();

  page::get_uid (0, 1, pageRef);

  showmessage ("Class of frames : 0x%04X", item::get_class (gFrame));   showmessage ("Class of pages : 0x%04X", item::get_class (pageRef));

  return 0; }

Die UID 1 bezeichnet immer das Dokument. Das Beispiel erzeugt eine ItemRef des Dokumentes des aktuellen Skriptrahmens und zeigt den Dokumentnamen.

int main ()
{
 	ItemRef		docRef	= item::alloc ();
 	char		docName	[4000];

  item::define (docRef, gFrame, 1);   document::name (docName, docRef);   showmessage ("%s", docName);

  return 0; }

Siehe auch
item
frame
table
...

Alphabetic index HTML hierarchy of classes or Java