 
  Hilfe fr MyMenu
 

Dieses Programm ist Freeware. (C) 1996 Richard Atterer
V0.90, 29. September 1996

Inhalt:
1.     Einleitung
1.1.   Rechtliches
1.2.   Kurzbeschreibung
1.3.   Wann ist es ntzlich?
1.4.   Benutzung

2.     Die Men-Datei
2.1.   Einleitung
2.2.   Syntax
2.2.1. Befehle vor Men-/Meneintrags-Definitionen
2.2.2. Men-Definitionen
2.2.3. Meneintrags-Definitionen
2.2.4. *commands, die den Eintrags-Definitionen folgen
2.2.5. Zustze
2.3.   Ntzliche *commands

3.     Tips & Tricks

4.     Bekannte Probleme

5.     Die Applikation TypeName

____________________________________________________________________________


1.     Einleitung
=================

1.1.   Rechtliches

Dieses Programm ist Freeware. (C) 1996 Richard Atterer
Beim Verbreiten dieses Programms darf kein Gewinn gemacht werden; wird Geld fr die Weitergabe verlangt, darf der Betrag die entstehenden Unkosten nicht bersteigen. Um das Programm als Extra zusammen mit kommerzieller Software, mit einem Magazin o.. zu verbreiten, bedarf es der vorherigen schriftlichen Einwilligung des Autors.
Es mssen stets alle Dateien des Programms weitergegeben werden.
Benutzung auf eigene Gefahr! Fr eventuelle Schden, die durch die Benutzung des Programms entstehen, auch wenn sie durch Fehler im Programm oder in der Anleitung verursacht wurden, bernimmt der Autor keine Haftung. Es wird nicht garantiert, da das Programm fr eine bestimmte Aufgabe ntzlich ist.


1.2.   Kurzbeschreibung

MyMenu ist ein Programm, das es dir auf einfache Weise erlaubt, selbst ein beliebiges Mensystem aufzubauen. Jeder Meneintrag fhrt, wenn er angewhlt wird, eine oder mehrere *commands aus (man kann z.B. Verzeichnisse ffnen oder Programme starten). Auerdem kann man beliebige Tastenkombinationen (auch Maustasten!) als Hotkeys definieren. Werden die Tasten gedrckt, ffnet sich entweder das entsprechende Men oder die Befehle des jeweiligen Meneintrags werden ausgefhrt.
Keine Angst, wenn du von *commands (sprich: star commands) keine Ahnung hast  die wichtigsten Befehle werden weiter unten beschrieben!

Da MyMenu stndig im Speicher sein mu, damit es die Hotkeys abfangen kann, wurde besonderer Wert darauf gelegt, da es sehr sparsam mit dem Speicherplatz umgeht. So werden, wenn das Men erst bei Bedarf nachgeladen wird (es kann auch stndig im Speicher bleiben) gerade mal etwas mehr als 2,6 kBytes bentigt, egal, wie gro das Men ist.


1.3.   Wann ist es ntzlich?

 beim Starten von Programmen  wenn du z.B. nur noch Alt Print drcken mut, um deinen Druckertreiber zu laden, oder eines deiner 50 Lieblingsprogramme mit zwei Mausklicks auf die Icon bar holen kannst, ohne vorher die 49 anderen, die sich im selben Verzeichnis befinden, booten zu mssen
 wenn du ein CD ROM-Laufwerk hast  du kannst die wichtigsten Verzeichnisse/Programme auf deinen CDs in dein Men aufnehmen und vermeidest damit, da du dich andauernd durch zahlreiche Verzeichnisse kmpfen mut. Dasselbe gilt natrlich auch fr Festplatten.
 bei umfangreichen Diskettensammlungen (v.a. fr Benutzer ohne Festplatte)
 fr andere Dinge, die du sonst immer wieder von Hand machen mut  z.B. wenn du, bevor du dein Textprogramm ldst, in eine bestimmte Bildschirmauflsung umschalten, zustzliche Fonts anmelden, den Font Cache vergrern, !Chars starten willst etc. etc.


