Objekt als Konstante

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

Moderator: Moderatoren

Ironzwerg
***
Beiträge: 65
Registriert: Mi, 22.08.2007 22:36
Wohnort: Bielefeld
Kontaktdaten:

Objekt als Konstante

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

Re: Objekt als Konstante

Beitrag 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
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)
Antworten