Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Msgbox -> Script funktioniert; Keine Msgbox -> Script funktioniert nicht?!

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:  Msgbox -> Script funktioniert; Keine Msgbox -> Script funktioniert nicht?! (987 mal gelesen)
Maetes
Mitglied
Student


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

Beiträge: 118
Registriert: 05.05.2009

XP 64Bit
CATIA V5R19SP4
MS Office 2003

erstellt am: 07. Okt. 2009 12:57    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 ich nochmal!
Bin langsam echt wieder an dem sorry: S*******zeug am verzweifeln..
Hier ein Verweis auf das Ursprungsproblem: http://ww3.cad.de/foren/ubb/Forum137/HTML/003693.shtml
Wo das Problem liegt weiss ich jetzt, nun such ich nach einer Lösung.
Hätte auch eine, aber Catia macht mir da wieder ein Strich durch die Rechnung.
Lösungsansatz ist folgender (statt MouseDown hab ich auch schon DropButtonClick probiert (ohne Erfolg):
Code:
Private Sub FileSelection_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    FileSelection.Clear
    For Nr = 1 To CATIA.Windows.Count
        FileSelection.AddItem (CATIA.Windows.Item(Nr).Caption)
    Next
End Sub


Private Sub FileSelection_Change()
    MsgBox "k"
    If Not FileSelection.ListIndex = -1 Then
        MsgBox "Tu es!" & FileSelection.ListIndex
    End If
End Sub



Funktioniert! Tut man jetzt aber MsgBox "k" auskommentieren, bekomm ich mit ListIndex immer den Wert 0?!?!
Kann mir da mal einer denn Grund sagen, bevor ich die Wände hochklettere?
Die Abfrage "FileSelection.ListIndex = -1" müsste eigentlich auch nicht sein, aber das scheint mir nach unerklährlicher Catia bzw VBA Logik ;(

In anderen Fällen beschwert sich das Makro beim BEENDEN des MAKROS über einen ungültigen Eigenschaftswert. Dabei liegt das Problem im DropDownMenü-Event. Was hat er da beim beenden zu suchen???

Insgesamt habe ich den Eindruck, die ganzen Events sind ein einziges Bastelwerk.. 

------------------
Catia ist doof

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 07. Okt. 2009 13: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 Nur für Maetes 10 Unities + Antwort hilfreich

Hallo,
das Einzige was es in meinen Augen sein könnte, wäre ein zeitliches Problem, was du durch die MsgBox gelöst hast. Alles andere wäre in meinen Augen schon sehr confuse.

------------------
MFG
Rick Schulz
      Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 07. Okt. 2009 13:34    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 Maetes 10 Unities + Antwort hilfreich

Hallo,

mir fällt auch nur die Zeit ein. Ich würde das ganze aber anders anpacken. Und zwar über einen Timer (das ist dann deine Schleife in der du läufst). Such hierzu mal in der Visual Basisc Referenz (Hilfe) nach Timer und klick mal auf den Eintrag "Event Statement Example".

Wenn der Timer tickt würde ich die aktuelle Anzahl der Fenster in CATIA abfragen. Wird diese Zahl erhöhlt => es wurde ein neues Dokument zum aktiven CATIA hinzugefügt => du kannst es in deine ComboBox aufnehmen. Das Change-Ereignis sollte dann funktionieren. Vor dem Beenden kannst du ja den ListIndex immer auf 0 setzen damit du keinen ungültigen Eigenschaftswert bekommst (oder gleich die CmboBox aus der Controls-Collection rauswerfen (mit remove)).

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

Maetes
Mitglied
Student


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

Beiträge: 118
Registriert: 05.05.2009

XP 64Bit
CATIA V5R19SP4
MS Office 2003

erstellt am: 07. Okt. 2009 14:08    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

Hatte ich auch erstmal die Idee mit der Zeit. Hab dann eine Schleife eingebaut, allerdings bis 10000 glaub.
Vielleicht wars zu wenig? Werd mir eure Ansätze mal genauer angucken.
Danke! Und sorry! Sowas macht mich schnell rasend..

------------------
Catia ist doof

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 07. Okt. 2009 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 Nur für Maetes 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Maetes:
Hatte ich auch erstmal die Idee mit der Zeit. Hab dann eine Schleife eingebaut, allerdings bis 10000 glaub.
Vielleicht wars zu wenig? Werd mir eure Ansätze mal genauer angucken.
Danke! Und sorry! Sowas macht mich schnell rasend..


Ich glaube ehrer, dass du dem Prozess, der ja noch durchläuft, um diese Daten zu füllen, zuviel Leistung wegnimmst, was du bei eine Messagebox nicht hast. Was meinst du eigentlich, dass du eine Schleife duchlaufen lässt?
For i = 0 to 10000
next
Wenn so deine Schleife aussieht, muss ich dich enttäuschen, da diese innerhalb von Millisekunden durchgelaufen ist und soviel Leistung wie sie nur kriegen kann von der CPU zieht, dass der andere Prozess, auf den das Programm eigentlich warten sollt, wiederum gebremst wird. Pack entweder ein doevents-Befehl mit rein oder besser nutze einen Timer, der keine Leistung wegnimmt.

------------------
MFG
Rick Schulz
      Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 07. Okt. 2009 14: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 Nur für Maetes 10 Unities + Antwort hilfreich

Hallo,

besser als Rick hätte man es nicht ausführen können  . 10 U´s sind unterwegs

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

MICHLICK
Mitglied
CAD Methodik Entwickler (CATIA; NX)


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

Beiträge: 454
Registriert: 20.06.2001

Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.

erstellt am: 07. Okt. 2009 15:57    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 Maetes 10 Unities + Antwort hilfreich

Hallo Maetes,

ich weiß nicht wozu Du das 2. Ereignis brauchst aber Du hast Dir das Problem selbst gemacht.
Zuerst hast du das Ereignis FileSelection_MouseDown.
Hier wird Dein Objekt FileSelection geleert und durch eine Schleife neu befüllt. Dabei löst jeder Eintrag in das Object FileSelection wiederum das Ereignis FileSelection_Change aus. Während Das Zweite Ereignis startet wird das erste weiter ausgeführt.
Was soll denn durch das 2. Ereignis angetriggert werden? Die bessere Lösung wäre im ersten Ereignis eine Funktion aufzurufen (anstatt mit einem 2. Ereignis zu arbeiten). Dadurch ist gewährleistet, dass es im 1. Ereignis erst weiter geht wenn die Funktion abgeschlossen ist.
Durch die MsgBox hast Du sichergestellt, dass genug Zeit vergangen ist um das vorhergehende Ereignis abzuschließen. Ich muss es Dir leider sagen. So schnell kannst Du gar nicht OK klicken 


Aus meiner Sicht wäre es sinnvoll erst nachdem das 1. Ereignis abgeschlossen ist mit anderen Dingen fortzufahren.

Der ListIndex ist immer die aktive Zeile in Deinem DropDown. Wenn Du wissen willst wie viele Einträge vorhanden sind, dann mußt du ListCount verwenden.

------------------
Gruß Michael B.

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