Menüseite mit Mortscript manipulieren - Demo

  • Hallo,


    dieser Tip richtet sich an Interessierte, die mit Systeminformation
    ihre Menüseiten aufbauen.
    Ein dynamisches Menü ist nicht nur möglich, indem alle Varianten
    von Vorlagen an Standardplätze kopiert werden, sondern indem
    man die Hauptseiten direkt manipuliert.


    Systeminformation hat von Haus aus nicht die Struktur, um mit
    Mortscript über iniread und iniwrite einzugreifen, was ja eigentlich
    sehr sinnvoll wäre.


    Der Trick, um es doch zu erreichen ist, die gewünschten Menüseiten
    mit Mortscript ganz einzulesen.
    Dann werden die Sektionen aus den Bemerkungstags gebildet.
    Nun kann Mortscript dynamisch und sich aus dem Steuerungsablauf
    ergebende Eingriffe vornehmen wie z.B. Änderung eines Bitmapnamens:


    IconNormal=Button_1_1.bmp
    wird zu
    IconNormal=Button_2_1.bmp


    oder


    IconNormal=Backlight1.bmp
    wird zu
    IconNormal=Backlight2.bmp


    oder aus Text


    Text=Navitools
    wird
    Text=Systemtools


    (weitere Eingriffe sind denkbar ... :D )


    Abschließend werden die Sektionsnamen (für Mortscript) wieder
    zu Kommentaren (für Systeminformation) und die Menüseite
    zurückgeschrieben.


    Ein voll kommentiertes Demo habe ich angehangen.
    Es ist für PC und PNA.



    Das Ganze fiel mir übrigens ein, weil ich mal eine Geburtstagsauflistung
    dargestellt habe und diese natürlich auch dynamisch aktuell
    halten wollte ...

  • Hallo Manni,


    ich habe bewußt ein kleines Demo gemacht, da es
    bei was "Fertigem" erst recht schwieriger wird zu verstehen.


    Wo fängt denn die Schwierigkeit des Verstehens an ?


    Mal anders: Hast du mal die Buttons gedrückt und beobachtet was passiert?
    Und hast du anhand der vorhandenen Dateien bemerkt, daß ich
    keine einzige Menü-Vorlage habe und kein einziger Kopier-
    vorgang stattfindet, um eine Änderung auf der (einzigen) Menüseite
    zu bewirken?


    Das geht eben nur, indem ich Werte auf der Menüseite selber ändere ...

  • Hallo Panik


    Ich versehe nicht mal wie ich das für uns weiter ausbauen kann .
    Eigentlich nicht mal was es bewirkt .


    Eben weil keine Menü-Vorlage und Kopiervorgang vorhanden ist verstehe ich es noch weniger .


    Natürlich habe ich es gestartet , kommt die Meldung siehe Bild.


    Panik versuche es erst gar nicht mit mir. :)
    Allen anderen scheint alles glasklar zu sein .


    Gruß Manni

  • Die Meldung ist auf dem PC schon in Ordnung.
    Sagt aus, das Mortscript auf dem Navi aktiviert würde
    (Verschweigt allerdings, daß das Script gestartet werden soll;
    Lies mal den oberen Satz !)



    Aber richtig klar wird es dann:
    Kopiere mal den Testordner auf den PNA, starte da die
    MainMenue.exe und klicke dann auf das große Icon
    oder auf den unteren Button


    Was passiert denn da ?



    PS:
    Wenn ich schaue, was du sonst für Scripts ersinnst, dann ist das
    doch Pippifax - es macht schon bald Bingo! Bin ich sicher.
    Aber wenn du aufgeben möchtest ;)

  • Es kommt langsam Licht ins Dunkel ... auf jeden Fall ist die Art und Weise wie die Änderung stattfindet einfach genial! :thumbup:


    ... Pumuckel

    Fahrt nicht schneller als Euer Navi Euch warnen kann!

  • Hallo athos,


    denke ich mir ...


    Vergleichendes Beispiel:
    Bei einem Serienbrief läßt man ja auch nur automatisch den Empfänger,
    Anrede u.ä. ändern, anstatt fünfzig Vorlagen zu benutzen - oder ;)



    Wichtig ist nur, ALLE Buttons und Texte NACH dem ERSTEN zu ÄNDERNDEN
    Button/Text wirklich temporär umzubenennen, sonst kann der Eingriff
    den falschen Button/Text "treffen".

  • Hallo,
    welchen Vorteil hat es über iniread und iniwrite die Menüseite zu manipulieren, ich bekomme das so nicht hin. Wenn ich aber die Menüseite über readfile, replace und writefile manipuliere, (wie im Script um die "#" zu entfernen und wieder einzufügen), klappt das tadellos. Ich benutze das um Buttons in der ini zu ändern.

  • Hallo XXMrHyde,


    der Vorteil ist doch schon im Startthema beschrieben.
    Daher weis ich jetzt nicht, was ich schreiben soll... ?(
    Es sei denn, du kannst ein Beispiel angeben, bei dem du Probleme hast.


    Wenn du allerdings wirklich nur ein (festes) Zeichen tauschst, dann hast
    du natürlich recht, wenn du das mit readfile, replace und writefile änderst.


    Sobald du aber ganze Zeichenketten, Nummern usw. tauschen willst, die
    Ergebnisse irgendwelcher Mortscript-"berechnungen" sind, dann ist
    iniread und iniwrite wieder interessant.

  • Hallo Panic,
    ich habe gestern Abend angefangen zu versuchen die Helligkeitseinstellungen in meinem Menü so wie in Deinem Beispiel-Download anzupassen. Das Problem war/ist? das Mortscript die inis per iniread nicht einlesen wollte, es kam immer die Fehlermeldung :could not oben ...ini (oder so ähnlich), per readfile ging es aber Problemlos. Dann ist mir aufgefalen, das ich eigentlich alles was ich ändern will per readfile, replace und writefile machen kann, und iniread und-write (in meinem Fall) wohl überflüssig ist. Ich komme einfach (noch) nicht dahinter was iniread und -write für Vorteile bringt. Vielleicht liegt es daran, das ich keine "großen" Berechnungen mit Mortscript mache, sondern das ganze nur benutze um auf "elegante" und einfache Weise mein Menü zu verbessern, das richtige Menü zu starten wenn ich Gopal Beende, zwischen 2 Menüs zu wechseln und das Ganze ohne "Dateikopier-Orgien" wie ich es sonst hatte. Für mich klappt das so alles sehr gut, die Idee die Systeminfo-Seite direkt zu manipulieren ist genial.

  • Nur mal als ein winziges Beispiel:


    in Systeminformation werden alle Texte mit "TEXT" eingeleitet.
    Darunter kommen x und y, Farben, Textinhalte, ...


    Möchtest du nur einen einzelnen ganz bestimmten Text farblich ändern, dann hättest du mit deiner Replacemethode ein Problem, denn diese würde alle "Color = ...", die gleich sind ändern und das nicht nur bei TEXT-Elementen.


    Mit meinem Bsp. und der Ini-Methode kannst du ganz gezielt nur ein bestimmtes TEXT-Element beeinflussen.
    Vorrausgesetzt, du gibst ihm einen eindeutigen Sektionsnamen als Kommentar:
    "#[Beschreibung]"

  • OK, ich glaube langsam geht mir ein Licht auf. Das Verstehe ich. ich brauche halt manchmal eine gewisse Zeit bis ich die Zusammenhänge begreife, wenn ich was neues ausprobiere. Ich möchte nochmal betonen, das sollte keine Kritik sein, ganz im Gegenteil, ich wollte halt nur die Zusammenhänge begreifen, und ich denke das tue ich jetzt.