Event Invoke

Lokaler Name Event Invoke
API Name EventInvoke
Datentyp Integer
Gültigkeit Gültige Werte sind 0 und 1
Get Funktion   (dcl-Control-GetEventInvoke <CONTROL>)
Set Funktion   (dcl-Control-SetEventInvoke <CONTROL> intNewValue [als Integer])
Anwendbar auf Alle Steuerelemente und Dialoge

Diese Eigenschaft bestimmt das Verhalten während der Ereignisse, ob sie synchron oder asynchron ausgelöst werden. Der synchrone Aufruf bewirkt, dass die Dialogsteuerung das Ende der Ereignisfunktion abwartet, um fortzufahren. Das kann im Einzelfall bewirken, dass der Fokus auf dem Steuerelement verbleibt. Der asynchrone Aufruf bewirkt hingegen, dass der Dialog mit seinem Programm fortfährt und die Ereignisfunktion solange nicht ausgeführt wird, bis AutoCAD bereit ist, die Ereignisfunktionen abzuarbeiten. Das kann man dann daran erkennen, dass das Steuerelement seinen Fokus an die AutoCAD-Befehlszeile bzw. den Zeichenbereich abgibt. Diese Eigenschaft steht in modalen Dialogen und Karteikartenreiter in den Optionen nicht zur Verfügung und wird dort ignoriert.

Wert Bedeutung
0

synchron

1 asynchron

Synchron ausgeführte Ereignisfunktionen können nur eingeschränkt agieren, weil sie in einem verschobenen Zustand zum Programmablauf des Dialogs ablaufen und AutoCAD keine Befehle abarbeiten kann. So kann beispielsweise die AutoLISP-Funktion (command) nicht sicher ausgeführt werden. Das Erstellen und Ändern (auch via ActiveX) von Objekten und Sachdaten (als EED, LData und XRecordData) bleibt gegebenenfalls ohne Wirkung. In besonderen Fällen können Sie innerhalb synchron ausgeführter Ereignisfunktionen von nichtmodalen Dialogen einen Befehl an der AutoCAD-Befehlszeile erzwingen, indem Sie ihn mit der Funktion (dcl-sendstring) aufrufen lassen.

(dcl-sendstring "MeinBefehl\n") ;; Mit dem Sonderzeichen \n initiieren Sie das Betätigen der ENTER-Taste

Asynchron ausgeführte Ereignisfunktionen werden in den meisten Fällen solange nicht ausgeführt, bis das auslösende Ereignis beendet ist, dafür kann das Ereignis die AutoLISP-Funktion (command) sicher aufrufen, um AutoLISP-Befehle abzuarbeiten. Verwendet ein Steuerelement in einem nichtmodalen Dialog die AutoLISP-Funktion (command), muss die Eigenschaft Event Invoke des Steuerelement auf 1 gesetzt werden. Bitte beachten Sie, dass die Funktionsnamen und ihre Argumente von asynchron ausgeführten Ereignisfunktionen im Stapel der in AutoCAD zuletzt ausgeführten Befehle erscheinen.

Ereignisse, die definitionsgemäß einen Rückgabewert von der Ereignisfunktion abfangen, werden grundsätzlich synchron ausgeführt, sonst würde ja der Rückgabewert verlorengehen. Ereignisse der modalen Dialoge werden immer synchron ausgeführt, da sie naturgemäß verhindern, dass AutoCAD Befehle ausführt, solange diese Dialoge aktiv sind. Ereignisfunktionen müssen in diesen Fällen die Anforderungen für synchrone Ereignisse erfüllen, unabhängig von der Einstellung von Event Invoke.