makros in MeineMakros-Standard-Modul1

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: makros in MeineMakros-Standard-Modul1

Re: makros in MeineMakros-Standard-Modul1

von eBayer » Mi, 20.05.2009 09:27

Bitte..... dein problem hat mich halt interessiert.... obwohl ich mit calc nicht soviel am hut habe.
aber super, daß du eine lösung gefunden hast.
Gruss eBayer

sieht doch gut aus!

von moritz » Di, 19.05.2009 22:49

Hallo, ebayer
Vielen Dank für deinen Tip. Mit python ist es möglich, Funktionen mittels *.oxt- Datei zu installieren, so daß sie wie die Calc- Funktionen genutzt werden können. Sogar die Verwendung des Funktionsassistenten ist möglich. Perfekt.
http://www.biochemfusion.com/doc/Calc_addin_howto.html
Die lange Diskussion hat doch was gebracht.
Vielen Dank Dir und Jan Holst Jensen.
Moritz

Re: makros in MeineMakros-Standard-Modul1

von eBayer » So, 17.05.2009 14:36

schau mal dort nach: (sieht schlecht aus)
http://www.nabble.com/OOo-BASIC-Calc-ex ... 30077.html

Re: makros in MeineMakros-Standard-Modul1

von moritz » Sa, 16.05.2009 22:41

Da gibt es ein neues Problem:
Variante 1: Die Calc- Datei wird von einem externen Programm aus einem vorhandenen Quell-Datei neu erzeugt. Da kann das Makro enthalten sein, also unproblematisch.
Variante 2: Die Calc- Datei ist bereits vorhanden und wird von einem externen Programm aufgerufen. Wenn das Makro fehlt, müsste es eingefügt werden, aber wie? Alternativ wäre es auch möglich, die Datei neu aus der Quelldatei zu erzeugen und die Tabellen aus der alten in die neue Datei zu übertragen. Das ist aber ein ziemlicher Aufwand, den ich vermeiden möchte.
Moritz

Re: makros in MeineMakros-Standard-Modul1

von eBayer » Fr, 15.05.2009 18:09

Hallo Moritz,
Du hast Recht, ich konnte Deine Beispiele mit dem gleichen Ergebnis nachvollziehen.
Allerdings bin ich auf folgenden Lösungsansatz gekommen, weiß allerdings nicht, ob es Dir was bringt.
Wenn ich nämlich Dein Mistmakro im Dokument platziere und aus dem Makro eines aus einer Library aufrufe, funktioniert es.
Jedenfalls ist damit bewiesen, daß ich auf Libraryfunktionen zugreifen kann.
Gruß eBayer

In dem Dokument:
function Mist(zahl)
Mist = xMist(zahl)
end function

In der Library:
Global function xMist(zahl)
xMist = zahl*zahl
msgbox "hallo"
end function

Re: makros in MeineMakros-Standard-Modul1

von moritz » Fr, 15.05.2009 16:00

Hallo, ebayer,
schön daß du mir immer wieder Hoffnung machst.
Doch ich glaube, es geht wirklich nicht.
Ganz einfaches makro:
Global Function Mist(dZahl As Double)
dZahl=13
end function

