Hallo Robert,
> SUB Neu_Disable
> REM Der Button "ButtonNeu" wird auf "Disabled" geschaltet.
> oDoc=thisComponent
> oDrawpage = oDoc.Drawpage
> oForm = oDrawpage.Forms.getByName("Artikel")
> oFeld = oForm.getByName("ButtonNeu")
> oDocCrl = ThisComponent.getCurrentController()
> oCtlView = oDocCrl.GetControl(oFeld)
> oCtlView.Enable = False
> END SUB
Einer der häufigsten Fehler, durch die Architektur zugegebenermaßen
provoziert: Dein Makro ändern den Status am *Control*, nicht am *Model*.
Selbst wenn Dir das Dokument "gehört" (im Sinne von: Dein Makro weiß,
was es da tut, und hat die Kontrolle), das Control gehört Dir nicht. Es
gibt diverse Gelegenheiten, bei denen andere Instanzen den
Enabled-Status des Controls ändern, aus legitimen Gründen (zum Beispiel
wird es während des Speicherns kurzzeitig disabled). Insofern: Was immer
Du für Änderungen am Control machst, Du weißt nie, wann die
überschrieben werden.
oFeld.Enabled = FALSE
sollte Dein Freund sein: oFeld ist das Model, und über das hast Du die
Kontrolle. Das beschreibt, wie Controls, die zu diesem Model gehören,
aussehen und sich verhalten sollen. Insoferm: Immer das Model verändern,
nie das Control.
> Meine Frage: - gibt es eine Möglichkeit, eine Pause in einem Makro einzubauen?
sleep, wenn ich mich richtig erinnere.
> Meine Frage (aus Neugier): - was läuft da im Hintergrund ab, so dass diese
> Pause anscheinend notwendig ist?
schwer zu raten, wüßte ich so aus der Beschreibung heraus nicht.
> ... Was übrigens nicht funktioniert: Den Button in der GUI auf aktiviert -
> Nein zu stellen und dann anschließend per Makro eine Aktivierung zu
> erreichen.
> Zumindest nicht mit oCtlView.Enable = True. ...
Weil das, was Du in der UI einstellst, das Model betrifft. Wenn das
Model sagt, dass der Button nicht deaktiviert ist, dann ist er das auch
- ohne Wenn und Aber. Wenn das Model sagt, dass der Button aktiviert
ist, dann ist er das *üblicherweise* - mit den oben genannten
Einschränkungen, dass es Situationen gibt, in denen das übersteuert wird.
Ciao
Frank
--
- Frank Schönheit, Software Engineer [email protected] -
- Sun Microsystems http://www.sun.com/staroffice -
- OpenOffice.org Base http://dba.openoffice.org -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]