[gelöst] Ein createInstance Problem
Verfasst: Mi 10. Dez 2025, 00:40
Guten Abend zusammen,
ich habe mir mit der Ki folgendes Programm erstellt:
und bekomme nun einen BASIC-Laufzeitfehler, dass die Eigenschaft bzw. Methode "createInstance" nicht gefunden wird.
Ich habe die Anweisung schon von Shape auf Ellipse geändert, aber finde keine Lösung.
Unter Linux LUBUNTU verwende ich folgende Libreoffice Version:
Version: 25.8.2.2 (X86_64) / LibreOffice Community
Build ID: 580(Build:2)
CPU threads: 4; OS: Linux 6.17; UI render: default; VCL: qt6 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Ubuntu package version: 4:25.8.2-0ubuntu0.25.10.1
Calc: threaded
Ich würde mich sehr freuen, wenn mir eine/r helfen könnte.
Mit Gruß
Werner
ich habe mir mit der Ki folgendes Programm erstellt:
Code: Alles auswählen
Sub DrawTouchingCircleSegments()
' Zugriff auf die erste Zeichnungsseite
Dim oDrawPage As Object
oDrawPage = ThisComponent.DrawPages(0)
' Erstellen der ersten Ellipse (erstes Segment)
Dim oSegment1 As Object
oSegment1 = oDrawPage.createInstance("com.sun.star.drawing.EllipseShape")
'oSegment1 = oDrawPage.createInstance("com.sun.star.drawing.Ellipse")
' Position und Größe des ersten Segments
Dim oPosition1 As Object
oPosition1 = CreateUnoObject("com.sun.star.awt.Point")
oPosition1.X = 1000 ' X-Position des ersten Kreissegments
oPosition1.Y = 1000 ' Y-Position des ersten Kreissegments
oSegment1.Position = oPosition1
' Radius des ersten Kreissegments
oSegment1.Width = 2000 ' Breite des ersten Kreises
oSegment1.Height = 2000 ' Höhe des ersten Kreises (gleich für einen Kreis)
' Optional: Linie und Füllung
oSegment1.LineColor = RGB(0, 0, 0) ' Schwarze Linie
oSegment1.LineWidth = 200 ' Linienstärke
oSegment1.FillColor = RGB(255, 255, 0) ' Gelbe Füllung
' Das erste Segment zur Zeichnungsseite hinzufügen
oDrawPage.add(oSegment1)
' Erstellen der zweiten Ellipse (zweites Segment)
Dim oSegment2 As Object
oSegment2 = oDrawPage.createInstance("com.sun.star.drawing.EllipseShape")
' Position und Größe des zweiten Segments
Dim oPosition2 As Object
oPosition2 = CreateUnoObject("com.sun.star.awt.Point")
oPosition2.X = 3000 ' X-Position des zweiten Kreissegments (am Berührungspunkt)
oPosition2.Y = 1000 ' Y-Position des zweiten Kreissegments
oSegment2.Position = oPosition2
' Radius des zweiten Kreissegments
oSegment2.Width = 2000 ' Breite des zweiten Kreises
oSegment2.Height = 2000 ' Höhe des zweiten Kreises (gleich für einen Kreis)
' Optional: Linie und Füllung für das zweite Segment
oSegment2.LineColor = RGB(0, 0, 0) ' Schwarze Linie
oSegment2.LineWidth = 200 ' Linienstärke
oSegment2.FillColor = RGB(0, 255, 0) ' Grüne Füllung
' Das zweite Segment zur Zeichnungsseite hinzufügen
oDrawPage.add(oSegment2)
' Optional: Position des Berührungspunkts anzeigen
Dim oPoint As Object
oPoint = CreateUnoObject("com.sun.star.awt.Point")
oPoint.X = 2000 ' Berührungspunkt X
oPoint.Y = 1000 ' Berührungspunkt Y
MsgBox "Die Kreissegmente berühren sich bei: " & oPoint.X & ", " & oPoint.Y
End Sub
Ich habe die Anweisung schon von Shape auf Ellipse geändert, aber finde keine Lösung.
Unter Linux LUBUNTU verwende ich folgende Libreoffice Version:
Version: 25.8.2.2 (X86_64) / LibreOffice Community
Build ID: 580(Build:2)
CPU threads: 4; OS: Linux 6.17; UI render: default; VCL: qt6 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Ubuntu package version: 4:25.8.2-0ubuntu0.25.10.1
Calc: threaded
Ich würde mich sehr freuen, wenn mir eine/r helfen könnte.
Mit Gruß
Werner