auf Kombinationsfeld zugreifen

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

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: auf Kombinationsfeld zugreifen

Beitrag von komma4 »

In welcher Sprache?

aufgezeichnet mit MRI, in StarBasic, Kommentare durch mich:

Code: Alles auswählen

Sub Snippet
  Dim oDrawPages As Variant
  Dim oObj1 As Variant
  Dim oObj2 As Variant
  Dim oControl As Variant
  Dim oAllItems As Variant

  oDrawPages = ThisComponent.getDrawPages()
  oObj1 = oDrawPages.getByIndex(0)  
  oObj2 = oObj1.getByIndex(0)
  oControl = oObj2.getControl()
  
' aktueller Inhalt
  oAllItems = oControl.getAllItems()
' setzen Text an Index 0
  oControl.setItemText(0, "Beispiel")

End Sub
Hilft das weiter?
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)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: auf Kombinationsfeld zugreifen

Beitrag von Stephan »

Mein Problem, wie greife ich auf das Kombinationsfeld zu,


Siehe letzte Beispieldatei in:
viewtopic.php?f=18&t=1553


Gruß
Stephan
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: auf Kombinationsfeld zugreifen

Beitrag von komma4 »

mit BASIC kannst Du nur den dispatcher zum Zugriff auf die Zwischenablage verwenden

Folgendes Schnipsel mit Ereignis "Maustaste losgelassen" verbinden

Code: Alles auswählen

' code zum Identifizieren der Combobox noch hinzufügen!
'...
sCurrentValue = oComboBox.getCurrentValue()
oDispatchHelper = createUnoService( "com.sun.star.frame.DispatchHelper" )
oDispatchHelper.executeDispatch( sCurrentValue , ".uno:Copy", "", 0, Array() ) 
Das sollte es tun (ungetestet!)
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)
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: auf Kombinationsfeld zugreifen

Beitrag von Karolus »

..code zum Identifizieren der Combobox noch hinzufügen!
wie immer bei ereignis-getriggerten Makros

Code: Alles auswählen

Sub Main(event)
mri(event)
End Sub
daraus ergibt sich dann:

Code: Alles auswählen

Sub Main(event)
msgbox event.Source.Model.CurrentValue
End Sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: auf Kombinationsfeld zugreifen

Beitrag von Stephan »

Es wäre gut wenn komma4 bitte seine codezeile:

Code: Alles auswählen

oDispatchHelper.executeDispatch( sCurrentValue , ".uno:Copy", "", 0, Array() )

prüft und feststellt was falsch ist, mir sagt diese Zeile nichts und ich bekomme sie nicht zum Laufen.


Vorerst nimm:

Code: Alles auswählen

sub data_combobox_copy(event)

Dim dispatcher as object
Dim sCurrentValue as Variant

Msgbox event.source.Model.CurrentValue 'dbg_properties

sCurrentValue = event.Source.Model.getCurrentValue()
dispatcher = createUnoService( "com.sun.star.frame.DispatchHelper" )
document   = ThisComponent.CurrentController.Frame
dispatcher.executeDispatch( document, ".uno:Copy", "", 0, Array() ) 

End Sub
dass sollte es tun, da im Moment des Auswählens eigentlich kein Risiko besteht das der Text im KOmbinationsfeld nicht fokussiert ist.


Gruß
Stephan
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: auf Kombinationsfeld zugreifen

Beitrag von komma4 »

komma4 hat geschrieben:Das sollte es tun (ungetestet!)
und wie es sich heraus stellte: leider falsch!

Im Nachhinein überlegt auch völlig klar: der Befehl "uno:copy" entspricht der Tastenkombination STRG+C in der Oberfläche - und die weiss natürlich nichts von einer Basic-Variablen.

Lösungsweg: die Combobox mit einer Zelle verbinden, worin die Auswahl automatisch geschrieben wird, mit Code diese Zelle selektieren und dann per dispatcher kopieren.
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)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: auf Kombinationsfeld zugreifen

Beitrag von Stephan »

und wie es sich heraus stellte: leider falsch!

Im Nachhinein überlegt auch völlig klar: der Befehl "uno:copy" entspricht der Tastenkombination STRG+C in der Oberfläche - und die weiss natürlich nichts von einer Basic-Variablen.
Es war natürlich nicht meine Absicht mit meiner Nachfrage/Bitte Deinen Irrtum in den Fokus zu rücken, sondern ich hatte gehofft das "uno:copy" vielleicht doch einem Parameter akzeptiert der das ermöglicht was Dir vorschwebte.
Für ganz ausgeschlossen hielt ich das schon deshalb nicht weil mir bei OO über die Jahre etliche undokumentierte Dinge begegnet sind.


Gruß
Stephan
Antworten