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;
procedure FormShow(Sender: TObject);
private
procedure ResetControls;
public
procedure Show; reintroduce;
function ShowModal: Integer; override;
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
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.