FindComponent findet nix!



  • Hi!

    Eine neue Woche und schon neue Probleme -.-
    !

    Ich erzeuge zur Laufzeit TBitBtn 's.
    mit:

    TBitBtn aktivRechner=new TBitBtn(aktivTab);
    

    (aktivTab ist hier meine ausgewählte GroupBox... auf diese werden die neuen Buttons erzeugt.

    aktivRechner->Parent=dynamic_cast<TWinControl*>(aktivTab);
    

    Muss ich hier Casten??? Oder kann ich als Parent auch einfach eine TGroupBox angeben?? Glaub das gab fehler..

    naja, weiter:
    Dann erzeuge ich einen Laufzeitnamen:

    aktivRechner->Name="Rechner_"+AnsiString(raumnummer)+AnsiString(rechneranz);
    

    Raumnummer und Rechneranz sind Integer welche zuvor ermittetl werden...

    Dann versuche ich später wieder auf einen dieser Buttons zuzugriefen, find ihn aber nicht wieder!

    TBitBtn *tempRechner=dynamic_cast<TBitBtn*>(FindComponent("Rechner_"+AnsiString(raumnummer)+AnsiString(rechnernummer));
    

    Doch komischerweise findet er da nix!!!
    Wenn ichmir jedoch mit

    ShowMessage(aktivTab->ComponentCount);
    

    ausgeben lasse, zeigt er mir die korrekte Anzahl von Rechnern in dem raum an!

    ???
    Könnte ich über Components auch an die Rechner einer Groupbox kommen?

    tempRechner=aktivTab->Components(i);
    

    funktioniert nicht! kommt "Call of nonfunction"

    MfG Puccini



  • Hallo,

    du musst FindComponent von activTab aufrufen:

    TBitBtn *tempRechner=dynamic_cast<TBitBtn*>(activTab->FindComponent("Rechner_"+AnsiString(raumnummer)+AnsiString(rechnernummer));
    

    oder über Components mit eckigen Klammern:

    tempRechner=aktivTab->Components[i];
    

    Gruß Peter



  • thx!

    Hat geholfen 😉

    -.- ich hatte mir schon gedacht, das ich auf der Form nach den Komponenten suche! hätte ich auch selber drauf kommen sollen!

    Danke für deine HIlfe!


Log in to reply