Abfrage einer leeren Objektvariablen

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

Moderator: Moderatoren

marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Abfrage einer leeren Objektvariablen

Beitrag von marcel_at_work »

Seid gegrüßt,

ich habe eine Tabelle in einem Writer-Dokument, in der mittels Button, unter der aktuellen Cursorposition (Zelladresse) eine neue Zeile eingefügt werden kann. Diese frage ich momentan mit

Code: Alles auswählen

myViewCursorCellName = myDoc.getCurrentController().ViewCursor.Cell.CellName
ab. Dies läuft soweit auch super, nur bekomme ich auf diese Art die Meldung "Objektvariable nicht belegt", wenn sich der Cursor außerhalb der Tabelle befindet, da im Textdokument die Eigenschaft "Cell" ja nicht vorhanden ist.

Welche Möglichkeit gibt es denn, mit einer leeren Objektvariablen zu arbeiten?

Viele Grüße,

Marcel
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Abfrage einer leeren Objektvariablen

Beitrag von F3K Total »

Moin,
so etwa?

Code: Alles auswählen

Sub Main
    myViewCursor = ThisComponent.CurrentController.ViewCursor
    if ISEMPTY(myViewCursor.Cell) then
        msgbox "Der Cursor befindet sich nicht in einer Zelle"
    else
        sCellname = myViewCursor.Cell.CellName
        msgbox sCellname  
    endif
End Sub
Gruß R
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Abfrage einer leeren Objektvariablen

Beitrag von marcel_at_work »

Du bist ein Schatz, Danke. :D
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Abfrage einer leeren Objektvariablen

Beitrag von Toxitom »

Kleiner Zusatzhinweis:

Der Code funktioniert zu 90% - bei etwa 10% de Anwendungsfälle gibt es keinen Viewcursor und der Code läuft in einen Fehler.

Um das abzufangen würde ich unbedingt einen Fehlersprung mit einbauen....

Code: Alles auswählen

Sub Main
   on error goto ende:
    myViewCursor = ThisComponent.CurrentController.ViewCursor
    on error goto 0  'Errorhandler zurücksetzen
    if ISEMPTY(myViewCursor.Cell) then
        msgbox "Der Cursor befindet sich nicht in einer Zelle"
    else
        sCellname = myViewCursor.Cell.CellName
        msgbox sCellname 
    endif
    exit sub
ende:
  msgbox "Kein Cursor vorhanden...."
End Sub
Zum Testen: Beispielsweise die Druckvorschau einstellen - da gibt es keinen Cursor....

VG Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Abfrage einer leeren Objektvariablen

Beitrag von marcel_at_work »

Danke! :D
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Antworten