Antwort auf: Einstellungen Standalone – Übergabe an iPhone

Startseite Foren Deutsches LiveCode-Forum Einstellungen Standalone – Übergabe an iPhone Antwort auf: Einstellungen Standalone – Übergabe an iPhone

#3368
Klaus Major
Administrator

    So, habe das blöde große Oe eliminiert, auf ein Neues… 🙂
    ——————————————————————
    Hi Wolli,

    klingt, als würdest Du absolute Pfade zu Deinen Bildern angegeben haben!?
    Sprich, der ganze Pfad zu Deinem Bild auf Deiner Festplatte MIT dem Namen der Festplatte.

    Daher findet der Simulator auch die Bilder, er liegt ja auf Deiner Festplatte innerhalb von Xcode, aber das Gerät nicht, weil es Deine Festplatte nicht kennt.

    Verwende relative Pfadnamen und alles wird gut 🙂
    Und das geht so…

    Ich nehme an der Ordner Bilder liegt im selben Ordner wie der Stack, zumindest sollte er das.
    Dann wählst Du Dein Bild aus und Du sieht den absoluten Pfad, hier auf meinem Rechner:
    /Users/klaus/Desktop/Teststack/Bilder/bad2.JPG

    Der Stack mit dem Bild liegt in diesem Ordner:
    /Users/klaus/Desktop/Teststack

    Nun loescht Du das Absolute aus dem Pfad, bis nur der Ordner Bilder und der Dateiname übrig bleibt:
    Bilder/bad2.JPG

    Et voila, Bild immer noch zu sehen, weil der Stack im selben Ordner wie der Ordner “Bilder” liegt und er so nun, trotz fehlender kompletter Adresse, relativ (zum Stack) gefunden wird.

    Soweit klar? 🙂

    Die Engine bzw. Standalone übersetzt diesen relativen Pfad automatisch zu -> specialfolderpath(“resources”), ohne daß wir das machen müssen, und das Bild ist auch auf dem Device zu sehen.

    Datepicker:
    Den oder die Stack(s) in dem Ordner rufst Du folgendermaßen auf:

    put specialfolderpath(“resources”) & “/name_deines_stack.livecode” into tStack
    go stack tStack
    ### Nicht vergessen, wir haben innerhalb des Application Packages KEINE Schreibrechte, Du kannst so also diese datepicker Stack(s) nicht speichern!

    Dito für die Datenbank, die darfst Du da noch nicht einmal Oeffnen!
    Die musst Du erst in den DOCUMENTS Ornder kopieren und von dort Oeffnen, dort haben wir Schreibrechte!

    Das solltest Du beim Oeffnen Deines Stacks machen, also “on openstack”.

    ...
    ## 1. Zunächst alle benOetigten Pfade zusammenbasteln:
    ## Pfad zur Datenbank Datei innerhalb des App Package:
    put specialfolderpath("resources") & "/Datenbank-SQLite/daten.db" into tSourceDB
    
    ## Pfad zum DOCUMENTS Ordner des Users:
    put specialfolderpath("documents") & "/Datenbank-SQLite/daten.db" into tTargetDB
    
    ## Prüfen, ob die App wirklich zum allerersten Mal startet und nur dann die DB kopieren!
    if there is not a file tTargetDB then
     ## Datei noch nicht vorhanden, also rüberkopieren:
     put url("binfile:" & tSourceDB) into url("binfile:" & tTargetDB)
    end if
    ## fertig.
    ...

    Beim Oeffnen der DB mit revopendatabase übergibst Du dann das als Dateipfad:

    ...
    put specialfolderpath("resources") & "/Datenbank-SQLite/daten.db" int tDB
    put revOpenDatabase("sqlite",tDB) into tDBID
    ...

    Ja, so, weit, so gut erst mal, viel Spaß, bei Fragen fragen! 🙂

    Gruß

    Klaus