Bueno sobre mi pregunta 2 la solución estaba con SHOWMODAL, así mismo este me sirve para mi pregunta 1 ya que no le da acceso al Form principal y pulsar n-veces el Boton para crear n-Forms.
En lo que intentaba resolver esta situación gracias a vuestros consejos, me ha ocurrido algo interesante, del cual me quedó una duda con lo siguiente, verán con el código de abajo, no le he dado evento al BitBtn, pero no sé por qué razón cuando clicko al BitBtn, este me cierra el 2do Form creado en tiempo de ejecución, ¿Es que acaso tiene algún Evento DEFAULT el BitBtn que realiza esa operación?
Y otra cosa interesante, si cambio en el: procedure TForm1.Button1Click, la línea NuevoForm.showmodal; por NuevoForm.Show; ya no ocurre esa situación de que el BitBtn cierra el 2do Form.
Código Delphi
[-]
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ClickBoton2(Sender: TObject);
private
NuevoForm: TForm;
NuevoBoton: TBitBtn;
NuevoBoton2: TButton;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
NuevoForm := TForm.Create(nil);
NuevoForm.Parent := nil;
NuevoForm.Caption:='Nuevo Formulario';
NuevoForm.Name := 'MiForm';
NuevoForm.FormStyle:= fsStayOnTop;
NuevoBoton := TBitBtn.Create(NuevoForm);
NuevoBoton.Parent := NuevoForm;
NuevoBoton.Name := 'Boton1';
NuevoBoton.Kind:=bkIgnore;
NuevoBoton.Caption:='Púlsame';
NuevoForm.showmodal;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
NuevoForm := TForm.Create(nil);
NuevoForm.Parent := nil;
NuevoForm.Caption:='Nuevo Formulario';
NuevoForm.Name := 'MiForm';
NuevoForm.FormStyle:= fsStayOnTop;
NuevoBoton2 := TButton.Create(NuevoForm);
NuevoBoton2.Parent := NuevoForm;
NuevoBoton2.Caption:='Clickme';
NuevoBoton2.Name := 'Boton2';
NuevoBoton2.OnClick:=ClickBoton2;
NuevoForm.showmodal;
end;
procedure TForm1.ClickBoton2(Sender: TObject);
begin
NuevoBoton2.Caption := 'Pressed';
end;
end.
¿Alguien sabe a que se debe ello?
Adjunto el Ejemplo