eine von vielen pictureBox ansprechen [gelöst]



  • Hallo!
    habe mit C++ angefangen
    mein Problem ist folgendes:

    Ich habe mehrere bilder in meine Form positioniert.
    Der benutzer muss eine zahl zwichen 1 und 10 eintippen und mit eingabe bestätigen.

    nun wird das Bild mit der jeweiligen Nr. verschoben.

    *Bsp.:

    Nutzer tippt 3 ein
    pictureBox3->Left+=1;*

    ständig mit if abzufragen welche zahl gedrückt wurde und das Bild zu verschieben wäre bei 100 bilder ein riesen Aufwand.

    Bei Delphi gibt es "findcomponent(name: string)" er durchsucht alle komponenten die den namen haben

    Auf mein Problem bezogen würde das dann so in Delphi aussehen:
    findcomponent("pictureBox"+inttostr(i)).Left=....//inttostr wandelt integer zu string um

    Gibt es so was auch in C++?
    oder eine noch viel einfachere Variante?

    Danke im Vorraus!
    Grüße Shan



  • Variablennamen existieren zur Laufzeit nicht mehr.



  • Wenn du anfängst Variablen/Objekte mit ..1, ..2, ..3, usw. enden zu lassen überlegt dir ob ein Array nicht angebracht wäre.



  • Danke für die schnellen antworten, habe nicht gewusst, dass ich ein Array of objekte machen kann.
    Werde das mal probieren.

    Grüße shan



  • Wenn du mit Borland/Codegear/Embarcadero C++ programmierst kannst du FindComponent benutzen, um eine Kindkomponente der aktuellen Komponente zu finden. Ob FindComponent nur Kinder der ersten Generation findet oder den ganzen Baum durchsucht kann ich dir allerdings nicht sagen.

    void TMyForm::myfunc()
    {
       TPictureBox* Box = dynamic_cast<TPictureBox*>( FindComponent( "MyPictureBox4711" ) );
       if( Box )
       {
          Box->DoSomething();
       }
    }
    


  • Danke!
    Sowas hab ich f+r c++ gesucht. Programmiere leider nicht mit Borland.
    Hab das mitlerweile mit arrays gelöst.

    Grüße


Anmelden zum Antworten