| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Reaktion auf Mausklick / Tastatureingabe? (2872 mal gelesen)
|
snoopyonline Mitglied Architekt
Beiträge: 192 Registriert: 17.05.2003
|
erstellt am: 12. Dez. 2012 10:38 <-- editieren / zitieren --> Unities abgeben:
Ich habe vor kurzem mit ein paar kleinen VBA-Hilfstools angefangen. Ist das eigentlich "normal", dass bei der Verwendung von Userforms, Commandbuttons, Listboxen etc. eine "verzögerte" Reaktion auf Mausklicks erfolgt (also 7 mal Klicken notwendig ist, bevor Dinge dann tatsächlich ausgeführt werden) und Tastatureingaben in Textboxen eigentlich komplett ignoriert werden? Liegt das an Windows7? Kann ich irgendetwas dagegen tun? Oder sollte ich VBA gleich vergessen und mich mit VBA.NET herumplagen? Fragen über Fragen, aber vielleicht könnt ihr mir ja weiterhelfen... Schöne Grüße, Sebastian ------------------ http://www.sebastian-schild.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 12. Dez. 2012 11:59 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
Zitat: Original erstellt von snoopyonline: Ist das eigentlich "normal", dass bei der Verwendung von Userforms, Commandbuttons, Listboxen etc. eine "verzögerte" Reaktion auf Mausklicks erfolgt
Nein, das ist absolut nicht normal. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 12. Dez. 2012 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
Zitat: Original erstellt von snoopyonline: Oder sollte ich VBA gleich vergessen und mich mit VBA.NET herumplagen?
Hm. Gute Frage. VBA gilt seit eineigen versionen als Totgesagt. Muss seit einiger Zeit sogar explizit nachinstalliert werden. Ich habe mich von VBA verabschiedet, das hat aber den Grund, dass VBA ineiner 32bit Umgebung läuft. Das hat bei mir Probleme in einem 64bit Autocad verursacht. Aber egal. Totgewehte leben oftmals länger, als man vermutet. VB.NET ist durchaus empfehlenswert, jedoch bei weitem nicht so 'einfach' wie VBA. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 12. Dez. 2012 19:26 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
Hallo Sebastian, habe im Moment leider kein VBA zur Verfügung. Es liegt wahrscheinlic daran, ähnlich wie im anderen Beitrag, dass dein Fenster in diesem Fall nicht modal geöffnet ist. Dann hat AutoCAD die "Aufsicht" über das Programm und du kannst nichts eingeben. Wenn du es Modal aufrufst scheint es mit Autocad 64 bit wohl timeing Probleme zu geben. Es gibt aber ein Control (ich kann es leider gerade nicht nachschauen wie es heisst) das man in die Form ziehen kann um den Fokus in der Form zu erhalten. Dann sollte es gehen. Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
snoopyonline Mitglied Architekt
Beiträge: 192 Registriert: 17.05.2003
|
erstellt am: 13. Dez. 2012 11:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Wilfried, es klingt so, als ob du zumindest auf einer ganz heißen Fährte unterwegs bist ;-) Das Verhalten vom Userform sieht wirklich nach einem Timing- / Focusproblem unter Windows7 aus. Ich habe testeshalber mal die Showmodal-Eigenschaft des Fensters auf False gesetzt (war True). Dies hatte zur Folge, dass die getätigten Tastatureingaben in der AutoCAD-Befehlszeile gelandet sind. Ansonsten aber keine Veränderung/Verbesserung. Von der (bescheidenen) Auswahl an Steuerlementen habe ich einfach mal alle im Userform verwendet - hat leider auch nichts verändert. Schöne Grüße, Sebastian ------------------ http://www.sebastian-schild.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 13. Dez. 2012 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
jetztz habe ich mir mal VBA nachinstalliert. (AC2012 auf Win7 64bit) EIn sehr merkwürdiges verhalten. Das Formular verliert dauernd den Fokus. Damit muss man einen Button 2x drücken. das erste Mal, damit das Form den Fokus hat, und erst der 2. Click reagiert richtig. Nach dem Click verliert das Form sofort wieder den Fokus. Textboxeingabe ist so gut wie überhaupt nicht möglich. [Diese Nachricht wurde von fuchsi am 13. Dez. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ivb.hst Mitglied Programmierer
Beiträge: 15 Registriert: 11.10.2010 AutoCAD 2007-2013 32/64bit Windows 7 Ultimate 64Bit Inter(R) Core(TM) i5-2500K 3.3 GHz
|
erstellt am: 13. Dez. 2012 11:49 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
Das ist bei nicht modalen Dialogen generell so in AutoCAD. Egal ob Dialog oder Palette, AutoCAD übernimmt automatisch den Focus. Damit auch nicht modale Dialog den Fokus behalten, sendet AutoCAD die Meldung WM_ACAD_KEEPFOCUS (WM_USER+0x6D01), bevor der Focus übernommen wird. Fängt man diese Meldung ab und gibt als Ergebnis der Anfrage TRUE (Standardrückgabe FALSE) zurück, behält der Dialog den Focus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 13. Dez. 2012 11:57 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
|
snoopyonline Mitglied Architekt
Beiträge: 192 Registriert: 17.05.2003
|
erstellt am: 13. Dez. 2012 15:36 <-- editieren / zitieren --> Unities abgeben:
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 13. Dez. 2012 16:28 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 13. Dez. 2012 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
Zitat: Allerdings bekomme ich beim Einfügen noch die Meldung "Klasse nicht registriert"
Ich lese gerade, dass das bei AC2012 mit dem ServicePack behoben sein soll.. Bin wohl etwas schlampig mit der Aktualisierung auf meinen Textmaschinen. [Diese Nachricht wurde von fuchsi am 13. Dez. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
snoopyonline Mitglied Architekt
Beiträge: 192 Registriert: 17.05.2003
|
erstellt am: 13. Dez. 2012 17:00 <-- editieren / zitieren --> Unities abgeben:
@fuchsi: Ja wunderbar! Das funktioniert ja alles richtig klasse mit dem acFocusControl. Jetzt bin ich wieder ein ganzes Stück weiter/schlauer... Vielleicht kann mir ja noch jemand weiterhelfen, wie/wo ich die mit dem Control verbundene Sicherheitsfrage von AutoCAD unterbinden kann, ob ich dem verwendeten ActiveX Control vertraue. Aber mit diesem "Makel" könnte ich notfalls leben... 10U's für alle Beteiligten... Schöne Grüße, Sebastian ------------------ http://www.sebastian-schild.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 13. Dez. 2012 19:32 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 14. Dez. 2012 08:03 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
|
snoopyonline Mitglied Architekt
Beiträge: 192 Registriert: 17.05.2003
|
erstellt am: 14. Dez. 2012 09:46 <-- editieren / zitieren --> Unities abgeben:
|
| |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 14. Dez. 2012 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
|