[Dies ist eine vorläufige Dokumentation und ist veränderbar]

Liogo überall

Logo ist eine mächtige dynamische Sprache; daher könnte es großartig sein, die Mächtigkeit der Logosprache in einigen anderen Anwendungen zu nutzen. Es ist genau was Ihnen Liogo erlaubt, Liogo OLE Automation (Software Interface) zu verwenden.

OLE Automation ist ein Weg für eine Windows Applikation, um seine Features für andere Applikationen zu belichten. Viele Anwendungen dürfen eine OLE Automation aufrufen. Die meist bekannten sind Office Applikationen (Visual Basic für Applikation benutzend) und die VBScript Kommandozeile. Ich werde Ihnen in diesem Tutorial zeigen, wie Sie Liogo von diesen Applikationen her nutzen können. Hinweis: OLE Automation wird nicht unterstützt von Linux.

Bevor Sie das Tutorial fortsetzen, müssen Sie sicher sein, dass das Liogo OLE Automation Interface auf Ihrem PC installiert ist. Das Paket wird installiert mit "Complete" installieren oder falls die "Developer"-Option am Anpassungs-Setup gewählt wird (vgl. Grafik unten). Wenn Sie diese Option beim Setup nicht wählen, starten Sie wieder das Setup-Wizard und aktualisieren Sie Ihr Setup.

Liogo-Laufzeit starten

Liogo OLE Automation wird gelegentlich ausgestellt auf ein COM Objekt genannt "Liogo.Application". Um Liogo aufzurufen, müssen Sie zuerst eine "Liogo.Application" herstellen. Hier wie Sie dieses Objekt in VBScript schaffen können:

var liogo = CreateObject("Liogo.Application")

Hier wird das Objekt hergestellt und dann verbunden zu einer VBScript-Variablen "liogo".

Das erste, was nun zu tun ist, ist die Liogo Laufzeit zu initialisieren. Sie müssen dazu die Initialize-Methode auf Ihrem Liogo-Objekt aufrufen.

liogo.Initialize("")

Die Initialize-Methode nimmt einen Parameter, verwendet als Settings-String. Wir werden dieses Feature kurz sehen. Im Augenblick, benutzen wir einen leeren String, weil wir keine spezielle Setzung benötigen.

Drei Methoden erlauben Ihnen mit der Liogo Laufzeit zu kommunizieren:

Hier ist ein wirklich einfaches VBScript-Programm, genannt "oletest.vbs", welches jede beschriebene Methode benutzt.

Hinweis: Zeilennummern sind wegen der Annehmlichkeit hinzugefügt worden.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
' Aufruf Liogo, indem OLE verwendet wird

Set liogo = CreateObject("Liogo.Application")
liogo.Initialize("")

liogo.Execute("druckezeile """&"Hallo| |Liogo")

liogo.SetVar "w", 6

wscript.Echo liogo.Execute("summe :w 2")

wscript.Echo liogo.GetVar("w")

liogo.Terminate()

Line 6 verwenden Sie Execute, um den Logo Druck aufzurufen, eine Willkommensbotschaft anzuzeigen. Hinweis: Sie sollten die Logo Quote nutzen, um  Stringkonstanten zu behandeln.

Line 8 ruft SetVar auf, um den Wert der Logo global Variable "w" auf die Nummer 6 zu setzen. Diese Zeile ist äquivalent zum Logo-Befehl:

setze "w 6

Line 10  verwenden Sie Execute , um eine arithmetische Operation mit der Logo Variablen "w" zu durchzuführen. Das Ergebnis dieser Operation wird gedruckt, indem die VBScript Echo-Funktion benutzt wird. Anstelle des Druckens könnte dieses Ergebnis genauso gut in eine VBScript-Variable gesetzt werden.

Line 12 verwenden Sie SetVar, um den Wert der Logo Variablen "w" zu erhalten.

Über Datentypen

Jedesmal werden Daten zwischen Liogo und VBScript ausgetauscht, eine Konvertierung wird gebraucht. In dem vorigen Probebeispiel, werden nur numerische Werte verwendet: in der Zeile 8, wird eine VBScript-Zahl in eine Logo-Zahl umgewandelt, umgekehrt wird in der Zeile 10 und 12 eine Logo-Zahl in eine VBScript-Zahl konvertiert.

Die Liogo OLE Automation (Software Interface) wandelt automatisch Werte zwischen Logo und dem multi-verwendungsfähigen COM-Datentyp, genannt Variant, um. Die Tabelle unten: Äquivalente Listen zwischen Logo und Variant.
Typname Logo-Wert Variant-Wert
Zahl

Logo-Wert

110 110
Wort "Hallo 'Hallo'
Liste [A B C] Array("A", "B", "C")
Array {A B C} Array("A", "B", "C")
Geschachtelte Listen oder geschachtelte Arrays     [[1 2 3] [4 5 6]     Array(Array(1, 2, 3), Array(4, 5, 6))

Magisches Quadrat (Zauberquadrat)

Excel-Blätter und speziell Excel-Formulare sind große Plätze, Logo zu verwenden. Weil Liogo die automatische Umwandlung/Konvertierung mit Arrays hat, ist es einfach, den Logo-Ausdruck zu verwenden, um eine Zellenkette zu füllen oder zu erhalten.

Das Folgende ist eine Exceldatei, benannt "magicsquare.xls", die Liogo benutzt, um ein Magisches Quadrat (Zauberquadrat) zu berechnen.

Wie Sie wahrscheinlich wissen, ein magisches Quadrat ist eine Zahlenanordnung in einem Quadrat, so dass die Zahlensumme in allen Reihen und allen Spalten und den beiden Diagonalen die gleiche Konstante ist. In diesem Probebeispiel, wird ein Quadratteil gefüllt oder berechnet, indem Liogo verwendet wird und ein anderer Teil wird gefüllt oder berechnet, indem Excel benutzt wird.

Number 1 an dem vorigen Schema zeigt, wie die erste Zeile initialisiert wird, indem eine Logoliste verwendet wird. Hier ist der VBA-Quellcode hinter 1:
Range("B5:E5").Value = liogo.Execute("(liste 1 12 8 13)")

Number 2 an dem Schema zeigt, wie Sie eine Summe in einer Excelzeile berechnen könnten. Der VBA-Quellcode ist:
liogo.SetVar "c", Range("B5:E5").Value
Range("F5").Value = liogo.Execute("reduzieren ""summe er :c")

Number 3 an dem Schema zeigt, wie ein Zeilensatz auf einmal initialisiert wird:
Range("B5:E5").Value = liogo.Execute("(liste [11 2 14 7] [16 5 9 4])")

Schließlich, Number 4 in dem Schema ist eine Operation an einem Klammersatz:
liogo.SetVar "c", Range("B5:B8").Value
Range("B9").Value = liogo.Execute("reduzieren ""summe alleerste :c")

Behandungsfehler

Manchmal könnte Ihr Logocode Fehler aufweisen. Allgemeine Fehler geschehen, falls Sie eine nicht existierende Prozedur aufrufen oder falls Sie versuchen, einen Wert einer nicht initialisierten globalen Variablen zu erhalten. Zwei Methoden können diese Fälle angehen: GetErrorId und GetErrorText. Hier ein Probebeispiel, indem diese Methoden benutzt werden.
liogo.Execute("druckezeile summe 3 5")
if liogo.GetErrorId() <> -1 then
    wscript.Echo liogo.GetErrorText()
end if

v = liogo.GetVar("xyz")
if liogo.GetErrorId() <> -1 then
    wscript.Echo liogo.GetErrorText()
end if

GetErrorId wird verwendet, um geschehene Fehler zu erhalten. -1 wird zurückgegeben, falls kein Fehler geschieht.

GetErrorText wird benutzt, um die Fehlermeldung zu erhalten. Ein leerer String wird zurückgegeben, falls kein Fehler geschieht.

Prozeduren und Performance anpassen

Weil Liogo ein Logo-Compiler ist, verwenden Sie jedesmal Execute-Methoden; Liogo muss den Compiler aufrufen. Natürlich gibt es einen Aufwand, viele Male den Logo-Compiler zur Laufzeit aufzurufen. Sie haben zwei Möglichkeiten, diesen Aufwand zu vermeiden.

Der erste Weg ist, jedes Mal den gleichen String als Execute-Parameter zu verwenden. Das folgende Skript berechnet einen Näherungswert für PI, indem Logografikbefehle verwendet werden.
    Dim n As Integer
    n = 10
    For i = 6 To 16
        liogo.SetVar "n", n
        liogo.Execute "mitte löscheschirm wh :n [vw 1 re 180/:n] setze ""r 2*:n/(er ort)"
        Range("B" & i).Value = n
        Range("C" & i).Value = liogo.GetVar("r")
        n = n * 2
    Next i

An der inneren VBA-Schleife, können Sie sehen, dass ich Logo-Variablen für die Logo Schleife und für das Ergebnis verwendet habe. Bedenken Sie, die Schleifenzahl ändert sich, der gleiche String wird immer benutzt. Daher wird der Liogo-Compiler nur einmal gerufen.

Ein anderer Weg die Performance zu optimieren ist, Ihre Anpassungs-DLLs zu aufzurufen. Als ein Beispiel, nehmen Sie wieder die "fakt.dll"-Assembly generiert im erster Schritt mit Liogo Tutorial. Um dieses Assembly aufzurufen, rufe dazu den Lade-Logobefehl auf.
liogo.Execute "lade ""fakt"
wscript.Echo liogo.Execute("fakultät 10")

Hinweis: Angemessen einem  Ergebnis in der laufenden Version, sollten alle Anpassungs-DLLs in das %SYSTEMROOT%\SYSTEM32 kopiert werden (allgemein meist in C:\WINDOWS\SYSTEM32).

Setzungen für Ihre OLE-Applikation

Wenn Sie Entwickeln und anpassen-Tutorial ergänzen, wissen Sie schon, dass Sie Ihre Liogo-Applikation anpassen könnten. Es gibt keinen Weg, eine Setzungsdatei zu verwenden, wenn Sie Liogo von OLE aus aufrufen. Jedoch Liogo OLE Interface lässt Sie Ihre Settings setzen, indem das erste Argument des Initialize-Aufrufes verwendet wird. Im folgenden Probebeispiel benutzen wir Setzungen, um die aktuelle Sprache für Logobefehle und Botschaften zu ändern.
 
	var liogo = CreateObject("Liogo.Application")
	liogo.Initialize ("LIOGO.Culture.Core=de;LIOGO.Culture.UI=de")

Natürlich können alle beschriebene Setzungen in der Settings-Referenz genau so gut geändert werden.