mikrocontroller.net

Forum: PC-Programmierung VBS - In einer Schleife auf Objekte zugreifen


Autor: Micha T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bekomms einfach nicht hin in einer Schleife auf Objekte zuzugreifen, 
vieleicht kann mir hier einer einen Anstoss geben

Ich möchte in einer Schleife auf den Inhalt von Editboxen zugreifen.

mystring = editbox1.Text & editbox2.Text... usw  in einer Schleife.

Wie bekomm ich die Nummer der editbox variabel?

mein Versuch mit:

tempstring = "editbox" & x & ".Text" und dann den zusammengesetzten 
String zu verwenden ergibt ja für den Inhalt von tempstring:
editbox1.Texteditbox2.Text....
Ich hätte hier aber gern den Inhalt der editboxen.

Gruß Micha

Autor: Tobi H. (tobi-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pack die Verweise auf die Editboxen in ein Array (oder wie auch immer 
das da heißt) und iterier darüber

Autor: Micha T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hab ich dann das selbe Problem wie oben.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Micha T. wrote:
> Da hab ich dann das selbe Problem wie oben.

Nö.

Autor: Recruiting Tag - Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Micha,

du könntest auch ein Collection-Objekt von Visual Basic benutzen.

siehe auch http://msdn.microsoft.com/en-us/library/a1y8b3b3.aspx

Bsp.:

' neue Instanz vom Collection-Objekt
Dim colText As New Collection()

Dim strString As String

' Hinzufügen der einzelnen Texte zum Collection-Objekt
colText.Add(editbox1.Text , "Box1")
colText.Add(editbox2.Text , "Box2")
colText.Add(editbox3.Text , "Box3")
colText.Add(editbox4.Text , "Box4")

' Schleifendurchlauf über die Texte aller Editboxen
For each strString in colText
    msgbox("Inhalt der Editbox: " & strString)
Next strString

Der Zugriff auf einzelne Elemente ist dann auch in der Form

  Dim Text1 as String

  Text1 = colText.Item("Box1")

möglich.

Über alle Elemente auch in der Form

 dim i as Integer

 For i = 1 to 4

   msgbox("Der Inhalt von Editbox" & CStr(i) & _
          " ist " & colText.Item("Box"&CStr(i)))
 next i

Ich kann die angebenen Codefragment leider nicht testen, musst also 
einfach ausprobieren.

Gruß

Autor: Daniel V. (volte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Finde die Idee von Recruiting Tag - Besucher ist ein sehr guter 
Lösungsansatz, Selbst eine neue Instanz dieser Klasse zu erzeugen ist 
wohl der einzige Weg der auf die schnelle möglich erscheint.
MFG

Autor: poahneeh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VBS und editbox, lass mich raten, das ist eine HTA-Application. Wenn dem 
so ist, kannst du mit

   Window.Document.All.Item("editbox" & i).Text = "wert"

oder

   a = Window.Document.All.Item("editbox" & i).Text

darauf zugreifen. In HTA können mehrere Textfelder, wie in VB6, den 
selben Namen haben. Dann ist das Problem mit

   For Each oText in Editbox
      oText.Text = "test"
   Next

zu lösen. VBScript, VB6 oder HTA? In VBScript gibt es keine Textboxen 
und dergleichen, ausser du bindest irgendwelche Active-X-Objekte ein die 
Textboxen enthalten. Aber wozu? Die wirst du in VBS niemals zu Gesicht 
bekommen.

Wenn du was zu spicken haben willst, kannste dir gerne den Code aus 
meinem ATMega8 Flash Tool unter atm.pravec.de reinziehn. Da sind jede 
Menge Textfelder, DopDowns und alles kreuz und quer drin. HTA kann ich 
nur empfehlen. Einfacher gehts wirklich nicht mehr.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.