1.4.   Benutzung

MyMenu bentigt RISC OS 3.00 aufwrts. (Es wurde unter RISC OS 3.11, 3.6 und 3.7/StrongARM getestet.)
Wenn das Programm mit einem Doppelklick gestartet wird, scheint gar nichts zu passieren, da MyMenu kein Icon auf der Icon bar installiert. Dementsprechend kann es auch nicht auf die sonst bliche Weise im Icon bar-Men beendet werden, sondern dies mu vom Fenster des Task-Managers aus geschehen.
Unter RISC OS 3.11 berlebt MyMenu weiche Resets (d.h. Shift Break oder Reset-Taster ohne weitere gedrckte Tasten). Leider sind weiche Resets in RISC OS 3.5 und spter abgeschafft worden... [FUNKTIONIERT LEIDER MOMENTAN NOCH NICHT RICHTIG]

Am Anfang ist ein Beispiel-Men vorhanden, das du natrlich nach Belieben ndern und erweitern kannst (bzw. sogar sollst!)  wenn du aber MyMenu an Andere weitergibst, sollte immer das ursprngliche Men dabeisein. Die in diesem Beispiel definierten Hotkeys erlauben es, die ROM-Applikationen zu starten, indem man Alt zusammen mit dem Anfangsbuchstaben der jeweiligen Applikation drckt, das Men wird geffnet, indem man MEN klickt, whrend sich der Mauszeiger am linken Bildschirmrand befindet.



2.     Die Men-Datei
=====================

2.1.   Einleitung

Das Aussehen des gesamten Mens wird in der Textdatei Menu beschrieben, die sich im Verzeichnis !MyMenu.Menu befindet. Im gleichen Verzeichnis ist auch noch die Datei MenuScan, in der die in der Men-Datei enthaltenen Informationen gespeichert werden. Sie wird automatisch von MyMenu erzeugt, damit das Nachladen des Mens schnell vonstatten geht. Die Interpretation der Men-Datei selbst kann nmlich bei (sehr) groen Mens durchaus eine Sekunde und lnger dauern, was lstig sein kann. Dadurch, da die Mendaten vorher in einem von MyMenu direkt verwendbaren Format gespeichert werden, mu der Teil des Programms, der die Interpretation besorgt, auch nicht die ganze Zeit ber im Speicher sein, so da knapp 5 kByte gespart werden. nderungen der Men-Datei werden deswegen aber auch nur erst dann erkannt, wenn MyMenu neu gestartet wird. Dazu mu man nur !MyMenu erneut doppelklicken. Den gleichen Effekt hat ein Doppelklick auf RescanMenu, das sich im gleichen Verzeichnis wie die Men-Datei befindet.
(Das Programm findet brigens heraus, ob MenuScan aktualisiert werden mu, indem beim Starten geprft wird, ob es die gleiche Datestamp wie Menu hat.) 

2.2.   Syntax

Beim Interpretieren wird die Men-Datei Menu zeilenweise abgearbeitet, wobei Leerzeilen sowie Zeilen, die mit | beginnen (Kommentarzeilen), ignoriert werden. Grundstzlich darf in jeder Zeile nur ein Befehl stehen. Leerzeichen vor oder nach Befehlen (auer bei den *commands) sind nicht erlaubt.


2.2.1. Befehle vor Men-/Meneintrags-Definitionen
--------------------------------------------------
Bevor die Definitionen fr die Mens und Meneintrge beginnen, knnen noch andere Befehle in der Datei vorkommen:

Special:*
Mit dieser Zeile, die unbedingt in der Datei stehen mu, wird ein Spezial-Zeichen definiert (in diesem Fall * ), das bei den nachfolgenden Mendefinitionen eine besondere Rolle spielt. Normalerweise drfte es nicht ntig sein, ein anderes Zeichen als * zu verwenden, aber dies kann der Fall sein, wenn man andernfalls gegen die folgenden Einschrnkungen verstoen wrde:
 Das Spezial-Zeichen darf nicht in Mennamen vorkommen.
 Es darf nicht das erste Zeichen eines Meneintrags sein.
 Keiner der *commands darf mit dem Spezial-Zeichen beginnen.

LoadOnDemand
Ist dieser Befehl nicht vorhanden, wird die Datei MenuScan, die das Men enthlt, beim Starten von MyMenu geladen und bleibt dann andauernd im Speicher. Ist er dagegen vorhanden, wird MenuScan erst bei Bedarf geladen, d.h. dann, wenn eines der definierten Mens angezeigt oder die *commands fr eine Tastenkombination ausgefhrt werden sollen. Sobald das Men wieder vom Bildschirm verschwindet oder der letzte der *commands ausgefhrt worden ist, werden die Mendaten wieder vergessen  sie mssen also jedesmal neu nachgeladen werden. Aus diesem Grund sollten Benutzer, die keine Festplatte besitzen, LoadOnDemand nicht verwenden, alle anderen knnen es tun, wenn sie meinen, da ihr Men zuviel Speicherplatz verbraucht. (Der beanspruchte Speicherplatz ist so gro wie die Dateigre von MenuScan.)

BufferAll
Diese Zeile, falls vorhanden, bewirkt, da sich das Programm so verhlt, als htte jeder der in der Datei folgenden Menpunkte einen B-Zusatz  es wird ignoriert, ob dieser tatschlich vorhanden ist oder nicht. Der B-Zusatz ist weiter unten beschrieben.
Ich empfehle dringend, BufferAll auf jeden Fall zu verwenden, wenn LoadOnDemand verwendet wird  ansonsten sind nmlich zwei Dateizugriffe ntig, um *commands auszufhren.


Nach den oben beschriebenen 13 Befehlen drfen nur noch Men- und Meneintrag-Definitionen in der Datei folgen.
Hinweis: Die folgenden Beschreibungen gehen davon aus, da das Spezial-Zeichen als * definiert worden ist. Wenn das bei dir nicht der Fall ist, mut du natrlich das von dir gewhlte Zeichen anstelle von * verwenden.


2.2.2. Men-Definitionen
------------------------
Mens werden definiert durch:
**Menname*

Man kann auch mit einem Befehl ein Men und gleichzeitig ein Untermen dieses Mens definieren:
**Menname*Untermenname*
oder
**Menname*Untermenname*Unter-Untermenname*
und so weiter. Zu beachten ist, da vor dem ersten Mennamen ** stehen mu und nach jedem Mennamen ein einzelnes *

Es ist ohne weiteres mglich, in spteren Mendefinitionen bereits vorhandene Mens zu nennen. Die Zeilen:
**MyMenu*Gfx & Sound*Graphics*
**MyMenu*Gfx & Sound*Sound*
erzeugen vier Mens: MyMenu, Gfx & Sound, und als Untermens von Gfx & Sound die beiden Mens Graphics und Sound.

Diese Art, die Mens zu definieren, bedeutet im Grunde, da man jedes Men anhand seines Pfades innerhalb der gesamten Menstruktur definiert, hnlich wie bei Pfadnamen von Dateien.


2.2.3. Meneintrags-Definitionen
--------------------------------
Meneintrge werden definiert durch
*Meneintrag-Name*
<gefolgt von einer oder mehreren Zeilen mit *commands>

Der Meneintrag-Name kann das Zeichen * enthalten, allerdings nicht am Anfang. *File $.M** ist mglich (ergibt den Eintrag File $.M*), **Info* dagegen nicht  dies wrde als Mendefinition interpretiert werden und nicht als Eintrag *Info.
Das Ende der Zeilen mit *commands wird dadurch erkannt, da das erste Zeichen der folgenden Zeile ein * ist (oder natrlich, da das Ende der Men-Datei erreicht ist).

Im Gegensatz zu den Mens wird bei den Meneintrgen nicht der volle Pfadname angegeben. Stattdessen wird der Eintrag in dasjenige Men aufgenommen, das in der letzten Mendefinitions-Zeile genannt worden ist. Am einfachsten lt sich dieses Prinzip mit einem Beispiel demonstrieren:

Diese Zeilen:                  ...erzeugen diese Menstruktur:
**MyMenu*                           
*Sag Hallo*                         
Echo Hallo                          ++             
**MyMenu*Apps*                      | MyMenu    |+ 
*Chars*                             +| Apps      | 
ChangeDynamicArea -fontsize 128k    | Sag Hallo |+
/Resources:$.Apps.!Chars            | Apps    =>| Chars     | 
*ChangeFSI*                         | Mode 31   | ChangeFSI | 
/<ChangeFSI$Dir>                    +++
**MyMenu*                           
*Mode 31*
WimpMode 31

Beachte, da die Reihenfolge der Eintrge in den Mens davon abhngt, welcher von ihnen zuerst in der Men-Datei auftaucht. Das gilt auch fr diejenigen Eintrge, die bei der Definition eines Untermens entstehen: Im obigen Beispiel wird das Untermen Apps erst definiert, nachdem Sag Hallo im Hauptmen eingetragen worden ist, deswegen steht der Meneintrag, der das Apps-Untermen ffnet, auch erst an zweiter Stelle.
brigens ist es vllig egal, wie oft in der Men-Datei zwischen verschiedenen Mens hin- und hergeschaltet wird (in unserem Beispiel zuerst MyMenu, dann Apps und schlielich wieder MyMenu)  dies hat keinerlei Einflu auf die Gre von MenuScan und damit auf den Speicherverbrauch.


2.2.4. *commands, die den Eintrags-Definitionen folgen
------------------------------------------------------
Durch das Beispiel wird auch deutlich, wie die *commands eines Eintrags aussehen knnen. Hinter jedem Eintrag mu mindestens eine *command-Zeile folgen. Kommentar- und Leerzeilen, die sich auch zwischen *commands befinden knnen, werden schon bei der Interpretation der Men-Datei ignoriert, so da sie nicht als Befehlszeilen gelten.

Noch einige Hinweise fr fortgeschrittene Benutzer:
 Die *commands werden nicht so ausgefhrt wie in einer Obey-Datei, sondern so wie in einer Desktop-Datei  also nicht mit OS_CLI, sondern mit Wimp_StartTask. Der Grund dafr ist, da es sonst sehr leicht zu Abstrzen kommen kann, z.B. wenn ein Programm mit Run gestartet werden soll (es wrde dann in den Speicher des gerade eingeblendeten Programms geladen!). Auerdem wrde ein Obeyfile noch lange nicht allein dadurch simuliert, da man die Befehle mit OS_CLI ausfhrt. Um es zu simulieren, mte ein Befehl, den MyMenu bereitzustellen htte, mit Wimp_StartTask aufgerufen werden und vom Code dieses Befehles aus mten die einzelnen Befehle an OS_CLI bergeben werden (dabei mte auch noch achtgegeben werden, da der Befehl Obey die Abarbeitung beendet  auch als Teil einer If...Then-Zeile). Darber hinaus wrde MyMenus eigener Wimpslot ausgeblendet, so da das Men, wenn es nur bei Bedarf geladen wird, immer wieder in die RMA geladen werden mte (zumindest unter RISC OS 3.11, wo es keine Dynamic Areas gibt), was zu RMA-Fragmentation fhren wrde. Alles in allem viel zuviel Aufwand...
 Die Unterschiede zwischen Obey- und Desktop-Dateien fhren dazu, da z.B. WimpSlot nicht funktioniert (sobald der Befehl abgearbeitet worden ist, wird der Slot wieder auf die Gre von Next gesetzt), ebensowenig kann man eine Applikation mit einem Befehl laden und mit dem nchsten starten  diese beiden Dinge mssen mit einem Befehl geschehen. Alle Befehle, die nichts mit dem aktuellen Slot machen, haben die erwnschte Wirkung.
 Eine Eigenart von Wimp_StartTask fhrt dazu, da die Abarbeitung der *commands auch nach einem Fehler fortgesetzt wird. (Das lt sich leider nicht verhindern, denn alle Fehlermeldungen werden schon innerhalb von Wimp_StartTask ausgegeben und nicht an MyMenu bermittelt.)

