Ver Mensaje Individual
  #3  
Antiguo 07-12-2007
citlalliDgp citlalliDgp is offline
Miembro
 
Registrado: oct 2007
Posts: 38
Reputación: 0
citlalliDgp Va por buen camino
Lo que sucede es que, estoy creando una aplicación donde hago uso de forms del tipo MDI.

Ahora, estuve pidiendo ayuda en este foro para poder llamar, desde un form padre, otros forms fsMDIChild (hijos). Después de la ayuda de un amigo del foro, lo logré. Pero después surgió un problema.

Cuando mi aplicación corre, el form principal es el Form2 y tiene la propiedad FormStyle en fsMDIForm. Entonces, dentro de este form, tengo un TMainMenu mediante el cual puedo invocar otros forms hijos del tipo fsMDIChild. Hasta aqui, todo funcionaba correctamente. Sin embargo, surge la necesidad de que, en el momento de invocar un form hijo, éste quede en primer plano y el form padre este inhabilitado (algo similar a lo que sucede cuando invocas un form con ShowModal). Para lograr esto fue necesario, cambiar los forms de fsMDIChild a fsNormal y al invocarlos hacer lo siguiente:

Código Delphi [-]
procedure TForm2.Proveedores1Click(Sender: TObject);
begin
form4 := TForm4.Create(Application);
Form4.ShowModal();
Form4.Free;
end;

Y efectivamente resultó. Pero, retomando el ejemplo del código anterior. Dentro del Form4 puse un SpeedButton con el cual trato de invocar otro Form del tipo fsMDIChild y es éste específicamente el problema por que me arroja un error. Lo que pongo en el SpeedButton es:

Código Delphi [-]
procedure TForm4.SpeedButton5Click(Sender: TObject);
begin
Form5 := TForm5.Create(Application);
end;

Y el error que aparece es "Acces violation at address....".

Podrías ayudarme por favor.
Responder Con Cita