In meinem Programm habe ich einen Designer, der es dem Benutzer erlaubt verschiedene Fenster wie in Delphi selbe zu gestalten. Diese Formulare kann ich speichern und laden, was über
Delphi-Quellcode:
procedure DesignSaveComponentToStream(AComp: TComponent; AStream: TStream);
var
MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
try
MS.WriteComponent(AComp);
MS.Position := 0;
ObjectBinaryToText(MS, AStream);
finally
MS.Free;
end;
end;
auch super funktioniert. Auch das Laden funktioniert bestens.
Jetzt möchte ich noch eine Copy&Paste Funktion einbauen. Zuerst habe ich gedacht, ich übergebe der obigen Funktion meine Komponete und packe den resultierended Stream in die Zwischenablage. Funktioniert bei einer konmponente auch bestens.
Nun habe ich aber den Aufbau, dass Panel2 in Panel1 liegt. Wenn ich jetzt Panel1 in die Zwischenablage kopiere und wieder einfüge, sehe ich nur noch Panel1 und nicht Panel2.
Daraufhin habe ich Clipboard.SetComponent() benutzt, was aber zum gleichen Ergebnis führt. Hat einer von Euch eine Idee was ich falsch mache ?