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.....
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