von Korny1986 » Fr, 05.02.2010 12:16
Hallo an alle!
Ich habe einen Dialog per Laufzeit erzeugt und wollte jetzt Ereignisse setzen ("Beim Auslösen", "Status geändert", ...). Per Mausklick ein Event zu setzen habe ich schon geschafft, bräuchte aber das Event "Status geändert". Kann mir bitte irgenwer helfen, habe im Internet schon lang gesucht aber keine brauchbaren Informationen gefunden.
Hier ist dann noch der Code den ich zusammengestöpselt habe.
Code: Alles auswählen
Public oDlg as Object
Sub BspButtonEvent
oDlg = DialogErstellen()
oBtn = oDlg.getControl("OK")
MouseClick = CreateUnoListener(" MouseClick_", "com.sun.star.awt.XActionListener")
oBtn.addActionListener(MouseClick)
oDlg.getControl("ListBox").selectItemPos(0, 1)
oDlg.execute()
End Sub
Function DialogErstellen()
Dim oDlgM as Object
Dim oMod as Object
Dim oWin as Object
Dim aArray(2)
aArray(0) = "String 1"
aArray(1) = "String 2"
aArray(2) = "String 3"
aArray(3) = "String 4"
rem ---------- Dialogmodell definieren ----------
oDlgM = createUNOService("com.sun.star.awt.UnoControlDialogModel")
With oDlgM
.setPropertyValue("PositionX", 200)
.setPropertyValue("PositionY", 150)
.setPropertyValue("Width", 160)
.setPropertyValue("Height", 70)
.setPropertyValue("Title", "TestDialog")
End With
rem ---------- Models definieren ----------
'---------- ListBox definieren & einfügen ----------
oMod = oDlgM.createInstance("com.sun.star.awt.UnoControlListBoxModel")
With oMod
.setPropertyValue("Name", "ListBox")
.setPropertyValue("PositionX", 5)
.setPropertyValue("PositionY", 10)
.setPropertyValue("Width", 150)
.setPropertyValue("Height", 15)
.setPropertyValue("Dropdown", True)
.setPropertyValue("MultiSelection", False)
.setPropertyValue("StringItemList", aArray())
End With
oDlgM.InsertByName("ListBox", oMod)
'---------- TextBox definieren & einfügen ----------
oMod = oDlgM.createInstance("com.sun.star.awt.UnoControlEditModel")
With oMod
.setPropertyValue("Name", "TextBox")
.setPropertyValue("PositionX", 5)
.setPropertyValue("PositionY", 30)
.setPropertyValue("Width", 150)
.setPropertyValue("Height", 13)
End With
oDlgM.InsertByName("TextBox", oMod)
'---------- Button definieren & einfügen ----------
oMod = oDlgM.createInstance("com.sun.star.awt.UnoControlButtonModel")
With oMod
.setPropertyValue("Name", "OK")
.setPropertyValue("PositionX", 5)
.setPropertyValue("PositionY", 50)
.setPropertyValue("Width", 150)
.setPropertyValue("Height", 15)
.setPropertyValue("Label", "OK")
End With
oDlgM.InsertByName("OK", oMod)
oDlg = CreateUnoService("com.sun.star.awt.UnoControlDialog")
oDlg.setModel(oDlgM)
oWin = CreateUnoService("com.sun.star.awt.Toolkit")
oDlg.createPeer(oWin, null)
DialogErstellen = oDlg
End Function
Sub MouseClick_actionPerformed(Event as Object)
Dim oList as Object
oList = oDlg.getControl("ListBox")
MsgBox oList.getSelectedItem()
End Sub
Danke für eure Mithilfe
MFG
Korny
Hallo an alle!
Ich habe einen Dialog per Laufzeit erzeugt und wollte jetzt Ereignisse setzen ("Beim Auslösen", "Status geändert", ...). Per Mausklick ein Event zu setzen habe ich schon geschafft, bräuchte aber das Event "Status geändert". Kann mir bitte irgenwer helfen, habe im Internet schon lang gesucht aber keine brauchbaren Informationen gefunden.
Hier ist dann noch der Code den ich zusammengestöpselt habe.
[code]
Public oDlg as Object
Sub BspButtonEvent
oDlg = DialogErstellen()
oBtn = oDlg.getControl("OK")
MouseClick = CreateUnoListener(" MouseClick_", "com.sun.star.awt.XActionListener")
oBtn.addActionListener(MouseClick)
oDlg.getControl("ListBox").selectItemPos(0, 1)
oDlg.execute()
End Sub
Function DialogErstellen()
Dim oDlgM as Object
Dim oMod as Object
Dim oWin as Object
Dim aArray(2)
aArray(0) = "String 1"
aArray(1) = "String 2"
aArray(2) = "String 3"
aArray(3) = "String 4"
rem ---------- Dialogmodell definieren ----------
oDlgM = createUNOService("com.sun.star.awt.UnoControlDialogModel")
With oDlgM
.setPropertyValue("PositionX", 200)
.setPropertyValue("PositionY", 150)
.setPropertyValue("Width", 160)
.setPropertyValue("Height", 70)
.setPropertyValue("Title", "TestDialog")
End With
rem ---------- Models definieren ----------
'---------- ListBox definieren & einfügen ----------
oMod = oDlgM.createInstance("com.sun.star.awt.UnoControlListBoxModel")
With oMod
.setPropertyValue("Name", "ListBox")
.setPropertyValue("PositionX", 5)
.setPropertyValue("PositionY", 10)
.setPropertyValue("Width", 150)
.setPropertyValue("Height", 15)
.setPropertyValue("Dropdown", True)
.setPropertyValue("MultiSelection", False)
.setPropertyValue("StringItemList", aArray())
End With
oDlgM.InsertByName("ListBox", oMod)
'---------- TextBox definieren & einfügen ----------
oMod = oDlgM.createInstance("com.sun.star.awt.UnoControlEditModel")
With oMod
.setPropertyValue("Name", "TextBox")
.setPropertyValue("PositionX", 5)
.setPropertyValue("PositionY", 30)
.setPropertyValue("Width", 150)
.setPropertyValue("Height", 13)
End With
oDlgM.InsertByName("TextBox", oMod)
'---------- Button definieren & einfügen ----------
oMod = oDlgM.createInstance("com.sun.star.awt.UnoControlButtonModel")
With oMod
.setPropertyValue("Name", "OK")
.setPropertyValue("PositionX", 5)
.setPropertyValue("PositionY", 50)
.setPropertyValue("Width", 150)
.setPropertyValue("Height", 15)
.setPropertyValue("Label", "OK")
End With
oDlgM.InsertByName("OK", oMod)
oDlg = CreateUnoService("com.sun.star.awt.UnoControlDialog")
oDlg.setModel(oDlgM)
oWin = CreateUnoService("com.sun.star.awt.Toolkit")
oDlg.createPeer(oWin, null)
DialogErstellen = oDlg
End Function
Sub MouseClick_actionPerformed(Event as Object)
Dim oList as Object
oList = oDlg.getControl("ListBox")
MsgBox oList.getSelectedItem()
End Sub
[/code]
Danke für eure Mithilfe
MFG
Korny