www.mikrocontroller.net

Forum: PC-Programmierung VB6 Textbox - Auswahl?


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe 20 Textboxen und jede hate einen eigenen Namen, damit man sie 
im Programcode besser zuordnen kann. dann hab ich unter "Name".Tag einen 
index hinterlegt von 1 bis 20. diesen Tag-eintrag übergebe ich an ein 
temporäre Textbox, deren Textfeld beschrieben werden kann. Nun möchte 
ich eine Choose-Anweisung schreiben mit der ich, abhängig vom index, die 
Textfelder der anderen Textboxen einzeln beschreiben

z.b. wenn Temp.Tag = 1 dann Name1.Text = Temp.Text
     wenn Temp.Tag = 3 dann NAme3.text = Temp.Text

hab dazu folgendes programiert

dim textfeld as string

textfeld=Choose(Temp.Tag,"Name1.text", "Name2.Text","Name3.Text,
                ....,Name20.Text)

textfeld=Temp.Text


welche syntax muss man hier verwenden damit das funktioniert?

bei der Choose anweisung wird immer der entsrechende string in die 
Variable textfeld geschrieben. dann soll aber die Variable textfeld 
nicht neu überschriebenwerden, wie das hierbei der fall ist, sonder in 
den im textfeld enthaltenen String-Pfad geschrieben werden.
ich bräuchte quasi ne art Pointer Funktion. oder gibts eine bessere 
möglichkeit?

ich möchte vermeiden das ganze über eine select case abfrage machen 
zumüssen, um programieraufwand zu sparen.

Schon mal danke im Vorraus

Autor: Tobias L. (acidtobi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Statt den Textboxen eigene Namen zu geben wäre es viel einfacher ein 
Array aus Textboxen zu verwenden, d.h. den gleichen Namen zu verwenden 
aber jeder Textbox einen eigenen Index-Wert. (Stichwort "Control Array")

Dann reduziert sich das ganze auf "Textfeld(Temp.Tag).Text=Temp.Text", 
choose und select kannst du dir völlig sparen.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das es so machbar ist ist mir klar, aber dann verliert man doch die 
übersicht im Programcode und sollte sich jemand später den code ansehen 
wollen, muss der erst mal die textfelder zuordnen um zu verstehen wie es 
funktioniert. oder wenn einzelne einträge bearbeitet werden müssen, dann 
muss auch erst mal geschaut werden, in welcher textbox das pasieren muss 
weil die eben keine eigennamen mehr haben. das wollte ich eigentlich 
vermeiden

Autor: Tobias L. (acidtobi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann hast du als Alternative noch die Möglichkeit mit der 
Controls-Collection zu arbeiten:

textfeld=Choose(Temp.Tag,"Name1","Name2","Name3",...,"Name20")
Me.Controls(textfeld).Text=Temp.Text

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alternative:

Eine Control Collection verwenden, und die Lesbarkeit des Codes beim 
Zugriff auf einzelne (bestimmte) Controls dadurch sicherstellen, daß du 
ein Enum mit sinnvollen definierst und statt mit Konstanten immer nur 
mit den Enumwerten in das Feld reingehst.

Beispiel:
Private Enum eMyTextFields
   TF_Name = 1
   TF_Vorname = 2
   TF_Ort = 3
End Enum

Ein Zugriff in der Art
If Feld(TF_Name) <> "Schmidt" Then
  ...
End If

ist dann zwar etwas mehr Tippaufwand, aber genauso lesbar wie die 
Variante mit den individuellen Namen.

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, ich seh gerade, der Thread war auch schon ne Leiche. Warum wird 
auch im PC-Unterforum so wenig gepostet.

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.