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