Einzelnen Beitrag anzeigen

v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#1

Komponenten rekursiv in die Zwischenablage kopieren (Wie die IDE)

  Alt 7. Nov 2011, 10:25
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 ?
  Mit Zitat antworten Zitat