VB6 Textbox - Auswahl?

Gast #643288
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
#643303
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.
Gast #643578
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
Gast #653740
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:
1
Private Enum eMyTextFields
2
   TF_Name = 1
3
   TF_Vorname = 2
4
   TF_Ort = 3
5
End Enum

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

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren