.. highlightlang:: us .. index:: Objekt bearbeiten=>Eigenschaften .. index:: y^edit-object-properties .. _objekt-bearbeiteneigenschaften: .. _edit-object-properties: Objekt bearbeiten=>Eigenschaften -------------------------------- In diesem Dialogfeld kann der Objekt-Name bearbeitet werden sowie andere Eigenschaften eines Objekts festgelegt werden. .. image:: S:/uniplot-obj/images/ObjektbearbeitenEigenschaften.* .. us.dialog .. us.dlgitem **Name** In Textfeld können Sie den Namen eines Objekts ändern. Der Objekt-Name wird angezeigt, wenn Sie die Funktion :ref:`ObjShow` im Kommandofenster aufrufen (siehe :ref:`ansichtkommando-fenster`). .. us.dlgitem **Position und Größe schützen** Sie können die Position und Größe von Flächen-Objekten gegen versehentliches Verändern mit der Maus schützen. .. us.dlgitem **Nicht Drucken** Mit diesem Kontrollfeld können Sie festlegen, das ein Objekt nur auf dem Monitor angezeigt wird. .. us.dlgitem **Als Schaltfläche anzeigen** Der Text wird als graue Schaltfläche angezeigt. Beim Überfahren der Schaltfläche ändert sich die Farbe in blau. .. us.dlgitem **OnClick-Callback-Name** Hier kann der Name einer Funktion angegeben werden, der beim Klicken der Schaltfläche aufgerufen wird. Beispiel: Es soll eine Schaltfläche erzeugt werden, die beim Anklicken das Dokument als PDF-Datei schreibt. Erzeugen Sie dazu die folgende Datei und speichern Sie sie im Autoload-Verzeichnis von UniPlot, damit sie nach jedem Start von UniPlot zur Verfügung steht:: def button_pdf_export() { hDoc = AppGetActiveDocument(); ssPath = DocGetPathName(hDoc); if (ssPath == "") { MessageBoxError("Please save the UniPlot document before PDF-Export"); return FALSE; } sv = SplitPath(ssPath); sv[4] = ".pdf"; DocPrintPDF(hDoc, sum(sv)); ShellExecute(sum(sv)); return TRUE; } Anstatt die Funktion im Autoload-Verzeichnis von UniPlot zu speichern, können Sie sie auch mit :ref:`DocSetScript` im Dokument einbetten. **Anmerkungen** * Wenn die Callback-Funktion eingeschaltet ist, kann das Textfeld noch über die rechte Maustaste bearbeitet werden. * Über ``hMap = OBJGetMap(hText, "CallbackFunctions")`` erhält man den Namen der Callback-Funktion (siehe :ref:`OBJGetMap`, :ref:`MapLookup`, :ref:`MapPrint`). * Über ``_g()._handle`` kann innerhalb der Callbackfunktion auf die Zugriffsnummer des Textfeldes zugegriffen werden. Die Callbackfunktion kann z. B. den Anzeigetext der Schaltfläche ändern. * Über das Attribut "Nicht drucken" (``BL_NOPRINT``, siehe auch :ref:`ObjSetProtect`) kann die Druckausgabe verhindert werden, wenn das Textfeld nur als Schaltfläche verwendet werden soll. * Über :ref:`ObjGetProtect` / :ref:`ObjSetProtect` können die Attribute ``BL_CLICKBUTTON``, ``BL_DISPLAYBUTTON`` per Programm verändert werden. * Sollen der Callback-Funktion weitere Informationen zur Verfügung stehen kann hinter den Funktionsnamen ein Fragezeichen ``?`` geschrieben werden, gefolgt von beliebigem Text. Es empfiehlt sich die Query-String Syntax von URLs (Uniform Resource Locator), also ``?par1=val1&par2=val2``. **Beispiel 1**: Hyperlink-Funktion:: // button_link?http://www.uniplot.de def button_link() { hTB = _g()._handle(); ssFuncName = ObjectGetCallbackFunctionName(hTB, "ObjectClickCallback"); sv = strtok(ssFuncName, "?") if (len(sv) >= 2) { s = strcat(sv[2:len(sv)], "?") ShellExecute(s); } else { ShellExecute(TBGetText(hTB)); } } Die Funktion prüft, ob Text hinter dem ``?`` vorhanden ist, falls ja wird dieser Text als Ziel verwendet, ansonsten wird der Text des Textfeldes verwendet. Als Ziel können Internetseiten oder Dateien angegeben werden, siehe :ref:`ShellExecute`. **Beispiel 2**: Achsen Ein- und Ausschalten: .. image:: S:/uniplot-obj/images/button.* Quelltext:: // button_layer_show?Diagram1 def button_layer_show() { hTB = _g()._handle(); hPage = AppGetActivePage() ssFuncName = ObjectGetCallbackFunctionName(hTB, "ObjectClickCallback"); sv = strtok(ssFuncName, "?") hLayer = PageGetLayerHandle(hPage, sv[2]) nFlags = OBJGetProtect(hLayer) if (nFlags & BL_HIDE) { OBJSetProtect(hLayer, nFlags & ~BL_HIDE) TBSetText(hTB, "Hide") } else { OBJSetProtect(hLayer, nFlags | BL_HIDE) TBSetText(hTB, "Show") } PageReplot(hPage); return TRUE; } .. us.dialog .. seealso:: :ref:`objekt-bearbeitentext`, :ref:`objekt-bearbeitenmuster`, :ref:`objekt-bearbeitenfarbverlauf`, :ref:`objekt-bearbeitenposition-und-große` :sub:`id-665238`