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 01-04-2009
nena_yei nena_yei is offline
Miembro
 
Registrado: abr 2009
Posts: 60
Poder: 16
nena_yei Va por buen camino
Unhappy AccessViolation inexplicable

Hola, me han encargado solucionar un error de una aplicación de Delphi, y la verdad.. por más que pruebo cosas y lo miro, no lo entiendo. Igual porque llevo años sin tocar Delphi, no sé.
El problema es "tan sencillo" como que en la funcion FormCreate intento hacer un ShowMessage y me salta el error de AccesViolation, he probado de no ponerlo,y no da ningún problema, pero es intentar mostrar algo y pam!
En el fichero .dpr tengo lo siguiente:

Código Delphi [-]
begin
  Application.Initialize;
  Application.Title := 'Diccionario crítico etimológico castellano e hispánico';
  Application.HelpFile := 'AYUDA.HLP';
  Application.CreateForm(Tportada, portada);
  if(portada.carga)then begin
       Application.CreateForm(Tcentral, central);
    Application.CreateForm(Tdades, dades);
    Application.CreateForm(Tmultiple, multiple);
    Application.CreateForm(Tllengues, llengues);
    Application.CreateForm(Tdocumentacio, documentacio);
    Application.CreateForm(Tbuscabierta, buscabierta);
    Application.CreateForm(Tabreviaturas, abreviaturas);
    Application.CreateForm(Tnotacionfonetica, notacionfonetica);
    Application.CreateForm(Tintroduccion, introduccion);
    Application.CreateForm(Tfuentescas, fuentescas);
    Application.CreateForm(Tdedicatoria, dedicatoria);
    Application.CreateForm(Tindibiblio, indibiblio);
    Application.CreateForm(Tindicacionesbibliograficas, indicacionesbibliograficas);
    Application.CreateForm(Tabreviaturastxt, abreviaturastxt);
    Application.CreateForm(Tpopuplema, popuplema);
    Application.CreateForm(Tcredits, credits);
    Application.CreateForm(Tmapagrafies, mapagrafies);
    Application.CreateForm(Tcarga, carga);
    Application.Run;
  end;

He probado comentandolo todo y dejando solo el FormCreate de la portada,y NADA!


Y la función del FormCreate es la siguiente:

Código Delphi [-]
procedure Tportada.FormCreate(Sender: TObject);
var unidad:string;
begin
 carga := false;
 unidad:=GetFirstCdRomDrive;
 if not IsDiskIn(unidad[1]) then begin
   carga := false;
   Showmessage('hola');
 end else begin
   descomprimir();
 end;
end;

No sé si necesitáis alguna información más.. si no me explico o hay algo que no se entiende, por favor, comunicadmelo y me explicaré encantada.
Espero que me deis algún tipo de solución,pq la verdad es que ya no sé que probar!!
Gracias de antemano, un saludo!

Última edición por dec fecha: 02-04-2009 a las 12:05:12.
Responder Con Cita
  #2  
Antiguo 02-04-2009
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Pon puntos de ruptura y ejecuta paso a paso. En cuanto localices la línea, localizarás el error.

De todas formas, ahí estáis creando muchas ventanas. Lo mejor es crear sólo las más utilizadas y el resto dejarlas hasta el momento preciso en el que tienes que utilizarlas, destruyéndolas en cuanto no se necesiten.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 02-04-2009
nena_yei nena_yei is offline
Miembro
 
Registrado: abr 2009
Posts: 60
Poder: 16
nena_yei Va por buen camino
Antetodo, gracias por la respuesta. Lo de debugar punto por punto lo he hecho infinitas veces, y el problema es que el error salta donde pongo el ShowMessage (lo ponga antes o después).
También he probado de crear únicamente la portada, pero ni así! Aunque solo tenga esto de Application.CreateForm(Tportada, portada); tampoco funciona.

Q desesperación...
Responder Con Cita
  #4  
Antiguo 02-04-2009
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Bueno, como usted ya hizo varios testes y hasta ahora nada, intenta poner el Form Portada para crear por el ultimo y no como el primer como se ve.
Responder Con Cita
  #5  
Antiguo 02-04-2009
Davidcfres Davidcfres is offline
Miembro
 
Registrado: ago 2007
Ubicación: Francia
Posts: 10
Poder: 0
Davidcfres Va por buen camino
Intenta eso :

no utilizas FormCreate pero override el Create de Form
y, depues del inherited creo que podras hacer un showmessage...


Código Delphi [-]

TForm4 = class(TForm)
  public
   { Déclarations publiques }
    constructor Create(AOwner: TComponent); override;
   end;

(...)

constructor TForm4.Create(AOwner: TComponent);
begin
  inherited;
  showmessage('OK');
end;

no sé si va a resolver tu problema, pero es una pista

David

Última edición por Davidcfres fecha: 02-04-2009 a las 17:28:55.
Responder Con Cita
  #6  
Antiguo 02-04-2009
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Hola, en el ejemplo pones la línea:
Código Delphi [-]
ShowMessage('Hola');
Sin embargo, no te creo que este sea el código real que estás utilizando. Dejame suponer que intentas mostrar el contenido de alguna propiedad de un objeto o bien el contenido de alguna variable. Si es así, entonces debe ser que el objeto->propiedad / variable no ha sido inicializado.

Revisa que la variables que muestra esté inicializada.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
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
Error AccessViolation CarlosHernandez Varios 3 22-09-2008 10:18:57
Error inexplicable chipsoni Impresión 3 11-01-2007 17:36:49
RaveReport AccessViolation raugadel Impresión 0 03-11-2005 15:32:56
Problema Inexplicable Con Una Consulta carlos gonzalez Conexión con bases de datos 4 12-05-2005 11:27:29
Problema... ¿inexplicable? jadelphi Varios 3 20-04-2005 17:57:33


La franja horaria es GMT +2. Ahora son las 20:31:12.


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