Seite 1 von 1

Objekt als Konstante

Verfasst: Di, 16.12.2008 19:15
von Ironzwerg
Hi zusammen,

ich habe schon überall gesucht, aber leider nichts gefunden.
Ich möchte Objekte als Konstanten deklarieren, aber leider kommt immer ein Syntaxfehler.
Hier sind mal zwei Beispiele:
Const oDoc = thisComponent
Const oSheet = oDoc.sheets.getByName("Rechnung")

Auch Const oDoc as Object = thisComponent funktioniert nicht.

Wenn ich hingegen ein Integer-Wert als Constante deklariere gibt es keine Probleme.
Somit stellt sich für mich die Frage, ob es überhaupt möglich ist ein Objekt als Konstante zu deklarieren?

Danke schon mal


Gruß

Ironzwerg

Re: Objekt als Konstante

Verfasst: Di, 16.12.2008 19:39
von komma4
Nein, das denke ich nicht.

CONST müssen vor dem Starten einer SUB konkrete Werte haben, das ist bei ThisComponent nicht der Fall (da es erst bei der ersten Verwendung durch die runtime engine aufgelöst wird).

Eine Zuweisung als oDoc erübrigt sich doch auch, da Du ja alternativ im Code immer ThisComponent nutzen kannst.

Willst Du Dir Tipparbeit ersparen, weil Du immer wieder die gleichen Zuordnungen brauchst, dann schreibe Dir eine Routine, welche die gewünschten Objekte setzt, und rufe die auf

Code: Alles auswählen

Sub Main

call calcObjekte

'...
print oBlatt1.Name ' or whatever
'...

End Sub
und dort dann...

Code: Alles auswählen

Public oTopCalcDoc
Public oBlatt1
Sub calcObjekte
oTopCalcDoc = ThisComponent
oBlatt1 = oTopCalcDoc.getSheets().getByName( "Tabelle1" )
End Sub
Lasse die Typzuweisung einfach weg.
Erstens steht irgendwo (im DevGuide?), dass man VARIANT anstelle OBJECT nutzen soll, und zweitens findet OOo automatisch den richtigen Typ.


Deutlicher ( = Nachvollziehbarkeit, ein Qualitätsmerkmal!) ist es aber im Code selbst schreiben, was vor sich geht...

HTH