OnCommand

Der Funktionsname OnCommand steht für den Namen einer Funktion, die durch ein Menü oder einen Schalter einer Schalterleiste aufgerufen wird.

OnCommand()

Returnwert

OnCommand gibt keinen Wert zurück.

Kommentar

Erstellung eines Kommandos

Die Erstellung eines Kommandos soll an einem Beispiel gezeigt werden:

Es soll ein Befehl erzeugt werden, mit dem man ein Text-Objekt umbenennen kann. In UniPlot haben alle Objekte Namen, damit man die Objekte identifizieren kann. Der Befehl soll in das Menü für Text-Objekte eingefügt werden. Das Menü kann aufgerufen werden, indem man das Text-Objekt mit der rechten Maustaste anklickt.

Zunächst wird die Funktion geschrieben, mit der ein Objekt umbenannt werden kann:

def ObjRenameDlg(handle)
{
    ssName = ObjGetName(handle);

    svRet = DialogBox("Name:  |                           |", ssName, "Rename");
    if (svRet[1] == "DLG_CANCEL") {
        return FALSE;
    }
    return ObjSetName(handle, svRet[1]);
}

Der Eingabe-Parameter der Funktion ObjRenameDlg ist die Zugriffsnummer (handle) des Objekts, dass umbenannt werden soll. Die Funktion erfragt den Namen des Objekts (ObjGetName) und stellt den Namen in einem Editierfeld einer Dialog-Box dar (Funktion DialogBox). Falls der Benutzer nicht die Abbrechen-Taste gedrückt hat, wird das Objekt mit der Funktion ObjSetName umbenannt.

Nun kann die OnCommand-Funktion geschrieben werden. Wir wählen den Namen OnRename. Die Funktion erfragt die Zugriffsnummern aller selektierten (markierten) Zeichenobjekte der aktiven Seite.

def OnRename()
{
    handle = GetSelectedObjects();
    ObjRenameDlg(handle[1]);
}

Mit der Funktion MenuInsertCommands kann die neue Funktion in das Menü für Text-Objekte eingefügt werden.

MenuInsertCommands("OBJ_TB", "OnRename", -1);

Die MnSetCommand Funktion legt den Text fest, der für das Kommando im Menü angezeigt werden soll.

MnSetCommand("OnRename", "Umbenennen");

id-1145178