Routine durch Mausklick beenden

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

Moderator: Moderatoren

erikafuchs
*****
Beiträge: 454
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Routine durch Mausklick beenden

Beitrag von erikafuchs » Fr, 25.05.2018 18:20

Hallo Leute,
ich steh mal wieder auf dem Schlauch.
Ich bastele eine Ampelsteuerung innerhalb eines Tabellenblattes. (Bisher blinken 4 Ampeln 10 Mal.) Durch Klick auf eine Zelle (15,1) startet die Routine und bei Klick auf eine andere (15,2) soll sie stoppen. Wie stoppt man aber eine laufende Routine? geht das überhaupt? Hier ein Teil des Codes:

Code: Alles auswählen

dim oSheet as object

Sub start (woist)
	if  woist.celladdress.column=15 and woist.celladdress.row=1 then main
	if  woist.celladdress.column=15 and woist.celladdress.row=2 then stopp
end sub

Sub Main
	oSheet=ThisComponent.sheets.getByIndex(0)
	for n=0 to 10
		aus
		wait(500)
		Achtung
		wait(500)
	next
End Sub

sub Achtung
	oSheet.getCellRangeByName("e5").CellBackColor = RGB(255,255,0)
	oSheet.getCellRangeByName("L6").CellBackColor = RGB(255,255,0)
	oSheet.getCellRangeByName("d12").CellBackColor = RGB(255,255,0)
	oSheet.getCellRangeByName("k13").CellBackColor = RGB(255,255,0)	
end sub

Sub Aus
	oSheet.getCellRangeByName("e4:e6").CellBackColor = RGB(0,0,0)
	oSheet.getCellRangeByName("k6:m6").CellBackColor = RGB(0,0,0)
	oSheet.getCellRangeByName("c12:e12").CellBackColor = RGB(0,0,0)
	oSheet.getCellRangeByName("k12:k14").CellBackColor = RGB(0,0,0)	
end sub
Pit

erikafuchs
*****
Beiträge: 454
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Routine durch Mausklick beenden

Beitrag von erikafuchs » Fr, 25.05.2018 18:42

OK, ich habe es hinbekommen. Vielleicht nicht elegant:

Code: Alles auswählen

Sub start (woist)
	if  woist.celladdress.column=15 and woist.celladdress.row=1 then main
	if  woist.celladdress.column=15 and woist.celladdress.row=2 then flag=1
end sub

Sub Main
	flag=0
	oDoc=ThisComponent
	oSheet=oDoc.sheets.getByIndex(0)
	do while flag=0
		aus
		wait(500)
		Achtung
		wait(500)
	loop
End Sub

Antworten