Aufruf als Funktion in einer Calc- Zelle =Mistl(9)
Funktioniert in der Standard- Bibliothek (Ergebnis 13)
Funktioniert nicht in einer eigenen Bibliothek (#WERT!)
Kannst Du gern selbst testen.

Eine Lösung ist, wenn auch nicht optimal, folgende:
Makro in der Standardbibliothek
Function StartMist(dzahl As double)
StartMist=Mist(dZahl)
end Funktion
Aufruf in Calc- Zelle mit '=StartMist(9)'

Aber auch dieses StartMist- Makro muß einmalig manuell in der Standardbibilothek instaliert werden. So würden aber zumindest Updates für das Mist- Makro funktionieren.
Viele Grüße
Moritz

Re: makros in MeineMakros-Standard-Modul1

von eBayer » Fr, 15.05.2009 12:11

Hallo Moritz,
ich verwende seit Monaten meine eigenen Librarys, in denen ich alle Subroutinen und Dialoge gespeichert habe.
Auf diese Weise verteile ich dann auch meine Anwendung auf andere Rechner.
Einfach als Library123.oxt exportieren und mit Doppelklick am anderen Rechner importieren.
Darin verwende ich auch globale Variablen, die ich systemweit verwende.
Voraussetzung ist, daß die Library auch ordnungsgemäß beim Start geladen wird (Beispiel):
If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Library3" ) Then
GlobalScope.BasicLibraries.loadLibrary( "Library3" )
End if
Unter irgendwelchen Voraussetzungen konnte ich nicht immer auf die Variablen zugreifen. Deshalb habe ich in der Library 2 Funktionen, mit denen ich die Variablen verwalte (Beispiel):

Global Function setMyDataSource(oQuelle) ' damit setze ich die Variable
oDatenquelle = oQuelle ' oDatenquelle ist eine globale Variable, die ich in der Library definiert habe
End Function

Global Function getMyDataSource() ' mit dieser Funktion hole ich mir die Variable
getMyDataSource = oDatenquelle
End Function

Vielleicht hilft's weiter.
Gruß eBayer

Re: makros in MeineMakros-Standard-Modul1

von moritz » Fr, 15.05.2009 11:08

Hallo ebayer,
nein, mit anderen Variablen hat das nichts zu tun. Hab ich alles probiert. Es ist wohl so, daß benutzerdefinierte Funktionen tatsächlich nur in der Standard- Bibliothek funktionieren. Dort kann zwar ein eigenes Modul definiert werden, aber die Verwendung einer eigenen Bibliothek ist leider nicht möglich.
Also bin ich wieder am Anfang: Wie kann ein Makro in der Standard- Bibliothek benutzerfreundlich installiert werden?
Viele Grüße
Moritz

Re: makros in MeineMakros-Standard-Modul1

von eBayer » Do, 14.05.2009 18:26

nur so ein gedanke....
greifst du möglicherweise in dem makro auf eine an anderer stelle definierte variable zu?
global geht auch nur auf modulebene - da kann man sich leicht vertun.
gruss eBayer

Re: makros in MeineMakros-Standard-Modul1

von moritz » Do, 14.05.2009 17:52

Hallo, Winfried,
es stimmt, daß die Funktion anscheinend auch gefunden wird, wenn sie in einer anderen Bibliothek steht. Sie funktioniert dann aber nicht.
Gleiche Funktion in Standard Modul1 funktioniert korrekt, in anderer Bibliothek kommt die Fehlermeldung "#Wert!". Bei einem Schreibfehler kommt "err509". Die Funktion wird also tatsächlich gefunden. Ich wüßte aber nicht, wo dabei ein Fehler sein sollte. Ich habe das Ganze auch mit ganz einfachen Funktionen versucht, immer das gleiche Ergebnis.
Oder hast du einen Tip dazu? Es wär mir schon lieber, wenn die Funktion in einer eigenen Bibliothek stehen würde und damit auch automatisch in die Online- Updates einbezogen wäre.
WinXP SP3, OO 3.1
Danke
Moritz

Re: makros in MeineMakros-Standard-Modul1

von komma4 » Do, 14.05.2009 15:58

Hallo Moritz,

die Funktion wird auch gefunden, wenn sie nicht in Modul1 steht.
Eine Verteilung über Extensions geht nicht (Library-Name der Erweiterung) ... aber Du kannst Dir den Code von XRAY reinziehen: dort ist die Erstellung und Bearbeitung von BASIC-Modulen behandelt.

makros in MeineMakros-Standard-Modul1

von moritz » Do, 14.05.2009 15:03

Hallo,
ich habe eine calc- Funktion geschrieben. Damit sie gefunden wird, muß sie in MeineMakros Standard- Modul1 gespeichert werden. Meine anderen Makros verteile ich an Anwender über *.oxt- Dateien.
Gibt es eine Möglichkeit, über ein Makro ein Makro in Standard Modul1 automatisch zu installieren?
Vielen Dank für eure Mühen.
Moritz

Nach oben