PFDefines.skn: String-Konstanten für App.-pfade, etc. verwenden

  • An alle Skinner und die, die es noch werden wollen!


    Ich weiß aus eig. Erfahrung, Programmierer/Skinner/etc. sind kreativ und lassen sich nur schwer etwas vorschreiben, was Vorgaben, Standards, Vereinheitlichung, etc. betrifft. Es könnte ja mit einer Einschränkung verbunden sein. ;D


    Ich weiß auch, das es schon mal einen Vorschlag in dieser Richtung gab, der auf keine allzu große pos. Resonanz gestossen ist, aus welchen Gründen auch immer.



    Mit dem Skin-Tauscher haben wir ein schönes Tool, daß es ermöglicht, mehrere Skin nebeneinander nutzen zu können, was u.a auch beim Testen des eig. Skins von Vorteil ist.


    Aber der Tauscher kann erst dann optimal genutzt werden, wenn die jeweiligen Skinner nicht ihre Tools in unterschiedl. Pfaden gespeichert haben. Dies erfordert dann nach Updates immer auch eine Anpassung an die eig. Umgebung.


    Nchdem ich heute mit der Installation eines zusätzlichen Skins (meinem 5. ;) ) den 3. Pfad zu koord465.exe mir hätte einrichten müssen (die bei jedem Update dann auch nicht vergessen werden darf), habe ich mal etwas experimentiert und zumindest für die Pfadangaben in den *.skn-files eine Möglichkeit gefunden, diese Angaben zentral per Konstantendefinition zu lösen.
    Bei einem zukünftigen Update zu einem Skin sind, wenn dort diese Konstanten verwendet werden, nur noch zentral die Definitionen zu ändern.



    Im folgenden Beispiel will ich das anhand der Pfadangaben und Parameter zu koord465.exe mal verdeutlichen (Auszug aus der PFSkin.skn), die blauen Zeilen sind meine Ergänzungen:



    Zumindest die Pfadangaben brauchen nicht case-sensitiv zu sein.



    Nun ein Beispiel zur Verwendung:



    Man beachte die Verkettungslogik, die Konstante wird in den Anführungszeichen mit eingeschlossen, ein +-Operator funktioniert hier nicht! Diese Logik gilt (logischerweise ;) ) auch den 465. Ich hab mich nur für dieses Board entschieden, weil hier mehr los ist.



    EDIT:
    Eine zusätzliche Vereinfachung, wo die Definition der Konstanten besser in einer separaten Datei 'PFDefines.skn' erfolgen soll, habe ich hier beschrieben.

  • Hast Du das schon ausprobiert? Mich irritieren hier etwas die Hochkommata... ?(


    launch: "$KOORD_PFAD$koord465.exe";
    params: "goto=$KOORD_PFAD$home.3na";

  • Zitat

    Original von BroadwayLamb
    Hast Du das schon ausprobiert? Mich irritieren hier etwas die Hochkommata... ?(


    launch: "$KOORD_PFAD$koord465.exe";
    params: "goto=$KOORD_PFAD$home.3na";


    Ja, ich hab Daniels Skin hergenommen und es hat funktioniert. Ich würde mich ja sonst auch nicht soweit aus dem Fenster lehnen. ;D


    Aber wie immer gilt: bitte mal selber in Eurer Umgebung testen, ob ich nicht doch was übersehen habe. ;D

  • Ist ja interessant... da kann man die Hochkommata bestimmt auch ganz weg lassen ;D

  • Zitat

    Original von BroadwayLamb
    Ist ja interessant... da kann man die Hochkommata bestimmt auch ganz weg lassen ;D


    Du hast recht (da macht sich die Skinner-Erfahrung bemerkbar ;) ). Grad mal ausprobiert und folgendes geht auch:
    launch: $KOORD_PFAD$koord465.exe;


    Noch 'ne Vereinfachung!


    EDIT: diese Angabe braucht sie aber zwingend (wg. dem vorangestellten Befehl): params: "goto=$KOORD_PFAD$home.3na";

  • Hi Ralf,


    verstehe deinen Einwand, wie du mir bereits gesagt hast, verwendest du 6 Skins und um die 6 Skin im Einklang zu bringen ist das bestimmt ein wenig Harig da du dich mit verschieden Pfade und Koord465 versionen zu tun hast.

  • Zitat

    Original von Ralf25
    da macht sich die Skinner-Erfahrung bemerkbar;)


    Die wohl weniger ;)


    Aber danke für den Vorschlag. Mal sehen, ob "wir" Skinner "euch" Usern die Installation vereinfachen können :D

  • Zitat

    Original von BroadwayLamb


    Die wohl weniger ;)


    Aber danke für den Vorschlag. Mal sehen, ob "wir" Skinner "euch" Usern die Installation vereinfachen können :D


    Da ich Deinen pers. Background nicht kenne, dann Dein Hang zum Wesentlichen (Minimierung)? ;D



    @anonymenergie
    Genau, der Mann als solches ist ja genetisch 'vorbelastet' als Jäger und Sammler! Daher mein Versuch, diesen genetischen Defekt zu unterstützen und das Sammeln zu erleichtern/vereinfachen. :lachen

  • Mir ist jetzt noch eine kleine Verbesserung eingefallen, die alles nochmal vereinfacht und nahezu optimal im Handling ist. ;)


    Die Konstantendefinitionen werden nicht in der PFSkin.skn selbst gemacht, sondern extern in einer neuen Datei namens PFDefines.skn. Diese muß dann nur noch mittels Include: PFDefines.skn; - Anweisung in die PFSkin.skn eingebunden werden.
    Existiert diese Datei noch nicht, kommt es beim Start der Navi-SW nicht zu einem Ablauffehler (Exception o.ä.).


    Das hat den Vorteil, daß bei Updates nun keinerlei Anpassungen mehr vorgenommen werden müssen, Drag, Drop & Start. ;)


    Die PFDefines.skn sieht dann so aus:

    Zitat

    Defines
    {
    KOORD_PFAD: "\Storage Card\Programme\Koord\";
    ROUTEN: "\Storage Card\Programme\Routen\";
    }

  • Hallo,


    es passt zwar nicht 100%-ig hierher, aber man könnte -zumindest gewisse Funktionen- vom Koordinatenprogramm auf "LaunchFromRegistryButton"s umstellen, das hätte den Vorteil, dass die Buttons zu den Funktionen nur dann sichtbar sind, wenn das Programm (im richtigen Verzeichnis) existiert.
    Der Programmpfad steht ja dann in der Registry und kann von dort abgefragt werden.


    Gruß,
    Stefan

  • Zitat

    Original von StefanDausR
    Hallo,


    es passt zwar nicht 100%-ig hierher, aber man könnte -zumindest gewisse Funktionen- vom Koordinatenprogramm auf "LaunchFromRegistryButton"s umstellen, das hätte den Vorteil, dass die Buttons zu den Funktionen nur dann sichtbar sind, wenn das Programm (im richtigen Verzeichnis) existiert.
    Der Programmpfad steht ja dann in der Registry und kann von dort abgefragt werden.
    Gruß,
    Stefan


    Hi Stefan,


    es wäre nicht schlecht da du alle zwingen würde den richtigen Pfad benutzen zu müssen.

  • Die Idee, die Registry mit einzubeziehen, hatte ich anfangs auch, weil sie mir einfacher erschien und ich nicht gleich Erfolg bei meinen Experimenten hatte. ;)


    Nur leider sind bei einem Hardreset diese Infos weg und müßten dann manuell (vielleicht noch einigermassen praktikabel via MortScript) importiert werden.


    @Stefan
    Kann man einen LaunchFromRegistryButton auch über Einträge aus *.ini-Dateien steuern?

  • Jetzt weiss ich, was ich vergessen hab... :-D)


    Versprochen, bei der v2.7 ist es das erste, was ich mache 8)

  • Zitat

    Original von BroadwayLamb
    Jetzt weiss ich, was ich vergessen hab... :-D)


    Versprochen, bei der v2.7 ist es das erste, was ich mache 8)


    Danke BL, und ich hatte schon befürchtet, das dieser Thread immer weiter ins Nirvana abdriftet :(


    Vielleicht fehlen auch nur ein paar positive Aussagen oder Erfahrungsberichte. Ich würde mich echt freuen, wenn Du (wie so häufig) die Vorreiterrolle übernehmen würdest. :tup

  • Zitat

    Original von Ralf25
    Danke BL, und ich hatte schon befürchtet, das dieser Thread immer weiter ins Nirvana abdriftet :(


    Vielleicht fehlen auch nur ein paar positive Aussagen oder Erfahrungsberichte.


    Hier mein Erfahrungsbericht bzw. mein Verbesserungsvorschlag - soeben eingebaut und erfolgreich getestet in meiner 3.2a Version ;)


    Datei PFDefines.skn:
    Defines
    {
    KOORD_PFAD: "\My Flash Disk\Tools\koord465.exe";
    ZIEL_PFAD: "\My Flash Disk\Tools\";
    ROUTEN: "\My Flash Disk\Navigation\Routes\";
    }


    Datei PFSkin.skn:
    Includes
    {
    Include: PFDefines.skn;
    Include: PFSpecial.skn;
    Include: PFLang.skn;
    }



    HomeButton (als Beispiel)
    {
    .....
    launch: $KOORD_PFAD$;
    params: "LKlick=100 x=456 y=248 goto=$ZIEL_PFAD$home.3na";
    }


    Funktioniert einwandfrei und spart zudem einige hundert Bytes in der PFSkin.skn. Nachteil: Man muss sich natürlich noch mehr darauf verlassen, dass der liebe Skininstallateur ;) in seinem "Sammelpfad" auch tatsächlich die für diesen Skin erforderliche Version von koord465 installiert (hat).


    Gruss
    BL