Bueno, yo lo hago mas o menos como dice Eduarcol, con formularios padres/hijos. Supongo que las mismas reglas aplican para formularios Madres/hijas...
Digamos que para completar el algoritmo, aporto lo siguiente:
Código Delphi
[-]
if not Assigned(Form2) then
Form2 := TForm2.Create(Application)
else if Form2.WindowSate = wsMinimized then
Form2.WindowSate = wsNormal;
Form2.BringToFront;
Obviamente, hay que tener cuidado de que la variable Form2 se asigne a nil al momento de destruir el formulario para que esto funcione adecuadamente.
Hasta luego.