Problema con MDI's!!!
Hola,
Soy nuevo en programación y estoy
realizando una aplicacion MDI y tengo un problema que quisiera consultarles:
Tengo los formularios MainForm,frmdatos,MDIChild
En mi aplicación quisiera crear los formularios MDIChild mostrando valores que proveniesen de aplicar algunas operaciones a datos que voy a ingresar antes en "frmdatos".
Para realizar esto en el formulario MainForm utilizo un Menu Principal con una opción Nuevo, la cual muesta el formulario "frmdatos" :
frmdatos.ShowModal;
, despues de haber ingresado todos los datos, se validan con un
Botón , en el cual creo el formulario MDIChild:
procedure Tfrmdatos.BitBtn2Click(Sender: TObject);
Var
Child: TMDIChild;
begin
Child:= TMDIChild.Create(application);
with Child do
begin
caption:='NONAME ' + IntToStr(MainForm.MDIChildCount+ 1);
operacion(datos);
escriberesultados;
end;
//operacion y escriberesultados son procedures
// del MDIChild.
ModalResult := 1;
frmdatos.Hide;
end;
Al final cuando ejecuto el programa parece funcionar bien, crea los formularios MDIChild mostrando los resultados correspondientes ,pero cuando quiero a veces cerrar alguno de ellos me sale el ERROR:
*************************************************
Project MDIAPP.exe raised exception class EInvalidPointer with
message 'Invalid Pointer operation'...
*************************************************
o el error
'Access Violation at address <address1> in Module MDIAPP.exe'
write of adress <address2>
Por favor, alguien me podría dar una idea de porque esta sucediendo esto? y si fuera tan amable de decirme como debería solucionarlo.
en el procedimiento de cerrar he colocado lo siguiente :
procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
Muchas Gracias.
|