Ver Mensaje Individual
  #2  
Antiguo 28-10-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una vez que tengas más claro lo que tratamos en el hilo Guardar Frame... creo que podrás "clonar" una componente- al menos sus propedades publicadas (sección published).

Los métodos ReadComponent y WriteComponent de TFileStream que te mencioné en el otro hilo se aplican también a otro tipo de streams. Podrías usar TMemoryStream en lugar de TFileStream para crear una copia de la componente: la escribes al stream con WriteComponent y la lees en una nueva instancia con ReadComponent.

Pero por otra parte, pienso que quizá te estés complicando la vida. Según entiendo de tu hilo Arrastrar y Soltar!!!, tú quieres tener algo similar a una paleta de componentes que el usuario arrastra al área de trabajo (un frame).

En el proceso de drag and drop no tienes necesariamente que arrastrar físicamente la componente. En el evento OnDragDrop del frame, en lugar de mover la componente origen, puedes dejarla donde está y crear tú misma una nueva instancia inicializando sus propiedades con los valores que tenga la componente que se "arrastró" o con otros valores por defecto:

Código Delphi [-]
procedure FrameDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  if Source is TEdit then
  begin
    with TEdit.Create(Self) do
    begin
      Text := TEdit(Source).Text;
      Width := TEdit(Source).Width;
 
      Color := clWindow;
    end;
  end;
end;
// Saludos
Responder Con Cita