Seite 1 von 1
					
				gelöst: Schleife über Projektnamen
				Verfasst: Mo, 13.01.2020 18:31
				von erikafuchs
				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?)
Code: Alles auswählen
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
 
			 
			
					
				Re: Schleife über Projektnamen
				Verfasst: Mo, 13.01.2020 21:31
				von Toxitom
				Hei Pit,
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:
Code: Alles auswählen
with oDialog
  for n = 1 to 5
    .getControl("Aufgabe" & n).model.FontHeight = 17
  next
end with
oder Du schreibst Dir die Namen der Controllelemente in einen Array und verarbeitest den dann:
Code: Alles auswählen
aListe = array("Aufgabe", Aufgabe1", "gleich", "Eingabe", "Einheit")
with oDialog
  for n = 0 to ubound(aliste)
    .getControl(aListe(n)).model.FontHeight = 17
  next
end with
VG
Tom
 
			 
			
					
				Re: Schleife über Projektnamen
				Verfasst: Mi, 15.01.2020 17:58
				von marcel_at_work
				Hallo Pit,
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...
Code: Alles auswählen
	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
 
			 
			
					
				Re: Schleife über Projektnamen
				Verfasst: Do, 16.01.2020 10:32
				von erikafuchs
				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.
			 
			
					
				Re: Schleife über Projektnamen
				Verfasst: Fr, 17.01.2020 20:45
				von marcel_at_work
				Hallo Pit,
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.
Die Funktion "Suchen & Ersetzen" erledigt solche Sachen mit einem Mausklick. Dies könnte man sogar mittels Funktion automatisieren. 
 
Liebe Grüße und ein schönes Wochenende,
Marcel
 
			 
			
					
				Re: Schleife über Projektnamen
				Verfasst: So, 19.01.2020 12:36
				von erikafuchs
				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.