Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Aktion abhängig von dynamische Checkbox

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Aktion abhängig von dynamische Checkbox (1275 mal gelesen)
tubuibam
Mitglied



Sehen Sie sich das Profil von tubuibam an!   Senden Sie eine Private Message an tubuibam  Schreiben Sie einen Gästebucheintrag für tubuibam

Beiträge: 93
Registriert: 10.11.2013

Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000
Windows 7, Catia V5 R19

erstellt am: 14. Mai. 2015 14:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
in meinem Makro, wenn man einen Punkt wählt, ist der Punkt bemerkt und gleichzeitig neben dem Punktname-Feld ein Checkbox erstellt.
Abhängig von Value dieses Checkbox wird etwas gemacht. Ich kann ein Knopf gestalten, der liest Value von dieses dynamisch erstellten Checkbox, und macht etwas.
Die Frage ist, ob man ohne ein extra Knopf das machen kann? Sobald das Checkbox gekreuzt oder umgekehrt, wird der Aktion durchgeführt.
Normaleweise kann man so machen, z.B Value von checkbox1 ändert sich, dann wird etwas gemacht. Mein checkbox ist aber dynamisch erstellt, hat deswegen keine festen Identität (also Checkbox 1 bis n, n ist aber dynamisch)

Hat jemand ein Idee für irgendeine Lösung?
Ich danke mich auf jeder Hilfe.

MfG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joehz
Moderator
Freiberuflicher Konstrukteur


Sehen Sie sich das Profil von joehz an!   Senden Sie eine Private Message an joehz  Schreiben Sie einen Gästebucheintrag für joehz

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 14. Mai. 2015 16:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tubuibam 10 Unities + Antwort hilfreich

Vorab: Deine Problembeschreibung ist praktisch unverständlich.

Also:
- Du wählst einen Punkt im 3D
- als Reaktion darauf erscheint in einem von Dir programmatisch erzeugten Dialog
  1) der Punkt als Text
  2) eine Checkbox neben dem Punkt-Text

- der Dialog besitzt einen(oder mehrere) Command-Buttons.

Bisher liest das Makro - nach selektieren des Command-Buttons -
den Wert der Checkbox aus und fährt dann im Makro weiter.

Soweit richtig?

Jetzt willst Du wissen, ob es sofort nach dem 'Check-Box-Click'
und ohne den Command-Button geht.

Klar: Werte im Click-Event der Check-Box den Value aus.

Oder:
Trage die Punkte in eine Liste(Listbox) ein.
Wird ein Eintrag(Punkt) in der Liste ausgewählt, so arbeitest Du Dein Makro weiter ab.

Nachdem ich weder den Dialog noch den Code kenne, kann ich nur raten.

Tschau,
Joe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tubuibam
Mitglied



Sehen Sie sich das Profil von tubuibam an!   Senden Sie eine Private Message an tubuibam  Schreiben Sie einen Gästebucheintrag für tubuibam

Beiträge: 93
Registriert: 10.11.2013

Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000
Windows 7, Catia V5 R19

erstellt am: 14. Mai. 2015 18:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo joehz,
danke für Deine Antwort. Ja, meine Beschreibung war schon subjektiv.
Du hast es schon ganz richtig verstanden. Also noch mal für die Info: Jeder gewählte Punkt kriegt schon einen  Checkbox. Jetzt möchte ich z.B den Name von ersten und letzten gehakten in einen Textfeld schreiben.

Ja, ich kann z.B ein Sub function schreiben:
Checkbox1_click()
If checkbox1.Value =True then Einen Wert wird zugewiesen
Dann abhängig von dem Wert wird etwas gemacht.

Das Problem ist aber, die Anzahl von den Checkbox ist nicht bekannt (bei jedem Wahl wird neuer erstellt)
Wäre das bekannt, würde ich die Sub function z.B 20 mal schreiben
Sub Checkbox1_click()
.....
Sub Checkbox20_click() (ein bisschen schlampig  )
Kennt Du die Lösung dafür?
Ich hoffe dies mal ist es nicht zu unverstandlich 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joehz
Moderator
Freiberuflicher Konstrukteur


