Ver Mensaje Individual
  #2  
Antiguo 22-11-2021
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Reputación: 20
movorack Va camino a la famamovorack Va camino a la fama
Como el formulario ya lo tienes creado y lo que haces es mostrarlo nuevamente, limpiando los controles.

Podrías manipular los eventos Show y ShowModal y así establecer los valores iniciales antes de mostrar el formulario.

Ejemplo:

Aplicación con 2 formularios, Form1 y Form2, ambos creados al inicio del programa.

Form1 llama al Form2

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show;
end;

En Form2, el evento Show limpia el texto de los Edit antes de cambiar el valor a la propiedad "Visible"

Código Delphi [-]
type
  TForm2 = class(TForm)
    Edit1: TEdit;  
    Edit2: TEdit;

    //El FormShow sigue funcionando normal, ejecutando el código al mostrarse
    procedure FormShow(Sender: TObject); 
  private  
    procedure ResetControls;
    { Private declarations }
  public
    procedure Show; reintroduce;
    function ShowModal: Integer; override;
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

{ TForm2 }

procedure TForm2.FormShow(Sender: TObject);
begin
  Edit1.SetFocus;
end;

procedure TForm2.ResetControls;
  var
    i: integer;
begin
  for i := 0 to Self.ControlCount - 1 do
  begin
    if Self.Controls[i] is TEdit then
      TEdit(Self.Controls[i]).Text := '';
  end;
end;

procedure TForm2.Show;
begin
  ResetControls;

  inherited Show;
end;

function TForm2.ShowModal: Integer;
begin
  ResetControls;

  Result := inherited ShowModal;
end;

end.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita