Autor Thema: LotusScript- Objekte zwischen Maske und Teilmaske "sharen"  (Gelesen 2831 mal)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Ich würde gerne ein Objekt in einer Script- Library einbinden, das ich in einem Maskenevent setze und dann im Event einer eingebauten Teilmaske wieder auslesen kann...
Aber leider scheint das nicht zu funktionieren: Mit dem selben Use in Maske und Teilmaske bekomme ich jeweils eine "Instanz" der Script- Library mit eigenen Variablen zu bekommen...

Hintergrund ist folgender: Ich möchte in der Mailmaske neue Aktionen hinzufügen, die ich aber über eine Teilmaske einbinden will. Trotzdem sollen diese Aktionen Funktionen auf dem cMemoObject durchführen (Konkret: cMemoObject.InsertSignature).

In diesem speziellen Fall ist cMemoObject (kommt aus CoreEmailClasses) direkt in den globals der Maske deklariert... aber das könnte ich ja ändern, wenn es diese Möglichkeit gäbe...
« Letzte Änderung: 11.09.12 - 15:32:26 von Tode »
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: LotusScript- Objekte zwischen Maske und Teilmaske "sharen"
« Antwort #1 am: 11.09.12 - 15:30:20 »
OK... habs selbst rausgefunden:
Wenn man in beiden (Maske und Teilmaske) die gleiche Library einbindet, und dann in einem von beiden eine Globale Variable aus der Library setzt, dann hat der andere Zugriff auf die gleiche Variable... Das funktioniert out of the box... habe wohl bei meinen Tests das Caching durch Designer / Client (mal wieder) vernachlässigt.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: LotusScript- Objekte zwischen Maske und Teilmaske "sharen"
« Antwort #2 am: 11.09.12 - 15:34:19 »
Bei "eigenen" Klassen weiß ich nicht, ob es da Probleme gibt, aber bei anderen Objekten nutze ich das.

In den Declarations einer (allgemeingültigen) Scriptbibliothek definiere ich die Objekte, z.B.

Dim konfigdb As NotesDatabase

Im PostOpen einer Teilmaske setze ich die dann

Set konfigdb = New NotesDatabase (server, dateiname)

und habe in jedem anderen Event, das die gleiche Bibliothek eingebunden hat, die konfigdb im Zugriff.

Das mache ich schon seit Notes 5 so und funktioniert auch unter 8.5.3 immer noch, wie gewünscht.

EDIT: Zu spät, bestätigt aber Deinen zweiten Post ;)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: LotusScript- Objekte zwischen Maske und Teilmaske "sharen"
« Antwort #3 am: 11.09.12 - 15:48:19 »
Die (vermutlich) große Library wird dann aber von jeder Teilmaske nochmals geladen, was sich negativ auf die Performance auswirken kann.

Tipp noch von mir:
Mach dir eine "Mini"-Library, welche nur einen Variant enthält:
Zitat
public sharedObject as variant
In deine Maske machst du einen Use auf diese Mini-Lib + auf die Lib(s) die deine Klasse/Code enthält.
Im initialize oder queryOpen der Maske machst du dann ein "set sharedObject = new mySharedClass(...)"

in den Aktionen in den Teilmasken bindest du dann nur die Mini-Lib ein und kannst über "sharedObject.xxx" auf die Properties/Funktionen von "mySharedClass" zugreifen (da sharedObject aber ein Variant sein muss, ist dies allerdings nicht typsicher, das ist der Nachteil den man sich dadurch erkauft)

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: LotusScript- Objekte zwischen Maske und Teilmaske "sharen"
« Antwort #4 am: 11.09.12 - 16:03:34 »
Das ist ein guter Einwand @pram.

Grund für diese Konstrukt war, eine verhältnismässig "updatesichere" Modifikation der Mailschablone durchzuführen:
Ich wollte so viel wie möglich (am liebsten alles) was ich an Ergänzungen habe in die Teilmaske packen, und dann als einzige Änderung diese Teilmaske
einbinden...

Das funktioniert aber sowieso nicht zu 100 % (da ich auch das ein oder andere Feld anpasse), und deshalb werde ich diese Änderung im Use eben auch noch einbinden... Danke für den Tipp wegen der Performance...

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz