Kontrollelemente einem Dialog hinzufügen

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

Moderator: Moderatoren

Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

Kontrollelemente einem Dialog hinzufügen

Beitrag von Maggus »

Hallo,

mir ist etwas schleierhaft, warum folgender Code unterschiedlich funktioniert, je nachdem, in welchem Kontext ich ihn aufrufe.

Zum Hintergrund: Ich möchte einem vorhandenem Dialog (per Dialogdesigner erstellt mit einigen Elementen auf Step 1) gerne nun auf Step 2 eine ganze Reihe weiterer Kontrollelemente hinzufügen.

Testweise hatte ich diese neuen Kontrollelemente erstmal in einem neuen Dialog erzeugt, was wunderbar schnell funktioniert. Nun aber habe ich das umgebaut, dass diese wie gesagt auf dem vorhandenen Dialog hinzukommen. Der Code sieht also so aus:

Dlg.Model ist der bestehende Dialog

Code: Alles auswählen

Sub inizialize_dlg_step2()
  oMod = Dlg.Model.createInstance("com.sun.star.awt.UnoControlButtonModel")
  oMod.PositionX = 5
  oMod.PositionY = 5
  oMod.Width = 10
  oMod.Height = 10
  oMod.Label = "1"
  oMod.Toggle = true
  oMod.FocusOnClick = false
  oMod.Step = 2
  Dlg.Model.insertByName("Button_1", oMod)
  For i = 2 to 240
    oMod = oMod.CreateClone
    oMod.PositionY = oMod.PositionY+12
    oMod.Label = i
    Dlg.Model.insertByName("Button_"+i, oMod)
    If i=21 Or i=41 Or i=61 Or i=81 Then 
      oMod.PositionY = 5
      oMod.PositionX = oMod.PositionX+12
    Elseif i = 100 Then
      oMod.Width = 14
      oMod.PositionX = oMod.PositionX-2
      oMod.FontHeight = 9
    Elseif i=101 Or i=121 Or i=141 Or i=161 Or i=181 Or i=201 Or i=221 Then
      oMod.PositionY = 5
      oMod.PositionX = oMod.PositionX+17
      If i=101 Then oMod.PositionX = oMod.PositionX-3
    End If
  Next i
End Sub
Auf diese Weise braucht es aber tierisch lange, bis der Code ausgeführt wird. Kann mir jemand erklären warum? Zum ausprobieren habe ich mal eine Beispieldatei angehängt. Da kann man gut den Zeitunterschied feststellen.
Dlg_Step2_test.ods
(16.24 KiB) 70-mal heruntergeladen
Gruß,
Maggus (:o)