🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

type coercion failed: TYPE is not supported

Alles zur Programmierung im LibreOffice.
gianni
Beiträge: 19
Registriert: Sa 7. Jan 2017, 14:09
Wohnort: Frankfurt am Main
Kontaktdaten:

type coercion failed: TYPE is not supported

Beitrag von gianni » Mi 11. Jan 2017, 11:27

Lesen-Lernen, Version LO 170111-Probe1107.odt
(15.67 KiB) 204-mal heruntergeladen
In dem Programm, das ich zur Zeit bearbeite, erhalte ich diese Fehlermeldung, wenn ich eine Taste drücke:
Bild
Wenn ich die "OK-Taste" betätige, gibt es einen Crash und alles verschwindet, so, dass ich nicht weiß, was den Fehler verursacht hat. Was kann ich tun?
Zuletzt geändert von gianni am Mi 11. Jan 2017, 17:53, insgesamt 1-mal geändert.

swolf
* LO-Experte *
Beiträge: 1143
Registriert: Di 14. Feb 2012, 16:56

Re: type coercion failed: TYPE is not supported

Beitrag von swolf » Mi 11. Jan 2017, 15:50

Hallo,
Ich würde gerne die Datei hochladen, weiß ich aber nicht, wie es geht.
diese Option findest du so:
- gehe ins Editier-Fenster, änderst also einen bestehenden Beitrag oder schreibst einen neuen
- dann lass deinen Blick wandern nach unten (unterhalb des Fenster, etwas nach links.)

gianni
Beiträge: 19
Registriert: Sa 7. Jan 2017, 14:09
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: type coercion failed: TYPE is not supported

Beitrag von gianni » Mi 11. Jan 2017, 17:59

Vielen Dank für den Hinweis. swolf. Die Datei habe ich jetzt hochgeladen. Der Link befindet sich in meinem ersten Beitrag.

balu
* LO-Experte *
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: type coercion failed: TYPE is not supported

Beitrag von balu » Mi 11. Jan 2017, 18:41

Hallo gianni,

hab die Datei unter WinXP mit LO 5.1.5.2 getestet, und konnte dein Problem so weit nachstellen.

Klicke ich auf den Button ändert sich der Text von ihm. Und ferner popt ein Print Fenster auf mit dem Text "Caesar abgemeldet" beziehungsweise "Caesar angemeldet".

Und wenn der Button auf Ja steht, dann kann ich wie dort geschrieben mit der Pfeiltaste den Cursor bewegen, und anschließend popt ein Print Fenster auf mit dem Text "Hier Auswahl".

Nehme ich aber z.B. die Pfeiltaste nach unten, dann passiert das, was Du geschildert hast.

Die ganze Sache mit Listner ist nicht so meine Welt. Aber muss denn nicht ein Key-Listner in deinem Falle an ein Ereignis unter ->Extras ->Anpassen ->Ereignis angebunden werden und mit dem Dokument gespeichert werden?
Wie gsagt, nicht meine Welt und deshalb stelle ich diese Frage.



Gruß
balu

gianni
Beiträge: 19
Registriert: Sa 7. Jan 2017, 14:09
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: type coercion failed: TYPE is not supported

Beitrag von gianni » Mi 11. Jan 2017, 19:35

Balu, du hast geschrieben:
Aber muss denn nicht ein Key-Listner in deinem Falle an ein Ereignis unter ->Extras ->Anpassen ->Ereignis angebunden werden und mit dem Dokument gespeichert werden?
Ich hoffe, dass das nicht nötig sein wird, weil ich dabei bin, eine ODT-Datei zu schreiben, die durch Kinder im Vorschulalter benutzt werden soll (die VBA-Version ist schon lange fertig und funktioniert einwandfrei), die das Lesen zu Hause lernen wollen.

Für sie wäre es eine Zumutung, wenn sie mit dem Menu arbeiten müssten. Sie können eben noch nicht lesen.