Sehen Sie sich das Profil von joehz an!   Senden Sie eine Private Message an joehz  Schreiben Sie einen Gästebucheintrag für joehz

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 14. Mai. 2015 19:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tubuibam 10 Unities + Antwort hilfreich


userform_ide.JPG


userform_ide.JPG

 
Hallo,

kopier mal den Code in eine leere Userform mit einem CommandButton(Bild anbei):

Code:

Dim chkBx(4) As MSForms.CheckBox 'global
Private Sub CommandButton1_Click()
  Dim n As Integer
 
  For n = 0 To UBound(chkBx)
      Debug.Print chkBx(n).Value
  Next
 
'  On Error Resume Next
'  For n = 1 To UserForm1.Controls.Count
'      Debug.Print UserForm1.Controls.Item(n).Caption
'      Debug.Print UserForm1.Controls.Item(n).Name
'  Next
End Sub

Private Sub UserForm_AddControl(ByVal Control As MSForms.Control)
  Debug.Print "in addcontrol"
End Sub

Private Sub UserForm_Initialize()
  Dim n As Integer

  For n = 0 To 4
    Set chkBx(n) = Controls.Add("Forms.CheckBox.1")
    chkBx(n).Left = 5
    chkBx(n).Top = n * chkBx(n).Height + 5
    chkBx(n).Caption = chkBx(n).Name

  Next
  Me.Width = 5 * 80 + 10
End Sub


Vielleicht geht's mit einem Control-Array.

Tschau,
Joe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tubuibam
Mitglied



Sehen Sie sich das Profil von tubuibam an!   Senden Sie eine Private Message an tubuibam  Schreiben Sie einen Gästebucheintrag für tubuibam

Beiträge: 93
Registriert: 10.11.2013

Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000
Windows 7, Catia V5 R19

erstellt am: 14. Mai. 2015 20:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Joe,
danke für Deine Antwort.

Genau diese CommandButton1 möchte ich sparen 

Also wenn man Checkbox hakt, wird sofort etwas gemacht, ohne eine weitere Button klicken zu müssen.

Aber danke sehr für Deine Hilfsbereitschaft.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joehz
Moderator
Freiberuflicher Konstrukteur


Sehen Sie sich das Profil von joehz an!   Senden Sie eine Private Message an joehz  Schreiben Sie einen Gästebucheintrag für joehz

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 14. Mai. 2015 21:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tubuibam 10 Unities + Antwort hilfreich

1. Hast Du das Programm laufen lassen?

2. Das ist m.E. schlechte Programmiertechnik.
  Wenn Du das falsche Kästchen anklickst, läuft sofort das Makro ab.

Du sparst zwar den Button ein, ersparst Dir aber den möglichen Ärger der Falschbedienung nicht.
Ich mach's lieber umgekehrt.

Tschau,
Joe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Randle
Mitglied
CAD/PLM Consultant


Sehen Sie sich das Profil von Randle an!   Senden Sie eine Private Message an Randle  Schreiben Sie einen Gästebucheintrag für Randle

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 17. Mai. 2015 09:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tubuibam 10 Unities + Antwort hilfreich

Hallo,

erstelle dir doch eine separate Klasse für die Combobox. Dort kannst du dann das Change-Ereignis in Kombination mit einer Namensprüfung abfangen.

Gruß
Randle

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rfriedrich
Mitglied



Sehen Sie sich das Profil von rfriedrich an!   Senden Sie eine Private Message an rfriedrich  Schreiben Sie einen Gästebucheintrag für rfriedrich

Beiträge: 39
Registriert: 11.05.2005

erstellt am: 19. Mai. 2015 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tubuibam 10 Unities + Antwort hilfreich

Hallo,

mit der Property .OnAction des Control-Objekts kann ein Sub zugewiesen werden, das ausgeführt werden soll. Das entspricht der Funktion AddHandler in VB.Net.

Gruß
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz