| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Minitoolbar - Knopf geht nicht (979 mal gelesen)
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 27. Mrz. 2015 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich bin daran eine Minitoolbar in VBA zu realieren, aber leider geht mein Button nicht! Weis jemand wie man den "Button1" abfragen kann? Modul:
Code:
Sub meine_minibar()Dim uMiniToolbar As Minitoolbar Set uMiniToolbar = ThisApplication.Commandmanager.CreateMiniToolbar uMiniToolbar.ShowOK = True uMiniToolbar.ShowApply = False uMiniToolbar.ShowCancel = True Dim controls As MiniToolbarControls Set controls = uMiniToolbar.controls controls.Item("MTB_Options").Visible = False Dim bStop As Boolean button1 = controls.AddButton("MiniToolbarTest_Button1", "Button1", "Info") ' Position Dim oPosition As Point2d Set oPosition = ThisApplication.TransientGeometry.CreatePoint2d(ThisApplication.ActiveView.Left, ThisApplication.ActiveView.Top) uMiniToolbar.Position = oPosition uMiniToolbar.Visible = True Dim uMiniToolbarEvents As New Minibar Call uMiniToolbarEvents.Init(uMiniToolbar) End Sub
Klassenmodul insert NAME = Minibar
Code:
' ClassModule = Minibar Private WithEvents oInteractionEvents As InteractionEvents Private WithEvents oSelectEvents As SelectEvents Private WithEvents m_MiniToolbar As Minitoolbar Private WithEvents button1 As ButtonDefinitionPrivate bStop As Boolean 'Dim WithEvents button1 As MiniToolbarButton 'Private WithEvents button2 As MiniToolbarButton Public Sub Init(meineMiniToolbar As Minitoolbar) Set m_MiniToolbar = meineMiniToolbar Set m_AppEvents = ThisApplication.ApplicationEvents bStop = False Do ThisApplication.UserInterfaceManager.DoEvents Loop Until bStop End Sub Private Sub m_MiniToolbar_OnCancel() bStop = True MsgBox ("Abbruch") End Sub Private Sub m_MiniToolbar_OnOK() bStop = True MsgBox ("ok") End Sub Private Sub button1_OnClick() MsgBox ("Button1") End Sub
Hoffentlich kann man das in VBA überhaupt lösen Gruß Berno
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 27. Mrz. 2015 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 28. Mrz. 2015 15:39 <-- editieren / zitieren --> Unities abgeben:
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 30. Mrz. 2015 07:34 <-- editieren / zitieren --> Unities abgeben:
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 30. Mrz. 2015 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 30. Mrz. 2015 12:57 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 30. Mrz. 2015 17:17 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
Hallo Ich behaupte mal, das button1 in deinem Klassenmodul nicht angesprochen werden kann. Kannst du mal das Hinzufügen deines button1 in die Sub Init deines Klassenmoduls verlagern? Code: Private WithEvents Button1 As MiniToolbarButton Set Button1 = m_MiniToolbar.controls.AddButton("MiniToolbarTest_Button1", "Button1", "Info")
Und in Sub meine_minibar mal button1 auskommentieren. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 31. Mrz. 2015 08:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf danke, ich habe den Button1 so wie du geschrieben hast in die Klasse verfrachtet, geht aber auch nicht! Ich hab auch schon viele Sachen probiert mit Set, ohne Set Set Button1 = ..... Button1 = ..... Private Sub button1_Onok() Private Sub button1_OnClick() Private Sub button1_OnClick1() Private Sub button1_pressed() Private Sub button1_Onpressed() Auch schon probiert....
Private WithEvents button1 As MiniToolbarButton + : button1 : : Variant/Object/MiniToolbarButtonObject Private WithEvents button1 As Minitoolbar + : button1 : : Variant/Object/MiniToolbarButtonObject Ich habe den Button1 auch schon per VBA gedrückt er wird blau aber die Sub's funktionieren irgendwie nicht!
Code: meineMiniToolbar.controls.Item("MiniToolbarTest_Button1").Pressed = True
Gruß Berno
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GeorgK Mitglied
Beiträge: 619 Registriert: 06.06.2001 Inventor 2017 Siemens NX 8.5 - 12.0 Autocad Mechanical 2017 Catia V5R19 3,4 GHz; 64 GB RAM Windows 10 openSUSE Leap 42.3 Visual Studio 2010 - 2017 Windows 2012 R2 Vault 2017
|
erstellt am: 31. Mrz. 2015 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 31. Mrz. 2015 18:29 <-- editieren / zitieren --> Unities abgeben: Nur für BernoAn
Hallo Also die Sub: Code: Sub meine_minibar()Dim uMiniToolbar As MiniToolbar Set uMiniToolbar = ThisApplication.CommandManager.CreateMiniToolbar uMiniToolbar.ShowOK = True uMiniToolbar.ShowApply = False uMiniToolbar.ShowCancel = True Dim controls As MiniToolbarControls Set controls = uMiniToolbar.controls controls.Item("MTB_Options").Visible = False Dim bStop As Boolean ' Position Dim oPosition As Point2d Set oPosition = ThisApplication.TransientGeometry.CreatePoint2d(ThisApplication.ActiveView.Left, ThisApplication.ActiveView.Top) uMiniToolbar.Position = oPosition uMiniToolbar.Visible = True Dim uMiniToolbarEvents As New Minibar Call uMiniToolbarEvents.Init(uMiniToolbar) End Sub
und das Klassenmodul: Code: 'Option Explicit' ClassModule = Minibar Private WithEvents oInteractionEvents As InteractionEvents Private WithEvents oSelectEvents As SelectEvents Private WithEvents m_MiniToolbar As MiniToolbar Private WithEvents Button1 As MiniToolbarButton Private bStop As Boolean 'Dim WithEvents button1 As MiniToolbarButton 'Private WithEvents button2 As MiniToolbarButton Public Sub Init(meineMiniToolbar As MiniToolbar) Set m_MiniToolbar = meineMiniToolbar Set m_AppEvents = ThisApplication.ApplicationEvents Set Button1 = m_MiniToolbar.controls.AddButton("MiniToolbarTest_Button1", "Button1", "Info") bStop = False Do ThisApplication.UserInterfaceManager.DoEvents Loop Until bStop End Sub Private Sub Button1_OnExecute(ByVal Context As NameValueMap) MsgBox ("Button1") End Sub Private Sub Class_Initialize() End Sub Private Sub m_MiniToolbar_OnCancel() bStop = True MsgBox ("Abbruch") End Sub Private Sub m_MiniToolbar_OnOK() bStop = True MsgBox ("ok") End Sub Private Sub Button1_OnClick() MsgBox ("Button1") End Sub
Und das funktioniert nicht?
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 01. Apr. 2015 08:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf Danke für die Hilfe! Ich hab keinen blassen Schimmer warum das bei mir nicht funktioniert hatte, so funktioniert es auf jeden Fall. Eigentlich hatte ich es genau so, komisch. Auf jeden Fall jetzt geht es, ich bin glücklich :-) Tausendmal Danke für deine Mühe! Gruß Berno
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |