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 übersehenmensch 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.