Zeiger einer kopierten Komponente speichern und später benutzen



  • Hallo zusammen,

    ich versuche gerade VCL-Komponenten zu kopieren. Klappt auch ganz gut. Das Problem das ich jetzt habe, ist folgendes.

    Nehmen wir an ich kopiere ein Label von einem Panel zum anderen Panel. Normalerweise kann ich ja, z.B. mit Label1->Caption auf den Text zugreifen. Den Zeiger von einem einzelnen Label zu speichern, wäre jetzt nicht das Problem. Ich habe aber mehrere unterschiedliche Komponenten und diese dann auch noch in mehrfacher Ausführung. Die Lösung über den Parent und Control[idx] zuzugreifen, ist mir bekannt, aber leider ist das sehr umständlich, weil ich ja erst über den Namen das Control raussuchen muss, und zusätzlich dann auch noch den jeweiligen Typ casten muss. Gibt es da nicht eine elegantere und bessere Methode?

    Bin für jede Hilfe dankbar!



  • Aus deiner Beschreibung wird überhaupt nicht deutlich, was du eigentlich möchtest. Du hast verschiedene Labels auf verschiedenen Panels. Und du möchtest drauf zugreifen. Was genau ist das Problem?



  • ich habe auf verschiedenen Frames verschiedene Controls, das mit dem Label sollte nur das Problem verdeutlichen. Diese Controls (also Labels, Edits, Combos usw.) kopiere ich zur Laufzeit auf ein Panel.
    Mein Problem ist nun, das es so umständlich ist auf diese kopierten Controls zuzugreifen. Also erst durch Controls[idx] (nach Namen)zu iterieren und dann zu dem jeweiligen Tyo zu casten.



  • Erstens, warum kopierst du die Dialogelemente. Wenn du Frames hast, dann erstelle doch einfach einen passenden Frame. Der enthält doch alles was du brauchst.
    Zweitens, wenn du kopierst kennst du doch deine Objekte und kannst dir die Pointer merken. z. Bsp. in einer map um später per Namen drauf zugreifen zu können.


Anmelden zum Antworten