Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#3

AW: [Fmx] Controls und Children mit Deep Copy clonen

  Alt 6. Sep 2018, 10:25
Hallo Harry,

dankesehr für die gute Idee.

Leider hat TListBox keine direkte Clone Funktion, sondern nutzt die von TFmxObject.

Darin wird weiter im Writer.WriteComponent Folgendes aufgerufen:
Delphi-Quellcode:
    for I := 0 to Component.ComponentCount - 1 do
      if csSubComponent in Component.Components[I].ComponentStyle then
        Include(Component.Components[I].FComponentState, csWriting);
Ich vermute mal das sind die Items der Listbox, die sind in der Components Liste.

Das Clone kam bei meinem Versuch an dieselbe Stelle, und funktionierte eben nicht mit den Children.


Wenn ich aber in FMX Child-Controls z.B. mit der Maus auf andere Parent-Control lege, dann landen die in der Childrens Liste.
Dasselbe Verhalten bekommen ich zur Runtime mit ParentControl.AddObject .RemoveObject,
und das funktioniert auch soweit super.

Aber die internen Collections von z.B. TListbox werden anscheinen in Components abgewickelt, und die manuellen Elemente in Childrens.

Was ich Erreichen möchte ist im Prinzip dasselbe Verhalten wie in der IDE:
- ich habe ein Parent-Objekt mit Child-Objekten
- Klicke drauf mit Crtl-C kopieren
- Klicke auf mein Ziel
- und mit Ctrl-P den ganzen Baum kopieren, mit Allen Unterkomponenten und Settings.

Ich hatte auch an JSONMarshaller und Clipboard gedacht, aber ich da finde ich auch keine Lösung.
Vielleicht kann man die Orginal-IDE-Design Funktion irgendwo anzapfen ?
  Mit Zitat antworten Zitat