Cita:
Empezado por DEPROE
¿hay alguna manera facil de lograr eso?
|
Todo depende de qué es lo que quieras hacer exactamente y de qué consideras laborioso. Lo fácil no es sinónimo de correcto.
Mi método favorito es éste:
1. Quita todos los formularios secundarios de la opción AutoCreate
2. En el evento OnClose de tus formularios secundarios pon Action := caFree;
3. En el formulario principal redefine el método Notification:
Código Delphi
[-]
interface
type
TForm1 = class(TForm)
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
end;
implementation
procedure TForm1.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited;
if (AComponent = Form2) and (Operation = opRemove) then
Form2 := nil;
end;
end.
4. Cuando quieras mostrar un formulario secundario haces esto:
Código Delphi
[-]
if not Form2 <> nil then
Form2 := TForm2.Create(Application);
Form2.Show;
La cosa cambia si abres formularios desde otro lugar que no sea el formulario principal pero esta es la idea.
// Saludos