Alles, was Mama oder Papa ihnen erklären sollte, wäre es, die rechte Pfeiltaste zu bewegen, um so einen Buchstaben nach dem anderen vorgelesen zu bekommen, beziehungsweise, einen kleinen Video jeweils zu starten, der den Buchstaben im Singen erklärt und einen oder mehrere Gegenstände oder Tiere zeigt, deren Worten mit diesem Buchstaben beginnen.

Aber vielleicht habe ich das Problem gelöst. Vielleicht hatte ich den Fehler gemacht, dass ich aus der Seite 248 der Datei von Andrew Pitonyak
"OpenOffice.org-Makros Erklärt" in der Übersetzung von Volker Lenhardt nicht alles korrekt abgeschrieben habe.

Weggelassen hatte ich:

Code: Alles auswählen

REM Nicht nur für Listeners, sondern auch für Handlers obligatorisch.
Sub Caesar_disposing
End Sub
REM Das Ereignis "Taste losgelassen" wird nicht beachtet. Die Rückgabe
REM "False" leitet das Ereignis an die Standardroutine weiter.
Function Caesar_keyReleased As Boolean
Caesar_keyReleased = False 'Nicht notwendig, denn der Funktionswert ist eh False.
End Function
Jetzt habe ich es in die neue Datei eingefügt, die ich ebenfalls hochgeladen habe. Es scheint mir, dass der Fehler nicht mehr vorkommt.
Zuletzt geändert von gianni am Mi 11. Jan 2017, 19:49, insgesamt 2-mal geändert.

gianni
Beiträge: 19
Registriert: Sa 7. Jan 2017, 14:09
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: type coercion failed: TYPE is not supported

Beitrag von gianni » Mi 11. Jan 2017, 19:43

Hier die veränderte Version der ersten Datei:
Lesen-Lernen, Version LO 170111-Probe1840.odt
(16.13 KiB) 217-mal heruntergeladen

balu
* LO-Experte *
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: type coercion failed: TYPE is not supported

Beitrag von balu » Mi 11. Jan 2017, 21:05

Ich hoffe, dass das nicht nötig sein wird [...]

Für sie wäre es eine Zumutung, wenn sie mit dem Menu arbeiten müssten. Sie können eben noch nicht lesen.
Nix für ungut, aber daran sieht man das Du dich erstens nicht mit dem beschriebenen Weg befasst hast, und zweitens nicht den tieferen Sinn verstehst. Soll vorkommen, bist ja ein "Ausländer" ;-) :-) Nein keine Beleidigung, sondern nur eine andere Interpretation von Excel-User.

Das was ich beschrieben habe, wird nur von dir durchgeführt. Und dies wird dann in der Datei gespeichert. Das wird einmalig gemacht, und dann ist das bis auf weiteres fest in der Datei verankert. Der Anwender der Datei kommt damit überhaupt nicht in Kontakt, er weiß das gar nicht das da was ist, so fern er sich nicht mit diesem Office auskennt. Also deine Bedenken sind fehl am Platz.

die VBA-Version ist schon lange fertig und funktioniert einwandfrei
[...]
Es scheint mir, dass der Fehler nicht mehr vorkommt.
*hust-hust-hust*
Tja, so einfach ist das mit dem Umschreiben von VBA Makros zu StarBasis doch nun mal halt nicht. Und ganz ehrlich und wahrhaftig gesagt, ich möchte nicht in deiner Haut stecken. Mir persönlich wäre das einfach zu viel des guten mich mit 2 ähnlichen Programmiersprachen und deren Unterschiede auseinander zusetzen.

Aber nix desto trotz, muss ich dich da dringend auf verschiedenes hinweisen.
Fangen wir im Makro selber an, und zwar ganz am Anfang im Module1.

Code: Alles auswählen

