Objekt bearbeiten=>Eigenschaften¶
In diesem Dialogfeld kann der Objekt-Name bearbeitet werden sowie andere Eigenschaften eines Objekts festgelegt werden.
- Name
- In Textfeld können Sie den Namen eines Objekts ändern. Der Objekt-Name wird angezeigt, wenn Sie die Funktion ObjShow im Kommandofenster aufrufen (siehe Ansicht=>Kommando-Fenster).
- 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.
- Nicht Drucken
- Mit diesem Kontrollfeld können Sie festlegen, das ein Objekt nur auf dem Monitor angezeigt wird.
- Als Schaltfläche anzeigen
- Der Text wird als graue Schaltfläche angezeigt. Beim Überfahren der Schaltfläche ändert sich die Farbe in blau.
- 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 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 OBJGetMap, MapLookup, 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 OBJSetProtect) kann die Druckausgabe verhindert werden, wenn das Textfeld nur als Schaltfläche verwendet werden soll.Über OBJGetProtect / 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 ShellExecute.Beispiel 2: Achsen Ein- und Ausschalten:
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; }
Siehe auch
Objekt bearbeiten=>Text, Objekt bearbeiten=>Muster, Objekt bearbeiten=>Farbverlauf, Objekt bearbeiten=>Position und Größe
id-665238