Arbeiten durch Dialogfeld abbrechen

Started by CADwiesel, July 27, 2016, 05:50:26 AM

Previous topic - Next topic

CADwiesel

In einer Schleife werden aus Zeichnungen Blockvorschaubilder erstellt. Das Ganze passiert während eine Palette geöffnet ist. Wenn diese Unterfunktion startet, soll gleich ein neuer Dialog mit einem Fortschrittsbalken angezeigt werden.
Durch einen Abbruchbutton in diesem Dialog würde ich gerne die weitere Ausführung der Funktion abbrechen wollen.
Jetzt habe ich einen modalen und einen nicht modalen Dialog ausprobiert. Aber ich schaffe es nicht die Ausführung der Funktion zu unterbrechen.
der nicht modale Dialog wird zwar angezeigt, es ist aber nicht möglich dem eine Aktion bei dem Klick auf den Button abzuringen, weil er wohl nie den Focus erhält.
der modale Dialog wartet natürlich bei der Initialisierung darauf das irgendwas mit ihm passiert und so lange wird nicht weiter gemacht.

muss ich eine Palette nehmen?
wie gehts?
Gruss,
CADwiesel
Besucht uns im CHAT

Fred Tomke

Hi, jaaaaa - das geht nicht.
Warum? Ganz einfach - one after the other: Lisp läuft in einem roten Faden ab.
Was Du willst, ist in einem separaten Thread Einfluss auf den Hauptthread zu nehmen.
Der Tastendruck und die damit verbundene Ausführung der Ereignisfunktion reichen da bereits.
In C# mache ich das mit dem BackgroundWorker.

Denn während AutoCAD Deine Lisp abarbeitet, hat AutoCAD zu tun und mag keine "äußeren Einflussnahmen". Ich kenne das Problem und habe schon einige Kopfstände damit verbracht.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]