Global PfadLesenlernen, StringPfadUndNameVLCexe, VLCParameter, AktuellerPfad, Erweiterung As String
1.
Warum muss das Global sein?

2.
Unter Excel mag das durchaus so Okay sein. Aber nicht unter StarBasic.
Es gibt eine sehr sehr wichtige Regel.
Jeder Variable muss eindeutig ein Typ zugeordnet werden. Geschieht das nicht, so wird der dementsprechenden Variablen automatisch der Typ Variant zugeordnet. Und diese automatik kann unter Umständen zu argen Problem führen.

Es gibt wohl auch ne Ausnahme, z.B. Array, aber die scheint hier jetzt nich zu zutreffen.

Und folglich ist es wirklich Ratsam die Variablen deklaration wie folgt durchzuführen.

Code: Alles auswählen

Global PfadLesenlernen As String, StringPfadUndNameVLCexe As String, VLCParameter As String, AktuellerPfad, Erweiterung As String

Warum zerpflückst Du den CreateUnoListener?

Code: Alles auswählen

Sub StartCaesarHandler
  Dim sPrefix As String
  Dim sService As String
  
  sPrefix = "Caesar_"
  sService = "com.sun.star.awt.XKeyHandler"
  
  oCaesarCurrCont = ThisComponent.CurrentController      'Globale Variable.'
  oCaesarHandler = CreateUnoListener(sPrefix, sService)  'Globale Variable.'
  
  oCaesarCurrCont.addKeyHandler(oCaesarHandler)
  Print "Caesar angemeldet!"
End Sub
Verstehe den Sinn nicht.


Code: Alles auswählen

		If ZeigeMsgBox then
			print "Pfeil-nach-rechts-Taste mit dem Code " + Numero + "Umschalttaste mit dem Code " + iMod
		End If
		Module2.Auswahl
Ich weiß nicht ob das in VBA so sein MUSS, aber wenn Du in StarBasic eine Sub in einem anderen Modul aufrufen willst, reicht es ganz einfach den Sub Namen anzugeben. Das dementsprechende Modul muss nicht angegeben werden. Also so rum.

Code: Alles auswählen

        If ZeigeMsgBox then
            print "Pfeil-nach-rechts-Taste mit dem Code " + Numero + "Umschalttaste mit dem Code " + iMod
        End If
        Auswahl

Da ich mich ehern ein bischen besser in Calc als im Writer auskenne, höre ich jetzt mit der weiteren Code Analyse auf. Obwohl, doch noch nicht so ganz. Denn

Ich bekomme eine Fehlermeldung, aber ohne Programmabsturz, die auch etwas anderes besagt. Und zwar wenn ich z.B. die Pfeil Taste nach rechts bewegt habe und die daraufhin erscheinende Textmeldung "Pfeil-nach-rechts-Taste mit dem Code ...." mit Ok bestätige kommt dann das dabei raus.
fehlermeldung.png
fehlermeldung.png (27.7 KiB) 4820 mal betrachtet
Das liegt wohl einerseits daran das ich nicht Win10 habe, und anderseits das dann der dementsprechende Pfad zum VLC nicht korrekt ist. Ich habe wohl den VLC, der ist aber nicht installiert sondern als Portable auf der Platte.

Auch wenn ich so gesehen das Falsche Betriebssystem habe, so solltest Du wohl am besten noch eine Fehlerüberprüfung einbauen ob überhaupt VLC installiert ist. Ist nur mal so ein laut gesprochener Gedanke meinerseits.

Wie auch immer, ich wünsche dir von Herzen viel Erfolg bei der Umsetzung deines Vorhaben. :)



Gruß
balu

gianni
Beiträge: 19
Registriert: Sa 7. Jan 2017, 14:09
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: type coercion failed: TYPE is not supported

Beitrag von gianni » Mi 11. Jan 2017, 21:55

Vielen Dank, balu, für die große Mühe, die du dir gegeben hast. Ich brauche mehr Zeit, um mir alles, was du mir geschrieben hast, zu überlegen.

