Funktionalitt nachladen?

Ist es möglich zur Laufzeit parametergesteuert Funktionen oder Module nachzuladen?

Ja, aber nur über RbScript (XojoScript), d.h. du lädst den Source-Code (den du ggf. verschlüsseln mußt bei der Übertragung, damit da niemand so einfach reinschauen kann), und compilierst ihn dann, und kannst ihn dann aufrufen. Ist ein wenig umständlich, aber die einzige Art, um nachträglich Algorithmen usw. hinzuzufügen.

Nun, es gibt noch einen anderen Weg: Du kannst Library-Files (aka Object-Code, aka dylib, aka DLL) nachladen und dessen Funktionen aufrufen, aber diese Libraries kann man nicht mit Xojo erzeugen, sondern braucht dafür sowas wie Xcode oder Visual Studio und muß den Code in C oder C# oder sowas schreiben.

Danke, das ist ja schon mal ein guter Einstieg. Kann ich über Xojo-Script den ganzen Funktionsumfang von Xojo abbilden? Oder gibt es Einschränkungen? Bei den Library-Files gehe ich mal davon aus, dass man die für die jeweiligen Plattformen dedziert schreiben muß?

Klaus, ein Programm, das in XojoScript luft, hat erstmal nur wenige Funktionen zur Verfgung, und das sind nur welche, die mit Strings und einigen anderen Datentypen arbeiten. Alles, was mit I/O, z.B. Dateizugriff, zu tun hat, mut du dem Script ber sog. Context-Funktionen selbst anbieten. Das ist ein Security-Feature, damit Leute nicht einfach ein Script ndern knnen und dann damit Unsinn anstellen knnte, ohne da dein Programm darber Kontrolle htte. D.h, diese Scripts laufen in einer Art Sandbox, und Du musst denen Funktionen anbieten fr das, was du denen erlauben willst.

Ausserdem ist die Datenbergabe zw. deinem Programm und einem Script umstndlich. Man kann nur Strings, Float und Int bergeben, nichtmal Arrays, und erst recht keine Objekte oder Dictionary und sowas.

Ich glaube, Alfred Van Hoek hat da mal was Universelleres mit seinem “ActionScript” gemacht, aber ich hab’s nie ganz verstanden.

Der Ansatz von AVH geht aber schon in diese Richtung. Werde mal die Demos checken …

Danke Thomas. Ich glaube, ich muß erst noch etwas mehr in Xojo eintauchen :slight_smile:

Was willst Du denn eigentlich machen? Vielleicht gibt es eine andere Möglichkeit.

Eine ‘groe’ Anwendung in eine ‘kleine’ Basisapp mit diversen Funktionsmodulen aufspalten. Und dann jeweils nur die bentigten Module nachladen.

Das ist jetzt nicht so wirklich konkret… Was ist das für ein Programm? Was sollen die Programm-Babies machen???

Du kannst auch eigenständige Helper-Apps schreiben und dann diese mit IPC oder AppleEvents mit dem Hauptprogramm kommunizieren lassen.

Es geht u.a. um verschiedene Lernmodule (größere Anzahl mit jeweils anderen UseCases), Videoplayer, Stundenpläne, Prüfungssimulatoren, Knowledgebase etc.

Konkreter kann ich hier nicht werden, wg. NDA

Hmm…

Was ich von Xojo-Script bisher gelesen habe, ist es nicht so für Dich geeignet. Da würden die Helper-Apps mehr Sinn machen. Kommt halt darauf an, wie eigenständig Deine Module sind.