Diejenigen *commands, die fr MyMenu am ntzlichsten sind, werden weiter unten in dieser Datei beschrieben.

Beim Erstellen der *commands einer Men-Datei mte man normalerweise die Pfadnamen sehr vieler Dateien und Applikationen von Hand eintippen. Da dies uerst zeitaufwendig sein kann (auerdem vertippt man sich leicht), habe ich eine Mini-Applikation namens TypeName geschrieben, die einem die Arbeit abnimmt. Sie wird ebenfalls weiter unten beschrieben.


2.2.5. Zustze
--------------
Die Beschreibung der Befehle zur Definition von Mens und Meneintrgen ist noch nicht ganz komplett: An sie kann man nach dem letzten * noch einen oder mehrere Kurz-Befehle anhngen, z.B. so:

**MyMenu*Men*K5E71;L

An die Zeile wurden zwei Zustze angehngt, die durch ein ; getrennt wurden: Ein K-Zusatz (mit nachfolgendem Parameter) und ein L-Zusatz. Insgesamt gibt es vier verschiedene Zustze (B, K, L und M), die im folgenden beschrieben werden.

B-Zusatz (wie buffer)
Dieser Zusatz kann sowohl hinter Men- als auch hinter Meneintrags-Definitionen stehen. Allerdings bewirkt er hinter einer Mendefinition nichts anderes, als da bis zur nchsten Mendefinition hin alle nachfolgenden Meneintrge so behandelt werden, als wrden sie von einem B-Zusatz gefolgt, und es wird ignoriert, ob dieser tatschlich vorhanden ist. (Damit spart man sich die Tipparbeit, hinter jedem einzelnen Eintrag das B anzufgen.)
Der B-Zusatz legt fest, wie mit den *commands des jeweiligen Eintrags (bzw. den *commands aller Eintrge des Mens) verfahren wird. Falls er vorhanden ist, werden die *commands in die Datei MenuScan mit aufgenommen (sie werden somit jedesmal geladen, wenn auch das Men geladen wird), falls nicht, enthlt MenuScan lediglich die Information, wo die *commands in der Men-Datei Menu zu finden sind. Die Wirkung des Zusatzes ist es also, die Dateigre von MenuScan zu vergrern (bzw. zu vermindern, wenn er nicht da ist); wird er bei allen Eintrgen verwendet, steigt die Dateigre auf das doppelte bis dreifache an. Wird er dagegen nicht verwendet, ist ein zustzlicher Dateizugriff auf Menu ntig, bevor die *commands ausgefhrt werden knnen (und dies ist nicht zu empfehlen, wenn Menu von Diskette oder ber ein Netzwerk geladen werden mu). Ob die Verwendung letztendlich ntzlich ist oder nicht, hngt in erster Linie davon ab, ob LoadOnDemand verwendet wird:
 Wird es verwendet, sollte man BufferAll dazu benutzen, alle *commands in MenuScan aufzunehmen. Das lt die Dateigre zwar anwachsen, aber dies hat ja keinen Einflu auf den Speicherverbrauch, weil die Daten nicht andauernd im Speicher bleiben.
 Verwendest du LoadOnDemand nicht, mut du selbst entscheiden, ob du wenig bzw. keine Zugriffe auf Files, dafr aber hheren Speicherverbrauch willst (B-Zusatz vorhanden), oder ob du zwar das Men jederzeit ohne Verzgerung bei nur wenig Speicherverbrauch ffnen kannst, aber beim Anklicken von Meneintrgen ein Dateizugriff ntig ist (B-Zusatz nicht vorhanden). Wie immer ist natrlich ein Kompromi das beste...

