Start Seite



Vee-Logo VEE-Menuleiste

Achtung ! Diese Seiten werden bald eingestellt.

Jetzt neu unter my-vee.de

Eigenes Menü im VEE Programm:

Kurzbeschreibung:
Anleitung:
Syntax:
Merge-Format:
Code-Format:
Hinweise:

Download des VEE-Menüs
ca.5 KByte als .zip-File.

Top



Eigenes Menü im VEE Programm:

Menu Kurzbeschreibung:

Mit VEE hast du die Möglichkeit ein oder mehrere eigene Popup Menüs in der VEE-Menü-Leiste zu integrieren.
So hast du deine favorisierten Formeln oder Calls mit einem Mausklick gleich zur Hand.
Alle Files mit der Endung .mnu enthalten die notwendigen Daten.
Diese Files kann man selbst erstellen oder modifizieren.
Sie werden automatisch in alphabethischer Reihenfolge von VEE geladen und müssen im
Install Directory stehen (z.B."C:\Programme\Aligent\VEE Pro 6.0\...").

Anleitung:

Das Menü-File basiert auf einem ASCII-Text mit den Anweisungen des VEE-Programm-Interpreters.
Diese Anweisungen sind mit einem Editor (Notepad) leicht selbst zu schreiben.
Die Datei muß später umgenannt werden, so dass sie mit "beliebigerDateiname.mnu" endet.

Erstellungs-Formate:

Es gibt zwei Wege Menüs zu erzeugen :

1. als Merge-Format
2. als Code-Format

Merge-Format VEE-Menuleiste

Beispiel-Listing:
#Beispiel-Text für ein Menü im Main Verzeichnis.       
"MENU->Flow"
("Formeln"
     ("Deg 2 Rad"
     [visibleWhen notRunning]
     getDevicesFrom: "~installDir/lib/convert/Deg2Rad.vee"
     [desc "Konvertiert von Grad zu Radiand"]
      )
)
# hier kann ein neuer Eintrag erfolgen.

Syntax Erklärungen:

1. Alle Zeilen die mit einem # beginnen sind Kommentare.
2. Die Platzierung eines neuen Menü Eintrags erfolgt immer vor einem gesetzen Popup-Namen.
    In diesem Fall wird der Popup-Name Formeln zwischen Debug und Flow gesetzt.
    z.B.  "MENU->Flow", der Popup-Name Flow muss im ursprünglichen VEE-Menü vorhanden sein,
    es können alle vorhandenen Popup-Namen gewählt werden.
3. Die Klammern entsprechen den Verzeichnis-Ebenen und müssen logisch (bei mehreren
    Untermenüs) gesetzt werden.
4. Möchtest du am Ende eines Menüs ein neues Popup setzen, so musst du z.B. "MENU->Flow->END"
    einsetzen.
5. Der Term [visibleWhen notRunning] ist optional und wird meist mit angeben.
6. Mit dem Tag getDevicesFrom:wird das gewünschte Programm in die Paste-Funktion geladen, das
    Verzeichnis+File wird
mit der Pfad-Angabe "~installDir/lib/convert/Deg2Rad.vee" bestimmt.
    Das zuladene Programm muss natürlich verhanden sein, sonst klappt es nicht.
7. Der Term  [desc "Konvertiert von Grad zu Radiand"] zeigt die Funktionsbeschreibung in der unteren
    Statuszeile des VEE-Programms.

8. Du kannst bei mehreren Menüpunkten zur Übersichtlichkeit eine Trennlinie einfügen
    der Tag dafür ist [separator] .

Code-Format: VEE-Menuleiste

Beispiel-Listing
# Install of entire main level cascaded menu.
"MENU->Device"
("Formeln"
     ("A[B]"
         [visibleWhen notRunning]
         [desc "Get the value B from Array A"]
         createObject:`(component 0 "FORMULA"
         (properties(name "A[B]")(expr 1 "A[B]"))
             (interface
                  (input 1(name "A")(optional yes))
                  (input 2(name "B")(optional yes))
                  (output 1(name "Result")(tag "Result")(lock name constraints)(optional yes))
             )
            (views(detail)(active open)(icon(extent 25 25))(terminals on)(pinCenter 220 150))
      )
)
# neuer Eintrag.
     ("Ary[B]=C"
         [visibleWhen notRunning]
         [desc "'Set the value C in Ary[B]'"]
         createObject:`(component 1 "FORMULA"
         (properties(name "Ary[B]=C")(expr 1 "Ary[B]=C"))
             (interface
                  (input 1(name "Ary")(optional yes))
                  (input 2(name "B")(optional yes))
                  (input 3(name "C")(optional yes))
                  (output 1(name "Ary")(tag "Ary")(lock name constraints)(optional yes))
             )
             (views(detail)(active open)(icon(extent 50 0))(terminals on)(pinCenter 220 120))
     )
)
# neuer Eintrag.
("Ary[B,*]=C"
[visibleWhen notRunning]
[desc "'Set C in the second Dim of Ary"]
createObject:`(component 2 "FORMULA"
(properties(name "Ary[B,*]=C")(expr 2 "Ary[B,*]=C" ""))
(interface(input 1(name "Ary")(optional yes))
(input 2(name "B")(optional yes))
(input 3(name "C")(optional yes))
(output 1(name "Ary")(tag "Ary")(lock name constraints)(optional yes)))
(views(detail)(active open)(icon(extent 59 0))(terminals on)(pinCenter 270 190))))
# neuer Eintrag.
[separator]
("SystemTime"
[visibleWhen notRunning]
[desc "Get the systemtime"]
createObject:`(component 3 "FORMULA"
(properties(name "SystemTime")(expr 1 "now() MOD 86400"))
(interface(output 1(name "Result")(tag "Result")(lock name constraints)
(optional yes)))
(views(detail)(active icon)(icon(extent 75 15))(terminals on)(pinCenter 200 160))))
)
 

Code-Erklärungen:

1. Der grundsätzliche Aufbau entspricht dem des Merge-Formats bis zum 
    Term [desc "Get the value B from Array A"].
2. Mit der Anweisung createObject:`(component0 "FORMULA" wird ein Formel-Objekt erzeugt.
3. Die properties (Eigenschaften) legen den Namen und die mathematische Funktion fest.
4. Die interface Anweisung bestimmt die Ein-Ausgänge des Objekts.
5. Mit der views Anweisung werden Ansicht, Größe und Verhalten zugewiesen.
6. Bei eigenen Kompositionen mußt du den Quelltext des VEE-Programms mit einem
    Editor untersuchen, um die nötigen Parameter zu bekommen.

Hinweise:

Wenn das Menü mit dem Merge-Format erzeugt wurde, wird automatisch ein Eintrag im Save-History des VEE-Programms erzeugt.
Beim Code-Format erfolgt kein Eintrag, er ist aber aufwendiger zu programmieren.
Wird das VEE-Programm nicht gestartet oder sind wirre Zeichen im Menü, so hast du was falsch gemacht (meistens sind es die Klammern), dann das eigene.mnu editieren oder löschen.
Beschädigen kannst du das VEE-Programm dadurch nicht.

Dann probier mal schön



Top