Aber schon jetzt möchte ich zwei Einwände erwidern:

1)
Da ich mich ehern ein bischen besser in Calc als im Writer auskenne, höre ich jetzt mit der weiteren Code Analyse auf. Obwohl, doch noch nicht so ganz. Denn

Ich bekomme eine Fehlermeldung, aber ohne Programmabsturz, die auch etwas anderes besagt. Und zwar wenn ich z.B. die Pfeil Taste nach rechts bewegt habe und die daraufhin erscheinende Textmeldung "Pfeil-nach-rechts-Taste mit dem Code ...." mit Ok bestätige kommt dann das dabei raus.Bild
fehlermeldung.png
fehlermeldung.png (27.7 KiB) 2 mal betrachtet
Ja, ich war zu schlampig. Das Pünktchen bei "... + .Erweiterung, ..." muss weg. Und die ganze Zeile danach (MsgBox ActiveDocument.Path) muss auch weg.

2)
Tja, so einfach ist das mit dem Umschreiben von VBA Makros zu StarBasis doch nun mal halt nicht. Und ganz ehrlich und wahrhaftig gesagt, ich möchte nicht in deiner Haut stecken. Mir persönlich wäre das einfach zu viel des guten mich mit 2 ähnlichen Programmiersprachen und deren Unterschiede auseinander zusetzen.
Ich habe keine andere Wahl, denn nicht alle Eltern können / wollen sich leisten, das Geld für Word auszugeben. Andererseits ist es für mich viel leichter, mit VBA zu arbeiten. BildBild

balu
* LO-Experte *
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: type coercion failed: TYPE is not supported

Beitrag von balu » Mi 11. Jan 2017, 23:34

Vielen Dank, balu, für die große Mühe, die du dir gegeben hast.
Danke schön :-)
Aber das war für mich wirklich keine Mühe.

Ja, ich war zu schlampig. Das Pünktchen bei "... + .Erweiterung, ..." muss weg.
Und die ganze Zeile danach (MsgBox ActiveDocument.Path) muss auch weg.
Also schlampig bist Du nicht. Und man kann ja durchaus mal was übersehen. Die MsgBox habe ich übrigens durchaus als eine typische Programmierhilfe angesehen, machen ja schließlich viele genau so, auch ich. Und wie Du jetzt mitbekommen hast, hat sie ihren Zweck mehr als erfüllt. Denn dadurch war eine Fehlerbeschreibung doch viel einfacher. ;)



Gruß
balu

gianni
Beiträge: 19
Registriert: Sa 7. Jan 2017, 14:09
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: type coercion failed: TYPE is not supported

Beitrag von gianni » Do 12. Jan 2017, 09:09

Die MsgBox habe ich übrigens durchaus als eine typische Programmierhilfe angesehen, machen ja schließlich viele genau so, auch ich. Und wie Du jetzt mitbekommen hast, hat sie ihren Zweck mehr als erfüllt. Denn dadurch war eine Fehlerbeschreibung doch viel einfacher.
Ich meinte nicht "MsgBox", balu, sondern "ActiveDocument.Path". Denn das erste ist unverändert auch in LO-Basic vorhanden, das zweite ist - wenn ich mich nicht irre - nur in VBA da.

Aber nun eine andere ganz wichtige und dringende Frage, Balu. Ich hatte gedacht, dass oViewCursor das LO-Äquival vom VBA-Selection wäre. Nun bekomme ich aber zunehmend Zweifel. Könntest du bitte mir einen kleinen Fetzen Makro zeigen, wo die Selektion um zum Beispiel 3 Buchstaben nach rechts erweitert wird? Wenn ich das hätte, dann würde ich hoffentlich noch heute die LO-Übersetzung der Lesen-Lernen-Makros hinbekommen.

Danke.

Gianni Facini


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten