Listbox stellt selectItemPos() nicht zur Verfügung

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

ihja
**
Beiträge: 21
Registriert: Mo, 08.03.2010 16:26

Listbox stellt selectItemPos() nicht zur Verfügung

Beitrag von ihja »

Die Frage nach selectItemPos() lässt schon vermuten was ich vorhabe. Ich will mit einem Makro einen beliebigen Listeneintrag des Dropdownmenüs auswählen. Gefunden habe ich die Methode hier: http://wiki.services.openoffice.org/wik ... I/List_Box. Leider stellt mein Listboxobject diese leider nicht zur Verfügung.

Hier der Code:

Code: Alles auswählen

oDoc = StarDesktop.CurrentComponent
oForm = oDoc.DrawPage.Forms.GetByIndex(0)

oList= oForm2.getByName("Liste")
oList.SelectedItemPos 'mit verschiedensten Variationen der Methode also mit Argumenten oder so probiert findet er trotzdem nicht
Danke schonmal!



Moderation,4: Makro-Fragen bitte im zuständigen Unterforum; verschoben
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Listbox stellt selectItemPos() nicht zur Verfügung

Beitrag von komma4 »

Hast Du mit XRAY überprüft, dass das Objekt wirklich vorhanden ist?

Welche Fehlermeldung bekommst Du?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Listbox stellt selectItemPos() nicht zur Verfügung

Beitrag von DPunch »

Aloha
OOo Wiki hat geschrieben:The list box control that supports the interface com.sun.star.awt.XListBox offers more convenient functions than the list box model. For example, it offers the method
selectItemPos( [in] short nPos,[in] boolean bSelect ) to select or deselect a single item in the list box.
Ich hab den wichtigen Teil aus Deinem Link mal fett markiert.

Mit

Code: Alles auswählen

oList= oForm2.getByName("Liste")
kriegst Du aber das Model (com.sun.star.comp.forms.OListBoxModel), nicht das Control der Listbox.
Um auf die Methoden des Interfaces (wie auch selectItemPos) zuzugreifen, benötigst Du das Control der ListBox (com.sun.star.comp.forms.OListBoxControl), welches das Interface XListBox unterstützt.

Code: Alles auswählen

oDoc = StarDesktop.CurrentComponent
oForm = oDoc.DrawPage.Forms.GetByIndex(0)

oList= oForm2.getByName("Liste") '<-------------- Hier kriegst Du das Model
oListControl = oDoc.CurrentController.getControl(oList) '<----------------------- So bekommst Du Zugriff auf das Control der Listbox
REM oList.SelectedItemPos   '<-- Model unterstützt das Interface XListBox nicht, daher nicht möglich
MsgBox oListControl.SelectedItemPos '<--- Control unterstützt das Interface, somit stehen auch dessen Methoden zur Verfügung
ihja
**
Beiträge: 21
Registriert: Mo, 08.03.2010 16:26

Re: Listbox stellt selectItemPos() nicht zur Verfügung

Beitrag von ihja »

@DPunch: Jo danke musws ich mal ausprobieren wenn ich wieder kann. Ich melde mich dann nochmal!

@komma4: Weiß leider nicht genau wie man XRay benutzt. Kannst du mir mla nen Bsp geben wie man dieses Element untersuchen könnte?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Listbox stellt selectItemPos() nicht zur Verfügung

Beitrag von komma4 »

ihja hat geschrieben:@komma4: Weiß leider nicht genau wie man XRay benutzt. Kannst du mir mla nen Bsp geben wie man dieses Element untersuchen könnte?

Code: Alles auswählen

Sub xrayTest

' laden der XRAY-Routinen
GlobalScope.BasicLibraries.Loadlibrary("XrayTool")

oDok = ThisComponent

xray oDok

End Sub
Einfach, oder?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten