Die Frage wird in meinem letzten Posting wahrscheinlich nicht gefunden, also noch mal ohne das Zentrierungsproblem:
muss man alle Felder im Dialog einzeln ändern oder kann man eine Schleife mit z.B. oCtrl & n ansprechen. (Ja, so geht es nicht, vielleicht anders?)
oDialog=createUnoDialog(DialogLibraries.Rechentrainer.RechnenDialog)
oCtrl1=oDialog.getControl("Aufgabe").model
oCtrl2=oDialog.getControl("Aufgabe1").model
oCtrl3=oDialog.getControl("gleich").model
oCtrl4=oDialog.getControl("Eingabe").model
oCtrl5=oDialog.getControl("Einheit").model
for n=1 to 5
oCtrl & n.FontHeight=17
next
Pit
Zuletzt geändert von erikafuchs am So, 19.01.2020 13:22, insgesamt 1-mal geändert.
nein, Variabelnnamen kannst Du nicht mit "&" zusammensetzen;) Insofern funktioniert Deine Schleife so nicht.
Baue andersherum: entweder du deklinierst die Namen der Controlelemente (also z.B. Aufgabe1-AufgabenN), dann kannst Du die Namen der Controllelemente in einer Schleife verarbeiten:
aListe = array("Aufgabe", Aufgabe1", "gleich", "Eingabe", "Einheit")
with oDialog
for n = 0 to ubound(aliste)
.getControl(aListe(n)).model.FontHeight = 17
next
end with
wie Tom schon schrieb, kenne auch ich keine Möglichkeit, Objektbezeichner so zusammenzusetzen, aber es ist in deinem Fall auch nicht nötig, die jeweiligen Objekte einzeln anzusprechen und aufzulisten.
Wenn du nämlich sowieso alle angezeigten Text-Elemente auf deinem Dialog vergrößern musst, kannst du dies ja auch über den jeweiligen Element-Typ realisieren...
Dim n As Integer
For n = 0 To uBound(oDialog.Model.ElementNames())
Select Case oDialog.getControl(oDialog.Model.ElementNames(n)).ImplementationName
Case "stardiv.Toolkit.UnoListBoxControl" 'alle Listbox-Elemente
'tue irgendetwas...
Case "stardiv.Toolkit.UnoEditControl" 'alle Text-Elemente
'tue irgendetwas...
End Select
Next
... gerade nicht getestet, aber sollte funktionieren.
Viele Grüße,
Marcel
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Lieber Marcel, lieber Tom,
vielen Dank für eure Hilfe. Ich habe etwas rumprobiert und ändere jetzt doch die Elemente einzeln und nicht alle. Wenn ich alle ändere, muss ich nicht nur Größen sondern auch Positionen ändern, da wird der Dialog zu groß. Das mit dem Array ziehe ich noch in Erwägung, ich habe halt verschiedene Dialoge, das wird schnell unübersichtlich. Die Namen der Elemnt möchte ich nicht ändern, da tauchen sonst Fehler auf, wenn ich die Namen nicht alle im Code finde und ändere.
Hallo Marcel,
ja, schon klar. Ich hätte besser schreiben sollen: Die Namen der Dialogfelder sind so gewählt, dass ich ihnen Inhalte zuordnen kann, die möchte ich ungerne z.B. durchnummerieren.