Ver Mensaje Individual
  #4  
Antiguo 19-12-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Hay una cosa que creo que "haces mal", y es asignar, en el método "buscar", el botón Sender a BotonBuscar1. Imagino que este último lo has creado con el editor de formularios, ¿no? Por eso luego debes asignarle "nil", para que no lo destruya.

No deberías hacerlo así. Lo que tienes que hacer es reservar una variable en la parte privada de la clase del formulario y asignar ahí el botón Sender:
Código Delphi [-]
TfrmBuscar = CLASS (TForm)

  ... { aquí los componentes del formulario }

PRIVATE
{ Enlace al botón }
  BotonFormularioOrigen: TBotonBuscar;

  ... { etcétera }
END;

Así el botón "Sender" lo referencias con "BotonFormularioOrigen", no teniendo que asignarle a "nil" cuando terminas.

Claro que en lugar de copiar la referencia (que es lo que hace ":=") quizá te convenga clonar el objeto, es decir, hacer una copia. No recuerdo bien si los componentes tenían un método virtual llamado "Clone" o "Assign" que hacía eso. Si no, puedes añadirlo a tu componente. Lo que hace es copiar las propiedades de uno en el otro:

Código Delphi [-]
  TMiClase = CLASS (TObject)
  PRIVATE
    fPropiedad1: INTEGER;
    fPropiedad2: TStringList;
  PUBLIC
  { Este es el método de clonado. }
    PROCEDURE Clone (Origen: TMiClase);
  END;



  PROCEDURE TMiClase.Clone (Origen: TMiClase);
  BEGIN
  { Copia las propiedades. }
    SELF.Propiedad1 := Origen.Propiedad1;
    SELF.Propiedad2 := Origen.Propiedad2;
  END;
Si aplicas esto a tu botón, tendrás una copia del botón en el formulario de búsqueda, por lo que el botón "original" seguirá manteniendo sus datos.

No sé si esto ayuda o no tiene nada que ver con lo que preguntas. Es que me he perdido.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita