Hey LSH_Dackel,
hmm, na ja, da sind schon noch ein paar "dicke" Hunde drin im Code. Kann mir gar nicht vorstellen, dass das funktioniert.
1. Tipp: Nutze Arrays, das macht dir das Leben deutlich einfacher

z.B. die ganzen Fächer: einmal in einem Array definiert, kannst du immer wieder darauf zurückgreifen. So in der Art:
Code: Alles auswählen
dim aFaecher()
aFaecher = array("Deutsch", "Englisch", "Mathematik", ...)
So einen String-Array kann du dann auch direkt einem Listenfeld zuweisen - in einer Zeile.
2. Tipp: Alle immer wieder benutzten Objekte definierst du vor der ersten Sub, ähnlich wie deinen Dialog. In der sub config schliesslich weist du allen die entsprechenden Inhalte zu - dann kannst du immer darauf zugreifen.
Code: Alles auswählen
Public MyDlg as object
Dim LK1 as Object
Dim aFaecher()
...
sub config
DialogLibraries.LoadLibrary( "Konfig" )
MyDlg = CreateUnoDialog( DialogLibraries.Konfig.Fach_Abfrage_Dialog )
MyDlg.Model.Step=1
LK1 = MyDlg.getControl("LK1")
...
schflaeche_einstellen
MyDlg.Execute()
end sub
3. Tipp: Streiche die Zeile mit dem Dispose()
Die brauchst du nicht und sie stört nur. Der Dialog wird beendet mit den Buttons, der Methode "endexecute()" oder durch das Schliessen Kreuz. Intern verbleibt das Objekt aber noch erhalten, so dass du auch weiterhin auf die Kontrollelemente zugreifen kannst. Zerstörst du das Objekt komplett (mit dispose()) geht das nicht mehr. Das Objekt wird von OOo automatisch zerstört und der Speicherplatz freigegeben, wenn er benötigt wird. Hier musst du nicht eingreifen.
4. Tipp: Was diese Zeilen bedeuten sollen ist mir leider schleierhaft. Kann mir übrigens auch nciht vorstellen, dass der Interpreter hier nicht "muckt"
Zwei Zuweisungen in einer Zeile hinterienander??? Das geht nicht. Entweder hast du ein Kommentarzeichen vergessen nach getText oder der Interpreter hört dort einfach auf - und ignoriert den Rest. Im übrigen erschliesst sich mir nicht der Sinn dieser Aktion??
5. Tipp: Du sparst dir Schreibarbeit immer dort, wo sinnvoll Variable eingesetzt werden können, nämlihc immer dann, wenn du häufig darauf zurückgreifst, wie hier:
Code: Alles auswählen
select case LK1.getText
case = "Mathematik"
doppeltes_lottchen(LK1.getText)
...
Hier macht es Sinn, entsprechend zu kürzen:
Code: Alles auswählen
dim sT as string
sT = LK1.getText
select case sT
case "Mathematik"
doppeltes_lottchen(sT)
...
Na ja, das mal so für den Anfang
Viele Grüße
Thomas