Hello,

ich work with a listener in Calc, my code is:

Global y()
Global Listener As Object
Global View As Object


Sub Listener_registrieren()
Dim Range_dummy() As New com.sun.star.table.CellRangeAddress
blattzahl = ThisComponent.Sheets().Count
Redim y(1, blattzahl-1)
For i = 0 To blattzahl-1
        y(0, i) =  ThisComponent.Sheets(i).Name
        y(1, i) = ThisComponent.Sheets(i).getPrintAreas()
        x()=y(1, i)
        'aktives Sheet berücksichtigen
        If ThisComponent.Sheets(i).Name <>
ThisComponent.CurrentController.getActiveSheet.Name Then
                ThisComponent.Sheets(i).SetPrintAreas(Range_dummy())
        End If
Next i

View = ThisComponent.getCurrentController
Listener = CreateUnoListener( "listen_",
"com.sun.star.sheet.XActivationEventListener" )
View.addActivationEventListener(Listener)
End Sub


Sub Listener_entfernen()
blattzahl = ThisComponent.Sheets().Count
For i = 0 To blattzahl-1
        For j = 0 To UBOUND(y())
                If y(0, j) = ThisComponent.Sheets(i).Name Then
                        x() = y(1, j)
                        ThisComponent.Sheets(i).SetPrintAreas(x())
                End If
        Next j
Next i

oDocView.removeActivationEventListener(oListener)
End Sub


Sub listen_activeSpreadsheetChanged(oEvent)
Dim Range_dummy() As New com.sun.star.table.CellRangeAddress
blattzahl = ThisComponent.Sheets().Count
For i = 0 to blattzahl-1
        ThisComponent.Sheets(i).SetPrintAreas(Range_dummy())
Next i
aktives_blatt = ThisComponent.CurrentController.getActiveSheet.Name
'zweite Array-Dimension verwenden
For i = 0 To UBOUND(y(), 2)
        If y(0, i) = aktives_blatt Then
                x() = y(1, i)
                
ThisComponent.CurrentController.getActiveSheet.SetPrintAreas(x())
        End If
Next i
End Sub


OK, works fine - but when the listener is registered and i enable the
print preview (in german: Datei-Seitenansicht), then OOo is crashed in
the moment when i leave the print preview (in german: Seitenansicht
schliessen).



What is my mistake?



Regards

Jörg


OOo 2.0.4 (german) and MS Windows 2000

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to