| |  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 | | |  | Mit der Kisters 3DViewStation komplexeste 3D CAD-Daten beherrschen, eine Pressemitteilung
|
Autor
|
Thema: Selektion durch Klick auf Button starten (1146 mal gelesen)
|
Bernod Mitglied

 Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 20. Apr. 2010 11:06 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich bin's schon wieder. ich möchte die Funktion aus meinem vorherigen Beitrag (Ausführen einer PowerCopy unter VBA) nun über eine GUI steuern. Dazu habe ich vorerst ein vereinfachtes UserForm erstellt. - Ich habe einen "CommandButton1" - und eine "ListBox1" - Wird der "CommandButton1" geklickt, dann soll die Selektion in Catia ermöglicht werden - nach der Selektion eines Elementes soll der name des Elementes in der "Listbox1" dargestellt werden Mein Code sieht derzeit wie folgt aus
Code: 1 Private Sub CommandButton1_Click() 2 ' Auswahl festlegen ----------------------------------------------- 3 Dim Filter1(0) 4 Filter1(0) = "Point" 5 ' Selektion definieren und leeren ---------------------------------- 6 Dim UserSel As Object 7 Set UserSel = CATIA.ActiveDocument.Selection 8 UserSel.Clear 9 ' Selection vornehmen lassen --------------------------------------- 10 Dim intSelAbfrageStr As String 11 Dim intPointObj As Object 12 Me.ListBox1.AddItem ("Vor der Selektion") 13 intSelAbfrageStr = UserSel.SelectElement2(Filter1, "Bezugspunkt oben waehlen.", False) 14 If intSelAbfrageStr = "Normal" Then 15 Set intPointObj = UserSel.Item(1).Value 16 End If 17 Me.ListBox1.AddItem (UserSel.Item(1).Value.Name)18 MsgBox "Test" 19 End Sub
Bis Zeile 12 läuft alles wunderbar. Ab Zeile 13 gibt es Probleme. Der Fehler: - Wenn ich auf den CommandButton1 klicke, welcher mir die Selektion in CATIA ermöglichen sollte passiert folgendes: Visual Basic wird in den Hintergrund verschoben, so dass CATIA sichtbar wird. Dennoch bleibt mein kleines Programmfenster weiterhin im Vordergrund (obwohl CATIA aktiv ist.... also die obere Programmleiste in CATIA ist blau und in meinem Programmfenster grau). - Ich kann nichts in CATIA selektieren, es scheint als wäre CATIA durch mein Programm verdeckt - Erst wenn ich das Programmfenster Schließe (über das x oben rechts) ist es mir möglich etwas in CATIA zu selektieren. - Ich kannd ann natürlich nicht überprüfen ob der Name meiner Selektion wirklich in die Listbox geschrieben wird, da das Fenster ja nun geschlossen ist. - Die MsgBox in Zeile 18 wird angezeigt. - kehre ich nach Visual Basic zurück, dann wird das Programm immernoch als laufend angezeigt und ich muss es manuell stoppen. Ich habe das Internet weit und breit durchforstet und auch in den gängigen Büchern nachgeschlagen, aber eine Antwort konnte ich nicht finden ... Weiß jemand einen Rat? Ich danke für jede Hilfe! Gruß, Bernod
[Diese Nachricht wurde von Bernod am 20. Apr. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
   
 Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 20. Apr. 2010 11:44 <-- editieren / zitieren --> Unities abgeben:          Nur für Bernod
Wahrscheinlich ist dein Formular Modal. Schau mal in den Eigenschaften vom Dialog, ob's da irgend eine Eigenschaft mit Modal im Namen (z.B. viewModal) gibt und setz die auf FALSE. Dann sollte es gehen. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernod Mitglied

 Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 20. Apr. 2010 11:47 <-- editieren / zitieren --> Unities abgeben:         
Ich habe es nun über Umwege hinbekommen, dass die Selektion funktioniert. Allerdings muss ich dazu das aktive Fenster nach betätigen des CommandButton1 verstecken (hide) und nach der Selektion wieder anzeihen (show) Code: Private Sub CommandButton1_Click()UserForm1.Hide ' Auswahl festlegen ----------------------------------------------- Dim Filter1(0) Filter1(0) = "Point" ' Selektion definieren und leeren ---------------------------------- Dim UserSel As Object Set UserSel = CATIA.ActiveDocument.Selection UserSel.Clear ' Selection vornehmen lassen --------------------------------------- Dim intSelAbfrageStr As String Dim intPointObj As Object Me.ListBox1.AddItem ("Vor der Selektion") intSelAbfrageStr = UserSel.SelectElement2(Filter1, "Bezugspunkt oben waehlen.", False) If intSelAbfrageStr = "Normal" Then Set intPointObj = UserSel.Item(1).Value End If Me.ListBox1.AddItem (UserSel.Item(1).Value.Name) MsgBox "OK" UserForm1.Show End Sub
Eigentlich gefiel es mir schon ganz gut, dass das Fenster während des Selektionsprozesses weiterhin angezeigt wurde. Ich hatte vor in das Fenster noch eine grafik einzubinden, welche dem Anwender einen hinweis darauf gitb WAS er genau anklicken soll. Weiß jemand eine elegantere Lösung, wie dies umgesetzt werden kann ohne, dass das Fenster versteckt wird? Gruß, Bernod EDIT: Huch, wir haben fast zeitgleich gepostet, so dass ich deine Antwort vorher nicht gesehen hatte. Du hast recht. Es lag tatsächlich daran! Ich habe mein userForm nun auf ShowModal = False eingestellt und es funktioniert wunderbar. Vielen Dank!! 
[Diese Nachricht wurde von Bernod am 20. Apr. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |