ActionListener

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

Moderator: Moderatoren

Korny1986
**
Beiträge: 22
Registriert: Fr, 11.12.2009 13:09
Wohnort: Korneuburg, NÖ

ActionListener

Beitrag von Korny1986 »

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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: ActionListener

Beitrag von komma4 »

Welcher "Status" (welchen Elements) soll denn geändert worden sein?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Korny1986
**
Beiträge: 22
Registriert: Fr, 11.12.2009 13:09
Wohnort: Korneuburg, NÖ

Re: ActionListener

Beitrag von Korny1986 »

Wenn bei "ListBox" der Status geändert wird, soll das Makro ablaufen
Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

Re: ActionListener

Beitrag von Maggus »

Korny1986 hat geschrieben:Ich habe einen Dialog per Laufzeit erzeugt und wollte jetzt Ereignisse setzen ("Beim Auslösen", "Status geändert", ...)
schon ein Weilchen her, aber hier wurde das mal erklärt. :D

Gruß,
Maggus (:o)
Antworten