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 17-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Forms

Hola a tod@s . Os cuento:

Estoy utilizando delphi7, tengo un formulario MdiForm con un menu. Desde uno de los items llamo a un formulario Mdichild y quiero que este a su vez muestre otro Mdichild. Se puede hacer? Utilizo el form.show.

Me da el siguiente error : 'Acces violation at address 0046EA36 in module project.exe.'

Código Delphi [-]
procedure TFrmAlquileres.BuscarMoroso();
begin
  if DM.TblDeuda.Locate('IdSocio',DM.TblSociosIdSocio.Value,[]) then
    begin
      if MessageDlg('¿Desea cobrar la deuda ahora?',mtCustom,[mbYes,mbNo],0)=mrYes then
        begin
         //llama al un procedimiento para filtrar la tabla,campo,valor pasado  
         //como parametro
         DM.filtros(DM.TblDeuda,'IdSocio',DM.TblSociosIdSocio.Value);
         //Formulario
          FrmMorosos.Show; 
          FrmMorosos.GrpMoroso.Enabled := false;
        end;
    end;
end;

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 17-05-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Y FrmMorosos ya está creado? Por que si no, primero tendrías que verificar si está creado, si no es así, crearlo:

Código Delphi [-]
if not Assigned(FrmMorosos) then
  FrmMorosos := TFrmMorosos.Create(nil); // O .Create(Application)

Saludos...
Responder Con Cita
  #3  
Antiguo 17-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Thumbs up

Buaa. No contaba con eso y es lo mas importante. Muchas gracias!!!!!!
Responder Con Cita
  #4  
Antiguo 17-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Unhappy

Buenas otra vez . He probado lo que me has dicho

Código Delphi [-]
procedure TFrmAlquileres.BuscarMoroso();
begin
with DM do
begin
  if TblDeuda.Locate('IdSocio',TblSociosIdSocio.Value,[]) then
    begin
      if MessageDlg('¿Desea cobrar la deuda ahora?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
        begin
          if not Assigned(FrmMorosos) then
            FrmMorosos := TFrmMorosos.Create(application);
          filtros(TblDeuda,'IdSocio',TblSociosIdSocio.Value);
          FrmMorosos.Show;
          FrmMorosos.GrpMoroso.Visible := false;
          FrmMorosos.EdtDeuda.SetFocus;
        end;
    end;
end;

Si le digo que no quiero cobrar la deuda no me da ningun error, pero si elijo que sí,el primer socio que elijo(de un DBlookupCombobox) no me da ningun problema,me lo hace bien, pero al seleccionar otro me da un error: 'Acces violation at address 0040368 in module project.exe.
Libero memoria en el onclose con

Código Delphi [-]
Action := cafree;
,

pero no se si se me queda algo por hacer, porque cuando le doy por segunda vez no entra en :
Código Delphi [-]
if not Assigned(FrmMorosos) then
            FrmMorosos := TFrmMorosos.Create(application);
Por si sirve de algo la llamada la hago en el closeUp del lookupcombobox

Gracias otra vez.
Responder Con Cita
  #5  
Antiguo 17-05-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
En el evento OnDestroy de TFrmMorosos has: FrmMorosos := nil.

El error en la segunda pasada te lo da por que FrmMorosos apunta a una dirección de memoria que ya no está en uso.


Por cierto, las ventanas MDIChild se muestran automáticamente al momento de crearlas, así que no hay necesidad de FrmMorosos.Show.


Saludos...

Última edición por maeyanes fecha: 17-05-2006 a las 22:00:32.
Responder Con Cita
  #6  
Antiguo 17-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Graciaaas por contestar tan rapido. Me imaginaba que era en el ondestroy pero no tenia ni idea de que poner.

Cita:
Empezado por maeyanes
Por cierto, las ventanas MDIChild se muestran automáticamente al momento de crearlas, así que no hay necesidad de FrmMorosos.Show.
Cierto , no lo habia pensado asi.

Muchisismas graciaas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
MDI Forms karocs Varios 8 12-07-2007 16:38:03
Forms serhasae Varios 1 24-04-2006 14:47:25
dll con forms Rafa Varios 10 15-02-2005 20:43:11
Forms MDI lafirma OOP 7 10-03-2004 21:10:32
Forms... superhopi Varios 11 01-07-2003 22:27:47


La franja horaria es GMT +2. Ahora son las 02:07:00.


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