Du wirst dich jetzt vielleicht fragen, was ich fr ein Speicherplatz-Verbrauchs-Fanatiker bin, denn was sind schon die 20 kByte, die MyMenu bei einem etwas greren Men verbraucht? Na ja, ich hasse einfach diese Utilities und Programme, die man in die Boot-Sequenz aufnimmt und die jedes ihre paar -zig kByte bentigen, bis alle zusammen auf einmal ein halbes Megabyte oder mehr ausmachen...

K-Zusatz (wie Key)
Mit diesem Zusatz werden die Hotkeys definiert. Er ist der einzige, der von einem Parameter gefolgt wird. Dieser Parameter ist entweder 2, 4, 6 oder 8 Zeichen lang; fr jeden der bis zu vier Hotkeys zwei Zeichen. Normalerweise brauchst du dir ber diese zwei Zeichen (eine hexadezimale Zahl) keine Gedanken zu machen  benutze einfach das Programm TypeName: Klicke auf den K-Knopf oben rechts und drcke eine Tastenkombination. Sobald die Tasten wieder losgelassen werden, tippt TypeName den entsprechenden K-Zusatz in deinen Texteditor.
Intern werden die Mausknpfe genauso wie Tasten behandelt, so da du z.B. auch Alt MENܑ als Hotkey definieren kannst, um ein Men von MyMenu ffnen zu lassen.
Wird der K-Zusatz an eine Men-Definition angehngt, bewirkt dies, da beim Drcken der Hotkeys das Men geffnet wird. Bei einem Meneintrag werden dagegen die *commands dieses Eintrags ausgefhrt.

L-Zusatz (wie Line)
Der L-Zusatz erzeugt eine gestrichelte Linie im Men, und zwar unter demjenigen Meneintrag, bei dem er angewendet wurde, oder unter dem Meneintrag, der zu dem durch eine Mendefinition angegebenen Men fhrt, z.B.:
**MyMenu*Men*
Dies erzeugt eine gestrichelte Linie unter dem Eintrag Men im Men MyMenu.
L-Zustze, die bewirken wrden, da eine gestrichelte Linie unter dem letzten Eintrag eines Mens erscheinen wrde, werden ignoriert.

M-Zusatz (wie MENܑ)
Der letzte der vier mglichen Zustze hat die gleiche Wirkung wie ein K-Zusatz, nur da man das jeweilige Men ffnen kann, indem man MEN klickt, whrend der Mauszeiger am linken Bildschirmrand ist. Das ist ungemein praktisch, weil man nicht noch irgendwelche zustzlichen Tasten drcken mu.
(Diese Idee wurde natrlich von StrongED geklaut  ich bin ein Zap-Benutzer und finde sie sehr gut, so da ich sie bernommen habe.)


2.3.   Ntzliche *commands

Einige *commands sind beim Erstellen einer Men-Datei sehr ntzlich, so da sie hier kurz beschrieben werden. brigens werden smtliche *commands im User Guide (oder in einer auf deiner Festplatte gespeicherten Datei) beschrieben!
Im folgenden steht <Pfadname> fr den vollen Pfadname einer Datei oder einer Applikation, z.B. Resources:$.Apps.!Chars (einzutippen ohne Anfhrungszeichen).

Zum Starten von Programmen gibt es mehrere Mglichkeiten. Normalerweise sollten alle Programme mit folgendem Befehl korrekt gestartet werden knnen:
Run <Pfadname>
Dies kann auch abgekrzt werden zu:
/<Pfadname>
Falls das nicht funktioniert, versuche:
Filer_Run <Pfadname>
Wenn es jetzt immer noch Probleme gibt (z.B. kein Icon auf der Icon bar), schreibe die folgenden zwei Befehle unter die Eintragsdefinition:
Filer_Boot <Pfadname>
Filer_Run <Pfadname>

Will man Dateien und Programme in ArcFS-Archiven ansprechen, mu ArcFS vor dem entsprechenden Befehl geladen werden, da sonst ein Fehler produziert wird. Die folgende Zeile ldt ArcFS, falls es noch nicht im Speicher ist:
RMEnsure ArcFS 0 /<ArcFS$Dir>
Dies setzt allerdings voraus, da ArcFS schon gesehen wurde, d.h. da ein Verzeichnis, in dem es sich befindet, geffnet wurde. Wenn das unpraktisch fr dich ist, weil du das Verzeichnis immer wieder ffnen mut (ich empfehle aber, ArcFS automatisch nach jedem Reset booten zu lassen), kannst du den letzten Teil der Zeile abndern, z.B. so:
RMEnsure ArcFS 0 /ADFS::MyDisc.$.!ArcFS

Da einige Befehle (besonders der obige) viele Male in einer Men-Datei auftauchen, wurde MyMenu mit der Fhigkeit ausgestattet, diese Befehlszeilen zu erkennen und nachfolgende Zeilen durch kurze Hinweise darauf zu ersetzen, wo der Befehl zum ersten Mal aufgetreten ist. Dadurch kann viel Speicherplatz gespart werden. Damit zwei Zeilen als gleich erkannt werden, mssen sie GENAU gleich aussehen, d.h. es wird zwischen Gro- und Kleinbuchstaben unterschieden, auch drfen keine zustzlichen Leerzeichen am Anfang oder Ende der Zeile stehen. (Natrlich wird das nur fr *commands gemacht, die in MenuScan aufgenommen werden.)


Filer_Boot <Pfadname>
Dieser Befehl bootet die genannte Applikation (wie wenn ein Verzeichnis geffnet wird, das die Applikation enthlt), so da sie z.B. geladen wird, wenn eine Datei, die sie kennt, doppelgeklickt wird.

Filer_Run <Pfadname>
Filer_Run kann nicht nur zum Starten von Programmen, sondern auch zum Starten von Dateien verwendet werden  die Wirkung des Befehls ist dieselbe wie bei einem Doppelklick auf das Icon der Datei. Ist die im Pfadnamen genannte Datei z.B. eine Textdatei, so wird sie durch den Befehl in deinen Texteditor geladen.

Filer_OpenDir <Pfadname>
Mit diesem Befehl kann man Verzeichnisse ffnen.



3.     Tips & Tricks
====================

 Es ist mglich, da Meneintrags-Definitionen in der Men-Datei noch vor der ersten Mendefinition kommen. Diese Eintrge tauchen dann in keinem Men auf, was praktisch ist, wenn man lediglich einen Hotkey definieren will, aber keinen entsprechenden Meneintrag braucht.
 Man kann auch mehrere vllig voneinander unabhngige Mens definieren  der erste Menname nach ** mu ja nicht immer der gleiche sein!
 Bei der Definition von Hotkeys werden die linken und rechten Tasten fr Shift, Alt und Strg unterschieden, genau wie die Zifferntasten von denen des separaten Ziffernblocks.
 Einem Men(eintrag) knnen mehrere Hotkeys zugewiesen werden, so da man z.B. fr Alt Z einen Hotkey mit der linken Alt-Taste und einen mit der rechten definieren kann.
 Falls man eigene Mini-Programme oder Obey-Dateien durch *commands ausfhren lassen will, kann man diese in das Verzeichnis !MyMenu.Menu kopieren, auf das die Variable MyMenu$M zeigt.
 Meneintrge, deren Namen bis zu zwlf Zeichen lang sind, sparen Speicherplatz.
 Falls einmal ein von dir definiertes Untermen nicht in deinem Men auftaucht, berprfe, ob du den Namen des Hauptmens richtig eingetippt hast.
 Wenn du LoadOnDemand verwendest und das Men von Festplatte laden lt, wirst du bemerken, da die LED der Festplatte dabei manchmal gar nicht aufleuchtet. Das liegt daran, da ADFS einen Zwischenspeicher benutzt, der normalerweise grer als MenuScan ist, so da diese Datei nicht jedesmal wirklich neu geladen werden mu. Allerdings wird der Inhalt des Zwischenspeichers (evtl. nur teilweise) wieder vergessen, sobald irgendeine andere Datei geladen wird.
 Beim Erscheinen der Fehlermeldung Error when reading XXX  directory XXX not found (natrlich mit einem Verzeichnisnamen statt XXX) sollte eine Datei aus einem Archiv heraus geladen werden, aber ArcFS war nicht geladen.



4.     Bekannte Probleme
========================

 MyMenu arbeitet nicht mit dem Modul CDKeys zusammen. Daran ist allerdings CDKeys schuld. (Es gibt bei Tastenkombinationen, die es kennt, das key up/down event nicht weiter.) Auerdem gibt es noch Probleme mit Reversi von Alex Hopkins (keine Ahnung warum).
 Normalerweise wird beim Drcken von Hotkeys der Tastendruck abgefangen, um zu verhindern, da auer MyMenu noch ein weiteres Programm auf den Tastendruck reagiert. Dies ist leider nicht mglich, wenn sich der Cursor in einem Writable icon befindet.
 Ich hatte keine Mglichkeit, das Programm auf einem RiscPC mit einem anderen als dem Standard-Keyboard zu testen. Allerdings mte alles auch mit anderen Keyboards funktionieren. (Einzige Bedingung: Die vom Keyboard bermittelten Codes fr die Tasten drfen nur acht Bit weit sein!)
 Wie gesagt: Nach einem Fehler in einem *command wird mit dem Abarbeiten weiterer *commands fortgefahren  das kann ich nicht ndern.
 Die *commands eines Eintrags drfen nicht dazu verwendet werden, MyMenu selbst zu beenden oder neu zu starten  das fhrt zu einem Absturz!!!
 Zwar erlaubt MyMenu als Hotkey bis zu vier gleichzeitig gedrckte Tasten, aber diese Anzahl ist nur erreichbar, wenn unter diesen Tasten Shift, Alt und/oder Strg sind; nach mehr als zwei Buchstaben-/Zifferntasten werden keine weiteren Tasten mehr erkannt (liegt nicht an MyMenu, sondern am Keyboard) ...tut mir leid fr die Akrobaten unter euch!
 MyMenu selbst macht bei der erlaubten Verschachtelungstiefe von Mens keine Einschrnkungen, allerdings lt das Betriebssystem nicht mehr als sieben Untermen-Ebenen zu, d.h. zu keinem Zeitpunkt drfen mehr als acht Men-Fensterchen auf dem Bildschirm sein. Das drfte aber auch mehr als genug sein.



5.     Die Applikation TypeName
=================================

TypeName ist eine kleine Applikation, die das Erstellen der Men-Datei erleichtert, indem sie dir das Eintippen von Datei-/Verzeichnispfaden, K-Zustzen und anderen hufig gebrauchten Zeichenketten abnimmt.

Nach dem Starten ffnet das Programm ein Fenster. Es gibt kein Icon auf der Icon bar  indem man das Fenster schliet, beendet man TypeName.

Zieht man auf das Fenster eine Datei oder ein Verzeichnis, wird der jeweilige Pfadname eingetippt, so, als htte man ihn auf der Tastatur getippt. Wenn dies geschieht, mu der Cursor natrlich gerade in einem Texteditor o.. sein, damit es von Nutzen sein kann. Zustzlich tippt das Programm auch noch beliebige Zeichenketten ein, die vorher in die drei Eingabe-Icons geschrieben wurden, wenn man auf Tippen rechts vom jeweiligen Icon klickt. K-Zustze werden eingetippt, nachdem man auf K rechts oben geklickt und die gewnschten Tasten gedrckt sowie wieder losgelassen hat.
Versucht man, etwas eintippen zu lassen, whrend der Cursor gerade in TypeNames eigenem Fenster ist, wird eine Fehlermeldung ausgegeben.

[ Hinweis in letzter Minute: Zu meiner beraus groen Freude habe ich gerade festgestellt, da Zap, StrongED und Edit Pfadnamen eintippen, wenn man das Dateisymbol mit Shift auf ihr Fenster zieht - Aaaarghh! ]


Viel Spa mit diesem Programm!
Richard Atterer, November 1996
