Startseite › Foren › Deutsches LiveCode-Forum › Eigene Libraries einbinden
- Dieses Thema hat 10 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahren, 2 Monaten von Heinz.
-
AutorBeiträge
-
-
September 30, 2017 um 18:04 Uhr #2261
Hallo zusammen,
Über Haukes Buch habe ich erstmals von LiveCode erfahren.Nachdem ich mich jetzt seit ein paar Monate mit LiveCode in meiner Freizeit beschäftigt habe, bin ich von den Möglichkeiten, die die Plattform liefert begeistert :-), und habe die Indy-Version zum Schnäppchen-Preis erworben.
Nachdem ich einige kleine Apps geschrieben habe, entsteht bei mir der Wunsch immer wieder benutze Funktionen in einer Library zusammenzufassen und in verschieden Projekten zu nutzen.
Kennst Sie einer von Euch damit aus und kann mir ein paar Tipps geben, wie ich das am besten anstelle?
Liebe Grüße
Heinz -
September 30, 2017 um 23:44 Uhr #2265
Hallo Heinz,
das ist recht simpel! 🙂
1. Erstelle einen Stack und benenne ihn wie du magst.
Im Beispile benutze ich den alten bescheuerten Namen „mylib1“2. In sein Stack Script schreibst Du alle Deine Handler und Funktionen,
die du als Library nutzen möchtest.3. Auf der Platte als Mainstack speichern.
4. Immer wenn Du die Lib einbinden möchtest, öffnest Du diesen Stack und machst ihn zu einem Substack in Deinen neuen Projekt z.B. „new project 42“ 😎
4. Im Stack Skript (oder Skript der ersten Karte) dieses Stacks „new project 42“ schreibst Du:
on openstack ## Dein openstack Kram hier... start using stack "mylib1" end openstack
Das wars, ab sofort stehen alle Handler und Funktionen von „mylib1“ zur allgemeinen Verfügung.
Geht auch noch anders, aber so ist es meiner Meinung nach am verständlichsten und ist auch „offiziell“.
Gruß
Klaus
-
Oktober 1, 2017 um 16:25 Uhr #2268
Hallo Klaus,
danke für die schnelle Antwort 🙂
Ich habe das gleich mal mit einem einfachen Beispiel ausprobiert.
In der IDE funktioniert das super. Auch die Windows Standalone App funktioniert.
Nur bei der Android App kann ich die Lib-Funktionen nicht aufrufen.
Ich hab den Fehler mal mit Try und Catch abgefangen.
Hier zeigt sich folgende Fehlermeldung:
219,3,11,mylibFunction
465,3,11Der Fehlercode 219 bedeutet „Function: error in function handler“
Der Fehlercode 465 „put: error in expression“ scheint ein fFolgefehler zu seinIch poste mal den einfachen Beispielcode: Irgendwo muss ich doch einen Denkfehler haben:
AppName Test.livecode
Script im Main Stack „Test“on preOpenStack start using Stack "C:\Users\heinr\Documents\My LiveCode\Plugins\myLib.livecodescript" end preOpenStack
Im Main-Stack habe ich auf der Card einen Test-Button mitfolgendem Script angelegt:
on mouseUp try put myLibFunction() into tResult answer tResult catch tError answer tError end try end mouseUp
Die Library ist für den Test ganz einfach aufgebaut. Es gibt nur eine Funktion die ich im Stack abgelegt habe.
function myLibFunction return "myLib is up and running" end myLibFunction
Hast Du eine Idee was ich falsch mache?
Liebe Grüße
Heinz -
Oktober 1, 2017 um 16:41 Uhr #2269
Hallo Heinz,
ich denke, Du hast meinen (ersten, pardon) Schritt 4 vergessen!
Das Handy und wahrscheinlich auch der Simulator haben wohl keinen Zugriff auf Dein Windows Dateisystem!
Mach den Stack zu einem SUB-Stack von Deiner Standalone, ändere diese Zeileon preOpenStack ##start using Stack "C:\Users\heinr\Documents\My LiveCode\Plugins\myLib.livecodescript" start using Stack "myLib" end preOpenStack
dann klappt das schon 🙂
Gruß
Klaus
-
Oktober 1, 2017 um 16:42 Uhr #2270
Oh, Moment mal, Du hast einen Text-only Stack erstellt, also nicht, was ich zunächst geraten hatte.
Das muss ich erst wieder nachlesen, sorry. 😎 -
Oktober 1, 2017 um 19:06 Uhr #2275
Hallo Klaus,
ich habe die Library jetzt auch mal als normalen Stack mit der Endung Livecode angelegt.
Den Pfad bei der Lib-Datei wegzulassen funktioniert nicht. Dann wird die Datei nicht gefunden und auch nicht geladen. Wo legst Du deine Library Dateien ab?Was mir auffällt ist, dass die Lib-Datei in ProjectBrowser nicht als SubStack sondern als ganz normaler Stack angezeigt wird.
Das sieht dann so aus:
+ myLib
+ TestNach Deiner Beschreibung würde ich erwarten das der Project Browser folgende Anzeige ausgibt:
– Test
+ Card 1
+ myLibWie sieht das wenn bei Dir aus?
Gruß
Heinz -
Oktober 1, 2017 um 19:08 Uhr #2276
Ups dir Darstellung des Projectbrowsers sieht man oben nicht richtig.
Im zweiten Fall ist Card1 und MyLib eingerückt.
Gruß
Heinz -
Oktober 1, 2017 um 19:32 Uhr #2277
Hast Du Deine Lib auch als Substack von „Test“ definiert? Siehe Schritt 4.
Das ist eigentlich der Schlüssel!Der Stack selber bleibt ja als „MyLib.livecode“ Datei auf Deiner Platte,
die DATEI (sic!) wird geschlossen und jetzt ist eine Kopie davon Substack von „Test“.
Capisce? 🙂Du kannst das sogar scripten in der „savingstandalone“ Message in Skript von Stack „Test“!
-
Oktober 2, 2017 um 05:54 Uhr #2280
Hallo Klaus,
ich stehe auf dem Schlauch.
In Deiner Beschreibung oben steht unter Punkt 4.
„Immer wenn Du die Lib einbinden möchtest, öffnest Du diesen Stack und machst ihn zu einem Substack in Deinen neuen Projekt z.B. „new project 42″ ?“
Das ist glaube ich mein Problem. Ich verstehe nicht wie ich den Lib-Stack zu einem SubStack machen kann, damit er bei dem Kommando start using Stack „myLib“ als Substack eingebunden wird.Muss ich hierzu einen leeren Sub-Stack myLib in meinem Projekt Test anlegen und der wird dann über das Kommando „Start using Stack „myLib““ gefüllt?
Gruß
Heinz -
Oktober 2, 2017 um 11:29 Uhr #2281
Nein, das geht einfacher:
1. öffne beide Stacks „Neues Projekt“ und „MyLib“
2. Ruf den Inspector für den Stack „MyLib“ auf
3. Dort (erser Reiter) stelle im Popup „Mainstack“ den Namen des neuen Projektes ein „Neues Projekt“.
4. Speichern und fertig 🙂 -
Oktober 2, 2017 um 13:55 Uhr #2282
Hallo Klaus,
ich habe es gerade ausprobiert und es klappt 🙂
Wenn man weiß wie es geht ist es ganz einfach.
Vielen Dank!!!
Liebe Grüße Heinz
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.