Ver Mensaje Individual
  #1  
Antiguo 01-04-2009
nena_yei nena_yei is offline
Miembro
 
Registrado: abr 2009
Posts: 60
Reputación: 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