Den Wert einer Variablen als Name für Komponente?



  • Hallo Zusammen,
    ich habe mal wieder eine Frage. Mir geht es darum ob meine Idee funktioniert. Und zwar...

    ist es möglich den Wert einer Variablen (z.B. HS001) als Name einer ComboBox zu nehmen?

    Beispiel

    AnsiString artikel = "HS001"
    Form1->derwertvon[artikel]->Text = "DVD-Box";
    

    Ich hoffe, das war verständlich. Geht sowas?

    Danke im voraus.



  • Hallo

    Dazu brauchst du die Methode FindComponent sowie einen Cast auf die entsprechende Zielklasse

    AnsiString artikel = "HS001"
    // Wenn du dir nicht sicher bist
    TEdit* Edit = dynamic_cast<TEdit*>(Form1->FindComponent(artikel));
    if (Edit)
      Edit->Text = "DVD-Box"; 	
    // Wenn du dir sicher bist
    static_cast<TEdit*>(Form1->FindComponent(artikel))->Text = "DVD-Box";
    

    Aber das ist recht unelegant, insbesondere wenn du damit nur eine Reihe von gleichnamigen und gleichartigen Komponenten ansprechen willst, die sich nur durch einen Index unterscheiden. Wie das besser geht kannst du in der FAQ hier im Builder-Forum nachlesen, in dem Artikel "Arrays von Komponenten".

    bis bald
    akari


Anmelden zum Antworten