supongo que tendrás algo así
En negrita los cambios al ejemplo anterior
Código:
private
MiVar1: string;
MiVar2: string;
public
constructor Create2(Aowner : TComponent; Var1, Var2: string);
implementation
constructor TMiForm.Create2(Aowner : TComponent; Var1, Var2: string);
begin
// llamamos al create principal de la classe TForm
inherited Create(Aowner);
// Aquí podemos asignar esos parámetros a variables de la unit por ejemplo
MiVar1 := Var1;
MiVar2 := Var2;
end;
Con ésto no has de perder el valor de las variables a no ser que, desde algún lado, lo cambies tu explícitamente.
Fíjate en el detalle de que las variables son Privadas. Qué ganamos? Pues que, por descuido no modifiquemos el valor desde fuera de la Unit. Así que, si sigues perdiendo el valor en el OnActivate, sólo tendrás que buscar dentro de esta Unit a ver dónde asignas valores a estas variables
Espero te sirva