Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2003
carlitos_se carlitos_se is offline
Registrado
 
Registrado: jun 2003
Posts: 1
Poder: 0
carlitos_se Va por buen camino
Post 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.
Responder Con Cita
  #2  
Antiguo 27-06-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Me parece que habría que ver qué hacen los métodos operacion y escriberesultados para entender lo que pasa.

De cualquier forma pienso que sería mejor que tu formulario MDIChild tuviese una propiedad pública "datos" que asignas cuando lo construyes y en su evento OnShow llamas a los procedimientos operacion y escribe resultados en lugar de llamarlos desde el otro formulario.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:22:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi