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         frank.schoenh...@sun.com -
- Sun Microsystems                      http://www.sun.com/staroffice -
- OpenOffice.org Base                       http://dba.openoffice.org -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org

Reply via email to