komponenten name + variablen?
-
hallo an alle, ich wollte einmal wissen, ob ich folgenden code auch kürzer schreiben kann:
(Situation 4 Edit felder von Edit1 bis Edit4)
for(x=1;x<=4;x++) { if(x==1) { i_block[x]=StrToInt(Edit1->Text); } if(x==2) { i_block[x]=StrToInt(Edit2->Text); } if(x==3) { i_block[x]=StrToInt(Edit3->Text); } if(x==4) { i_block[x]=StrToInt(Edit4->Text); } }wie kann ich das machen, das er hinter den Edit die var x angenommen wird? bsp so: 8was nicht funtzt
for(x=1;x<=4;x++) { i_block[x]=StrToInt(Edit[x]->Text); //oder i_block[x]=StrToInt(Edit"+x+"->Text); }auf eine antwort würde ich mich sehr freuen und währe auch sehr dankbar!
-
Siehe FAQ im Abschnitt "Komponenten benutzen": "zur Laufzeit erstellen", "Zugriff nicht über Namen" und "dynamische Arrays".
-
Hallo Thorsten,
Jansen hat ja bereits auf dein Prolem geantwortet aber ich habe einen Kommentar zu deinem bisherigen Code. Meinst Du nicht, das die Verwendung von else if besser ist als die if Bedingungen, da der Wert von x ja innerhalb der Bedingungen nicht verändert wird und so nur unnötig viele Bedingungen überprüft werden.Gruß Alex
-
Da muss ich doch noch nen Kommentar zum Kommentar abgeben: Ich denke ein Switch..case-Konstrukt wäre hier noch vielpassender... allerdings ist Jansens Lösungsansatz wesentlich besser...
-
jo vielen dank hat funktioniert !
Edit habe es folgender maßen nun gemacht:
//Dynamische Erzeugung der TextBoxen int l=112; //Start der linken position txt_block.Length=5; //anzahl der textfelder (5=4) for(int i=1;i<5;i++) { txt_block[i] = new TEdit(this); //neues edit txt_block[i]->Parent = this; //parent angabe txt_block[i]->Left = l; //linke position txt_block[i]->Width = 33; //breite txt_block[i]->Top = 48; //top position txt_block[i]->MaxLength = 3; //maximale eingabe länge txt_block[i]->Show(); //textfeld anzeigen l=l+48; //linke postion um 48 erhöhen }im klick ereigniss
i_block[x]=StrToInt(txt_block[x]->Text);
-
Hallo Unix
Kommentar die dritte:
http://www.dotnet-hb.de/default.aspx?page=47&id=406
Ich weiß es ist Haarspalterei und natürlich ist die Lösung von Jansen die schönste.Gruß Alex
PS: Wenn ich zu weit vom Thema abkomme schreit mich einfach an.