Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Text in UserForm anzeigen lassen

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Text in UserForm anzeigen lassen (1684 mal gelesen)
Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 202
Registriert: 29.03.2007

IV2021 R4
CATIA V6 R2013x

erstellt am: 15. Dez. 2020 15:40    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 Zusammen,

hiermit

Code:
Private Sub GETTEXT_Suche_Schriftkopf()
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

'Set oTextBox = oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes

    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
 
        If Eintrag.FormattedText Like "*Zustand 1*" Then
                Quelle_Text1 = Eintrag.text
                Text_ausgelesen1 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text1 & " : " & Text_ausgelesen1
          End If
    Next
   
    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes

        If Eintrag.FormattedText Like "*Änderung Nr 1*" Then
                Quelle_Text2 = Eintrag.text
                Text_ausgelesen2 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text2 & " : " & Text_ausgelesen2
        End If
    Next
   
    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes

        If Eintrag.FormattedText Like "*Datum 1*" Then
                Quelle_Text3 = Eintrag.text
                Text_ausgelesen3 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text3 & " : " & Text_ausgelesen3
               
               
        End If
    Next

    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes

        If Eintrag.FormattedText Like "*Name 1*" Then
                Quelle_Text4 = Eintrag.text
                Text_ausgelesen4 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text4 & " : " & Text_ausgelesen4
               
               
        End If
    Next

End Sub


lese ich aus einem Schriftkopf Werte aus.
Diese Werte möchte ich mir in einer UserForm Fenster anzeigen lassen.
Könnte mir jemand ein Bsp. nennen wo ich nachvollziehen kann wie so etwas gemacht werden kann!?

Danke und Gruß

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 15. Dez. 2020 16:21    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 Goose 10 Unities + Antwort hilfreich

Hallo Goose,

UserForm anlegen, TextBox einfügen -> (In Eigenschaften Multiline = True)

deinen Code in das Userform kopieren

Folgenden Code in das Userform kopieren:

Code:

Private Sub UserForm_Initialize()
Call "deine_Prozedur"
    Call TextBox1_Change

End Sub

Private Sub TextBox1_Change()

    TextBox1.Text = "z.B. Titelzeile" _
                   & vbCr & "Zeile 1" _
                   & vbCr & "Zeile 2"

End Sub


Zeile 1 - n einfach durch deine Variablen ersetzen.


Grüße

EIBe 3D

[Diese Nachricht wurde von EIBe 3D am 15. Dez. 2020 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 15. Dez. 2020 21:19    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 Goose 10 Unities + Antwort hilfreich

Hallo

@ElBe 3D
Kann es sein, dass dein Code nicht funktionieren wird, da die Variablen nur im Kontext der Sub GETTEXT_Suche_Schriftkopf existieren? Bei Rückkehr in die Sub Initialize existieren die Variablen nicht mehr und werden auch nicht in Sub TextBox1_Change übergeben.

Ich sehe jetzt keinen triftigen Grund das nicht ganz primitiv zu machen.
- UserForm erstellen
- 1 Textfester (Multiline=True) einfügen
- 1 Button (Caption z.B. = "Schließen")
- folgenden Code einfügen

Code:

Private Sub CommandButton1_Click()
    Me.Hide
End Sub

Private Sub UserForm_Initialize()
     TextBox1.Text = GETTEXT_Suche_Schriftkopf
End Sub

Private Function GETTEXT_Suche_Schriftkopf() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

'Set oTextBox = oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes

    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
       
        If Eintrag.FormattedText Like "*Zustand 1*" Then
                Quelle_Text1 = Eintrag.Text
                Text_ausgelesen1 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text1 & " : " & Text_ausgelesen1
          End If
  
        If Eintrag.FormattedText Like "*Änderung Nr 1*" Then
                Quelle_Text2 = Eintrag.Text
                Text_ausgelesen2 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text2 & " : " & Text_ausgelesen2
        End If
  
        If Eintrag.FormattedText Like "*Datum 1*" Then
                Quelle_Text3 = Eintrag.Text
                Text_ausgelesen3 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text3 & " : " & Text_ausgelesen3
              
              
        End If
  
        If Eintrag.FormattedText Like "*Name 1*" Then
                Quelle_Text4 = Eintrag.Text
                Text_ausgelesen4 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text4 & " : " & Text_ausgelesen4
              
              
        End If
    Next
   
    GETTEXT_Suche_Schriftkopf = Text_ausgelesen1 & vbCrLf & _
                                Text_ausgelesen2 & vbCrLf & _
                                Text_ausgelesen3 & vbCrLf & _
                                Text_ausgelesen4
   
End Function


- neues Modul erstellen und folgenden Code einfügen

Code:

Option Explicit

Public Sub ShowForm()
    Dim myForm As New UserForm1
    myForm.Show
End Sub



------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 16. Dez. 2020 07:59    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 Goose 10 Unities + Antwort hilfreich

Hallo zusammen,

Code:
...
@ElBe 3D
Kann es sein, dass dein Code nicht funktionieren wird, da die Variablen nur im Kontext der Sub GETTEXT_Suche_Schriftkopf existieren? Bei Rückkehr in die Sub Initialize existieren die Variablen nicht mehr und werden auch nicht in Sub TextBox1_Change übergeben.
...

@Ralf
Das ist eindeutig eine Suggestivfrage   
Selbstverständlich wird es aus genau den von dir genannten Gründen nicht wie gewünscht funktionieren. War mir beim zweiten Überfliegen meines Geschreibsels auch klar, musste nur dann leider vom Rechner weg. Jeglichen Korrekturvorhaben meinerseits bist du dann zuvor gekommen. 


Eine Frage meinerseits:

Unter [Private Sub CommandButton1_Click()]
Steht [Me.Hide]

Wäre hier nicht [Unload Me] die anzuwendende Methode um das UserForm auch wirklich zu schließen und nicht nur auszublenden?


Grüße

EIBe 3D

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 16. Dez. 2020 08:53    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 Goose 10 Unities + Antwort hilfreich

Moin

Ich war nur misstrauisch, ob ich wieder was übersehe.

Ja, unload me wäre korrekt, da das Objekt nicht wieder verwendet wird. Aber, da eine neue Instanz myForm der Form mittels New UserForm2 erstellt wird, sollte besser diese entladen werden. In der CommandButton_Click bleibt es bei me.hide, aber in das Modul kann man ein Unload MyForm setzen.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 202
Registriert: 29.03.2007

IV2021 R4
CATIA V6 R2013x

erstellt am: 16. Dez. 2020 10:31    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

Vielen Dank erst einmal....ich hatte auf ein Bsp. gehofft und "Fertige Arbeit" bekommen.
Den Code

Code:
Private Sub CommandButton1_Click()
    Me.Hide
End Sub

Private Sub Label2_Click()

End Sub

Private Sub Label3_Click()

End Sub

Private Sub Label4_Click()

End Sub

Private Sub Label5_Click()

End Sub

Private Sub UserForm_Initialize()

    TextBox1.text = GETTEXT_Suche_Schriftkopf1
   
    TextBox2.text = GETTEXT_Suche_Schriftkopf2
   
    TextBox3.text = GETTEXT_Suche_Schriftkopf3
   
    TextBox4.text = GETTEXT_Suche_Schriftkopf4
   
End Sub

Private Function GETTEXT_Suche_Schriftkopf1() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument


    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
     
        If Eintrag.FormattedText Like "*Zustand 1*" Then
                Quelle_Text1 = Eintrag.text
                Text_ausgelesen1 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text1 & " : " & Text_ausgelesen1
         
        End If
    Next
 
    GETTEXT_Suche_Schriftkopf1 = Text_ausgelesen1
   

End Function

Private Function GETTEXT_Suche_Schriftkopf2() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument


    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
     
       
 
        If Eintrag.FormattedText Like "*Änderung Nr 1*" Then
                Quelle_Text2 = Eintrag.text
                Text_ausgelesen2 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text2 & " : " & Text_ausgelesen2
        End If

    Next
 
    GETTEXT_Suche_Schriftkopf2 = Text_ausgelesen2
   
 
End Function
Private Function GETTEXT_Suche_Schriftkopf3() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument


    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
     
       
 
        If Eintrag.FormattedText Like "*Datum 1*" Then
                Quelle_Text3 = Eintrag.text
                Text_ausgelesen3 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text3 & " : " & Text_ausgelesen3
                         
        End If
 
    Next
 
    GETTEXT_Suche_Schriftkopf3 = Text_ausgelesen3
   
 
 
End Function
Private Function GETTEXT_Suche_Schriftkopf4() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument


    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
     
       
        If Eintrag.FormattedText Like "*Name 1*" Then
                Quelle_Text4 = Eintrag.text
                Text_ausgelesen4 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
                Debug.Print Quelle_Text4 & " : " & Text_ausgelesen4
             
             
        End If
    Next
 
    GETTEXT_Suche_Schriftkopf4 = Text_ausgelesen4
   
 

End Function



habe ich so angepasst, dass jeder Wert in einem eigenen Textfeld ausgegeben wird.

Ist es möglich jetzt über das Textfeld der UserForm die ausgelesen Werte zu ändern?
Wenn also ein Wert ausgelesen wird soll dieser editiert werden können und zurück an das Textfeld der Zeichnung übergeben werden.


Danke und Gruß

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 16. Dez. 2020 12:09    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 Goose 10 Unities + Antwort hilfreich

Hallo

Ja, das geht. Die jeweilige TextBox wird in einer Variable gespeichert die während der Lebenszeit der UserForm bestehen bleibt. Somit können wir sehr einfach dahin zurückschreiben. Füge einen weiteren Button (CommandButton2 in meinem Code) in die Form ein. Die Caption-Eigenschaft könnte "Ändern" sein.

Code:
Dim oTB1, oTB2, oTB3, oTB4 As Inventor.TextBox

Private Sub CommandButton1_Click()
  Me.Hide
End Sub

Private Sub CommandButton2_Click()
    Call Writetext(TextBox1.Text, oTB1)
    Call Writetext(TextBox2.Text, oTB2)
    Call Writetext(TextBox3.Text, oTB3)
    Call Writetext(TextBox4.Text, oTB4)
   
End Sub

Private Sub UserForm_Initialize()
    TextBox1.Text = GETTEXT_Suche_Schriftkopf1
    TextBox2.Text = GETTEXT_Suche_Schriftkopf2
    TextBox3.Text = GETTEXT_Suche_Schriftkopf3
    TextBox4.Text = GETTEXT_Suche_Schriftkopf4
 
End Sub

Private Sub Writetext(ByVal sText As String, ByVal oTB As Inventor.TextBox)
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    Call oDrawDoc.ActiveSheet.TitleBlock.SetPromptResultText(oTB, sText)
End Sub

Private Function GETTEXT_Suche_Schriftkopf1() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

Dim eintrag As Inventor.TextBox
    For Each eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
        If eintrag.FormattedText Like "*Zustand 1*" Then
                Quelle_Text1 = eintrag.Text
                Text_ausgelesen1 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(eintrag)
                Debug.Print Quelle_Text1 & " : " & Text_ausgelesen1
                Set oTB1 = eintrag
                Exit For
        End If
    Next

    GETTEXT_Suche_Schriftkopf1 = Text_ausgelesen1
 

End Function

Private Function GETTEXT_Suche_Schriftkopf2() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

Dim eintrag As Inventor.TextBox
    For Each eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
        If eintrag.FormattedText Like "*Änderung Nr 1*" Then
                Quelle_Text2 = eintrag.Text
                Text_ausgelesen2 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(eintrag)
                Debug.Print Quelle_Text2 & " : " & Text_ausgelesen2
                Set oTB2 = eintrag
                Exit For
        End If
    Next

    GETTEXT_Suche_Schriftkopf2 = Text_ausgelesen2
 

End Function
Private Function GETTEXT_Suche_Schriftkopf3() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

Dim eintrag As Inventor.TextBox
  For Each eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
        If eintrag.FormattedText Like "*Datum 1*" Then
                Quelle_Text3 = eintrag.Text
                Text_ausgelesen3 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(eintrag)
                Debug.Print Quelle_Text3 & " : " & Text_ausgelesen3
                Set oTB3 = eintrag
                Exit For
        End If
    Next

    GETTEXT_Suche_Schriftkopf3 = Text_ausgelesen3
 


End Function
Private Function GETTEXT_Suche_Schriftkopf4() As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

Dim eintrag As Inventor.TextBox
For Each eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes
        If eintrag.FormattedText Like "*Name 1*" Then
                Quelle_Text4 = eintrag.Text
                Text_ausgelesen4 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(eintrag)
                Debug.Print Quelle_Text4 & " : " & Text_ausgelesen4
                Set oTB4 = eintrag
                Exit For
        End If
    Next

    GETTEXT_Suche_Schriftkopf4 = Text_ausgelesen4
 

End Function


------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 16. Dez. 2020 12:44    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 Goose 10 Unities + Antwort hilfreich

Je nach Inhalt der TextBox scheint

Code:

Private Sub Writetext(ByVal sText As String, ByVal oTB As Inventor.TextBox)
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    Call oDrawDoc.ActiveSheet.TitleBlock.SetPromptResultText(oTB, sText)
End Sub


nicht zu funktionieren.

Siehe dazu das Autodeskforum

Ich hab es jedenfalls bei Versuchen in Ermangelung eines entsprechenden Feldes auch nicht umsetzen können.


Noch eine Anmerkung bzgl. der Variablendeklaration

Bei DIM oTB1, oTB2, oTB3, oTB4 As Inventor.TextBox wird nur oTB4 als Textbox deklariert. oTB1-3 sind vom Typ Variant.

Dim oTB1 as Inventor.Textbox
Dim oTB2 as Inventor.Textbox
usw.

ergibt das gewünschte Ergebnis (selbst gerade erst aufgrund eines blöden Folgefehlers lernen dürfen :smokin


Grüße

EIBe 3D

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 601
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 16. Dez. 2020 12:47    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 Goose 10 Unities + Antwort hilfreich

Ich würde dafür plädieren, das Lesen durch eine (1) Function zu erledigen (statt 4). Dazu muss der Such-Text übergeben werden. Auch die Textbox zur späteren Verwendung wie von Ralf vorgeschlagen.

Code:
Private Function GETTEXT_Suche_Schriftkopf_universal_Update(sSuchTxt As String, ByRef oTB As TextBox) As String
' der Parameter enthält dann den gesuchten Text z.B. "*Name 1*"
' der Parameter oTB wird hier befüllt und referenziert dann die gefundene TextBox (für das Schreiben später)

    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    Dim Quelle_Text4 As String, Text_ausgelesen4 As String  'über die Namen der Variablen könnte man streiten
    Dim Eintrag As TextBox
    For Each Eintrag In oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes

        If Eintrag.FormattedText Like sSuchTxt Then
            Quelle_Text4 = Eintrag.text
            Text_ausgelesen4 = oDrawDoc.ActiveSheet.TitleBlock.GetResultText(Eintrag)
            Debug.Print Quelle_Text4 & " : " & Text_ausgelesen4
           
            Set oTB = Eintrag  'Parameter setzen, benutzt als Rückgabewert
            'Exit For    'Schleife verlassen? siehe auch Kommentar unten
        End If
    Next
    ''falls die If-Bedingung mehrmals erfüllt wird, wird mehrmals ausgelesen
    'auch mehrere Zeilen mit Debug.Print geschrieben
    'die Function gibt aber nur den letzten Eintrag zurück
    'so gewünscht?
    'evtl. oben Exit For ergänzen?!? (dann wird der zuerst passende Eintrag zurückgegeben und etwas Arbeit gespart)
   
   
    GETTEXT_Suche_Schriftkopf_universal_Update = Text_ausgelesen4
 
End Function


------------------
Gruß KraBBy

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 601
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 16. Dez. 2020 13:00    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 Goose 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von EIBe 3D:
Je nach Inhalt der TextBox scheint
[...] nicht zu funktionieren.
Siehe dazu das Autodeskforum

Wenn ich das im Forum richtig verstehe, klappt das nur bei Textboxen mit "Angeforderter Eingabe". Das halte ich für beabsichtigtes Verhalten. Wird im Schriftfeld z.B. ein iProperty angezeigt lässt sich die Textbox nicht mit SetPromptResultText setzen, sondern es muss das iProperty geändert werden.
Scheint mir hier kein Problem zu sein (der Threadsetter wird sein Schriftfeld gut genug kennen).

------------------
Gruß KraBBy

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

Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 202
Registriert: 29.03.2007

IV2021 R4
CATIA V6 R2013x

erstellt am: 16. Dez. 2020 13:36    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

Zitat:
Original erstellt von KraBBy:

Wenn ich das im Forum richtig verstehe, klappt das nur bei Textboxen mit "Angeforderter Eingabe". Das halte ich für beabsichtigtes Verhalten. Wird im Schriftfeld z.B. ein iProperty angezeigt lässt sich die Textbox nicht mit SetPromptResultText setzen, sondern es muss das iProperty geändert werden.
Scheint mir hier kein Problem zu sein (der Threadsetter wird sein Schriftfeld gut genug kennen).



Es geht in diesem Fall nur um Textboxen mit "Angeforderter Eingabe"
Ich möchte mich nochmal für Eure Hilfe bedanken....
Echt klasse von Euch
Unities sind raus....

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

Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 202
Registriert: 29.03.2007

IV2021 R4
CATIA V6 R2013x

erstellt am: 18. Dez. 2020 09:31    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

Ich hätte noch eine Frage:

Wenn eine Zeichnung mehrere Blätter hat würde ich jetzt gerne auf Blatt Nr.1 die Werte editieren und gleichzeitig auf alle Blätter übertragen. Ist das möglich?
Ich habe in der API diesbezüglich nichts gefunden. Und ich wüsste auch nicht nach welcher Befehlsbezeichnung ich suchen könnte.
Hintergrund ist, dass Bestandsdaten nicht sauber gepflegt sind und die Eintragungen nicht auf allen Blättern vollständig sind.

Danke und Gruß

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 18. Dez. 2020 10:05    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 Goose 10 Unities + Antwort hilfreich

Moin

@KraBBy
Jepp, wieder mit vb.net verwechselt. Das kommt vom ständigen hin und her springen. 

@ElBe 3D
In Funktion auslagern bietet sich hier an. Guter Hinweis, übernommen.


Man kann alle Blätter gleichzeitig ändern. Auf Blatt1 muss das korrekte Schriftfeld vorhanden sein, das prüfe ich nicht. Egal welches Blatt man gerade aktiv ist, die Ausgangswerte werden von Blatt 1 geholt.

Code:
Dim oTB1 As Inventor.TextBox
Dim oTB2 As Inventor.TextBox
Dim oTB3 As Inventor.TextBox
Dim oTB4 As Inventor.TextBox
Dim oTBDef As TitleBlockDefinition

Private Sub CommandButton1_Click()
  Me.Hide
End Sub

Private Sub CommandButton2_Click()

    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
   
    Dim oSheet As Sheet
    For Each oSheet In oDrawDoc.Sheets
        If oSheet.TitleBlock.Definition Is oTBDef Then
            Call Writetext(TextBox1.Text, oTB1, oSheet)
            Call Writetext(TextBox2.Text, oTB2, oSheet)
            Call Writetext(TextBox3.Text, oTB3, oSheet)
            Call Writetext(TextBox4.Text, oTB4, oSheet)
        End If
    Next
   
End Sub

Private Sub UserForm_Initialize()
    TextBox1.Text = GETTEXT_Suche_Schriftkopf("*Zustand 1*", oTB1)
    TextBox2.Text = GETTEXT_Suche_Schriftkopf("*Änderung Nr 1*", oTB2)
    TextBox3.Text = GETTEXT_Suche_Schriftkopf("*Datum 1*", oTB3)
    TextBox4.Text = GETTEXT_Suche_Schriftkopf("*Name 1*", oTB4)
     
End Sub

Private Sub Writetext(ByVal sText As String, ByVal oTB As Inventor.TextBox, ByVal oSheet As Sheet)
   
    Call oSheet.TitleBlock.SetPromptResultText(oTB, sText)
End Sub

Private Function GETTEXT_Suche_Schriftkopf(sSuchTxt As String, ByRef oTB As TextBox) As String

    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    Set oTBDef = oDrawDoc.Sheets.Item(1).TitleBlock.Definition
   
    Dim Quelle_Text As String, Text_ausgelesen As String
    Dim Eintrag As TextBox
    For Each Eintrag In oDrawDoc.Sheets.Item(1).TitleBlock.Definition.Sketch.TextBoxes

        If Eintrag.FormattedText Like sSuchTxt Then
            Quelle_Text = Eintrag.Text
            Text_ausgelesen = oDrawDoc.Sheets.Item(1).TitleBlock.GetResultText(Eintrag)
            Debug.Print Quelle_Text & " : " & Text_ausgelesen
         
            Set oTB = Eintrag
            Exit For
        End If
    Next
     
    GETTEXT_Suche_Schriftkopf = Text_ausgelesen

End Function


------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 18. Dez. 2020 10:35    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 Goose 10 Unities + Antwort hilfreich

Tag zusammen,

@Ralf

Genau umgekehrt, KraBBy war die Funktion, meinereiner der Deklarationshinweis 

Übrigens:
Me.Hide ist immer noch drinnen 


Grüße

EIBe 3D

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 18. Dez. 2020 11: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 Goose 10 Unities + Antwort hilfreich

Moin

Sorry, war keine Absicht.
CommandButton2 blendet die Form nur aus und das ist gewollt so. Ich hab das Instanzieren und Zerstören in einem Modul. Das ist das empfohlene Vorgehen. Das Auto-Instantiating sollte nicht genutzt werden.

Code:

Public Sub ShowUserForm2()
    Dim myForm As New UserForm2
    myForm.Show
   
    Unload myForm
End Sub

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 18. Dez. 2020 11:56    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 Goose 10 Unities + Antwort hilfreich

Ok,

d.h. solange myForm.Show aktiv ist bleibt die Sub ShowUserForm2() unterbrochen, wird fortgesetzt wenn die UserForm ausgeblendet wird und führt dann Unload aus?

Warum sollte die Auto-Instanzierung nicht genutz werden?


Grüße

EIBe 3D

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 601
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 18. Dez. 2020 18:13    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 Goose 10 Unities + Antwort hilfreich

Hab versucht das mit dem Auto instantiating selbst zu verstehen. Dabei bin ich hier gelandet.
stack overflow

Das mache (machte) ich wohl auch falsch, wobei ich bisher noch nicht darüber gestolpert bin. Wieder was gelernt.

Zitat:
d.h. solange myForm.Show aktiv ist bleibt die Sub ShowUserForm2() unterbrochen, wird fortgesetzt wenn die UserForm ausgeblendet wird und führt dann Unload aus?

Von mir ein Ja. Einzig wenn die Form 'modeless' ausgeführt wird, wird die Ausführung nicht unterbrochen. (property showmodal glaub ich, oder auch Parameter bei .Show)

------------------
Gruß KraBBy

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 18. Dez. 2020 19:09    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 Goose 10 Unities + Antwort hilfreich

Hallo

Ja, die Sub bleibt unterbrochen da die Form modal geladen wurde. Macht hier auch Sinn, dass der User erstmal die Änderungen fertig macht und nicht zwischendurch z.B. ein Bauteil zum aktiven Dokument machen kann.

Automatische Instanzierung ist vergleichbar mit der automatischen Typisierung von Variablen. Geht oft gut, aber garantiert ist nix. UserForms sind im Kern auch nur Klassenmodule. Spätestens wenn man mit zwei Instanzen der Form arbeiten will/muss, hat man mit hoher Wahrscheinlichkeit ein Problem. Der im Link von KraBBy dargestellte Fall ist ein Beispiel in dem Autoinstanzierung unbeabsichtigt erfolgte. Durch den Versuch Userform1.Caption zu ändern, erstellt VBA erstmal automatisch eine neue Instanz von UserForm1, da es innerhalb des Initialize-Events keinen Zugriff auf die zuvor erstellte Instanz von UserForm1 in der ShowForm-Sub gibt. Richtig wäre in den Fall einfach die Caption Eigenschaft in der ShowForm-Sub zu ändern.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 202
Registriert: 29.03.2007

IV2021 R4
CATIA V6 R2013x

erstellt am: 07. Jan. 2021 13:50    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

Ein gesundes "Neues Jahr"!
Ich bin das Makro in ein Add in umzuwandeln.
Die Beschreibung der Fehlerbehebung innerhalb von Visual Studio Express 2017 ist eigentlich recht gut verständlich
aber wie ich diese Zeile

Code:
Dim oTB1, oTB2, oTB3, oTB4, oTB5, oTB6, oTB7, oTB8, oTB9, oTB10, oTB11, oTB12 As Inventor.TextBox

des Makro umschreiben muss verstehe ich nicht.
Kann mir jemand an einem Bsp. beschreiben wie das abgeändert werden muss!?

Danke und Gruß

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 07. Jan. 2021 21:31    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 Goose 10 Unities + Antwort hilfreich

Hallo

Auch ein gesundes neues Jahr.

Was hat Visual Studio denn an der Zeile zu bemängeln? Die Anweisung ist in einem Namespace ungültig? Dann hast du die Zeile außerhalb einer Klasse platziert. Ansonsten bitte wenigstens die Meldung posten.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

bkrüger
Mitglied
Konstrukteur


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

Beiträge: 51
Registriert: 14.09.2014

Win10 IV2018 Vault2018-WG

erstellt am: 08. Jan. 2021 12:36    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 Goose 10 Unities + Antwort hilfreich

Hallo,
ja, auf ein Neues...
Ich kann zwar deine Frage nicht beantworten - nur eine Anmerkung zu der Dim-Zeile:
Damit werden oTB1 bis oTB11 als Variant und nur oTB12 als Textbox definiert.

Gruß

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 09. Jan. 2021 08: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 Goose 10 Unities + Antwort hilfreich

Moin

Einspruch! Er schreibt, dass er in ein Addin mit Visual Studio 2017 umwandelt. Das unterstelle ich mal, dass VB.Net verwendet wird. VB.Net bietet die Möglichkeit mehrere Variablen in einem Dim Statement zu deklarieren. Man kann z.B.

Code:
Dim text1, text2, text3() As String

schreiben. Das erzeugt zwei Variablen (text1 und text2) als String und ein dynamisches Stringarray text3. Was gern vermutet wird, aber nicht geht ist das Zuweisen von Werten in einer solchen Mehrfachdeklaration.
Code:
Dim zahl1, zahl2, zahl3 As Integer = 17

ergibt einen Fehler.
Theoretisch könnte man alle Deklarationen in ein Dim Statement packen.
Code:
Dim text1, text2, text3() As String, zahl1, zahl2, zahl3 As Integer, ... usw. usw.

Ich finde die Möglichkeit gehört zu "Kann man machen, muss man aber nicht."

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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