Komponente zur Laufzeit mit Eigenschaften von fester kopieren?



  • Hi Leutz;

    ich erstelle zur Laufzeit dynamisch TImage´s und ich habe über der IDE
    ein PopupMenu erstellt, nun erstelle ich ebenso dynamisch Popup´s und
    möchte aber die MenuItems mit allen werten auch Events den erstellten
    Popups kopieren.

    const int anzahl = 8;
    TImage *Bilder[anzahl];
    TPopupMenus *Menus[anzahl];
    
    for (int i=1;i<9;i++) {
       Bilder[i] = new TImage(this);
       Menus[i] = new TPopupMenu(PopupMenu1); // PopupMenu1 ist fest auf der Form
       Menus[i] = EIGENSCHAFTEN von PopMenu1 Kopieren ???
       Bilder[i]->Width = 300;
       // Bilder[i]-> Eigenschaften weiter...
       Bilder[i]->PopupMenu = Menus[i];
    }
    

    Also wie kann ich meinem dynamisch erstellten Popmenu die Eigenschaften, Items
    und Events von Popmenu1 übergeben.

    Kann mir da einer helfen?

    gruss Dennis



  • Kann mir denn keiner Helfen?? 😞

    ich habe es auch schon mit Assign versucht!

    Menus[i]->Assign(PopupMenu);
    

    Aber da bekomme ich eine Fehlermeldung:

    EConvertError: TPopupMenu kann nicht TPopupMenu zugewiesen werden

    Verstehe ich nicht, ich dachte es muß dem gleichen Type haben.

    gruss Dennis



  • Das sollte sich über ReadComponent/WriteComponent von TMemoryStream lösen lassen. Direktes "Kopieren" ist hier leider nicht möglich.



  • <OT>

    neu_bin_hier schrieb:

    const int anzahl = 8;
    TImage *Bilder[anzahl];
    TPopupMenus *Menus[anzahl];
    
    for (int i=1;i<9;i++) {
       Bilder[i] = new TImage(this);
       Menus[i] = new TPopupMenu(PopupMenu1); // PopupMenu1 ist fest auf der Form
    [...]
    

    Hier wirst du dann wahrscheinlich einen Fehler bekommen. Die Schleife muesste, denke ich mal, folgendermassen aussehen, da du sonst auf Elemente zugreifst, die gar nicht existieren.

    for( int i = 0; i < anzahl; i++ ) {
       Bilder[i] = new TImage(this);
       Menus[i] = new TPopupMenu(PopupMenu1); // PopupMenu1 ist fest auf der Form
    [...]
    

    </OT>
    MfG Aoeke



  • Tja Aoeke,

    und noch ein Fehler ist bei TPopupMenus, das geht natürlich
    auch nicht, aber diesen fehler hast Du wohl übersehen 😃

    mensch Junge ich habe das mal so schnell eingetippt zur Veranschaulichung,
    da können mal Schreibfehler auftauchen, oder habe ich etwa Gefragt warum
    bei der Schleife ein "EAccessViolation" Fehler Auftaucht, nee habe ich nicht.

    Aber na gut, da du ja Ahnung hast, kannst du mir ja vieleicht eine schnelle und
    einfache Art nennen um meine Frage zu Beantworten, als per, wie Jansen sagte,
    mit TMemoryStream->Read-/WriteComponente. Oder erkläre mir bitte wie ich das
    damit mache.

    @Jansen
    Danke Jansen, ich studiere mich gerade durch die BCB-Hilfe und Suche, um
    mehr darüber zu Erfahren und ne Lösung zu suchen. Sag mal, giebt es hier
    mehr von diesen Posting-Süchtigen, die einem nicht Helfen aber andere
    Schlaumeier Komentare abgeben? 😉

    gruss Dennis



  • Naja, er hat es ja zumindest als OffTopic gekennzeichnet, insofern hättest du es auch einfach ignorieren können.

    Ansonsten hilft dir vielleicht das hier. Und in der FAQ gibt's auch noch ein paar Informationen zu ReadComponent/WriteComponent.


Anmelden zum Antworten