[GELÖST] Text in ComboBox "blau hinterlegen"

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

Moderator: Moderatoren

MerleG
Beiträge: 2
Registriert: So, 03.01.2021 14:57

[GELÖST] Text in ComboBox "blau hinterlegen"

Beitrag von MerleG »

Hallo Community,

ich bin neu hier und sag mal Hallo! Wünsche allen noch ein gesundes neues Jahr.
Ich bin leider eher ein Noob, was Programmierung angeht (hab zuletzt vor 20 Jahren in der Schule programmiert und da war es eher VBA), daher möchte ich mich schon mal vorab für evtl. Unverständnis eurer Lösungen meinerseit entschuldigen.

Ich hab bisher gut mit eurem Forum arbeiten können und für alle Probleme, die mir beim Programmierung unter gekommen sind, Lösungen finden können.
Doch dieses eine Problem bekomm ich einfach nicht hin (vielleicht ist es auch nicht möglich):

Vorneweg: ich arbeite mit LibreOffice 6.4.6.2 unter Windows 10

- aus einer Tabellencalculation heraus öffne ich über einen Button einen Dialog
- in diesem Dialog befindet sich u.a. eine ComboBox welche zum einen mit einem Text versehen ist (quasi eine Überschrift), zum anderen mit Argumenten gefüllt ist
- Sinn und Zweck dieser Combobox ist es, dass man ein Argument auswählt, welches dann per Schließen des Dialogs in eine Zelle im Tabellenblatt übertragen wird
- das Auswählen passiert ja entweder dadurch, dass ich mich per Mausrad durchscrolle, oder den Pulldown-Pfeil betätige und dann per Maus auswähle
- soweit, so gut..... es funktioniert auch alles, wie es soll

jetzt mein kleines Luxus-Problem
- ich bin Mausfaul ;)
- ich möchte gern die Anfangsbuchstaben eines Argumentes per Tastatur eintippen und er soll dann automatisch das passende Argument anzeigen
- funktioniert, sofern ich zuvor in der ComboBox einen Doppelklick gesetzt habe; habe ich das nicht, ist die Überschrift "im Weg" (der blinkende Cursor sitzt vor der Überschrift und man schreibt einfach vor der Überschrift)
- wie erwähnt: ich bin Mausfaul
- ich möchte gern, dass die Überschrift bereits nach Öffen des Dialogs "blau" markiert ist

geht das?

mit SetFocus funktioniert es nicht -> damit erreiche ich nur, dass der Cursor zwar in der ComboBox ist, aber, wie gesagt, vor der Überschrift sitzt

Ich habe bereits versucht, einen Doppelklick zu simulieren, aber daran bin ich (trotz Forum- und Googlesuche) aufgrund fehlender Kenntnis gescheitert

die Überschrift weg lassen, würde mein Problem sofort beheben -> ist aber keine Option..... :D

Ich bedanke mich schon mal im Voraus für eure Ideen

LG Merle

auch wenn es wahrscheinlich nicht nötig ist, hier mein Code
(main wird über den Button im Tabellenblatt aufgerufen)

Code: Alles auswählen

Sub Main
	Dim oDatei as Object, oSheet as Object, oDialog as Object
	Dim oCBox as Object, bDialog as boolean
	
	oDatei = thiscomponent
	oSheet = oDatei.sheets(0)

	DialogLibraries.LoadLibrary( "Standard" )
	oDialog = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
	oCBox = oDialog.getControl("ComboBox1")
	
	oCBox.addItems(Array("Frühling","Sommer","Herbst","Winter"),0)
	oCBox.Text = "Jahreszeiten"
	bDialog = oDialog.execute

	if bDialog then
		oSheet.getCellByPosition(0,0).String = oCBox.getText	
	else
		exit sub
	end if
	
End Sub
Zuletzt geändert von MerleG am So, 03.01.2021 16:53, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Text in ComboBox "blau hinterlegen"

Beitrag von Stephan »

Bei der Combo-Box ist der angezeigte Text quasi tatsächlich Text und kein Item.

Folgendes sollte gehen (ungetestet):

Code: Alles auswählen

'...
oCBox = oDialog.getControl("ComboBox1")

Dim akt_selected
akt_selected = createUnoStruct( "com.sun.star.awt.Selection" ) 
akt_selected.min = 0
akt_selected.max = Len(oCBox.Text)
oCBox.setFocus
oCBox.setselection(akt_selected)

'...

Gruß
Stephan
MerleG
Beiträge: 2
Registriert: So, 03.01.2021 14:57

Re: Text in ComboBox "blau hinterlegen"

Beitrag von MerleG »

Perfekt!

Funktioniert wie gewünscht.

Ich hätte mich schon viel früher an euch wenden sollen.

Danke noch mal!

LG Merle
Antworten