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 18-08-2010
P0werBurn P0werBurn is offline
Miembro
 
Registrado: jun 2010
Posts: 47
Poder: 0
P0werBurn Va por buen camino
Código de error - Access violation at address 0044p983 in module 'Project1.exe'.

Hola a todos!

Bueno, estaba planteándome hacer una especie de programa, para asimilar los conceptos de los cuadros de mensaje.

El programa consistía en algo así como en un "archivador" para tener todos los apuntes ordenados.

Antes de pasar a hacer eso hice algo más fácil:

Al pulsar un botón en el formulario que se abriera otro, con un texto escrito por mí. Sería algo así como cuando pulsas en un programa el botón "Acerca de..." que se abre una ventana con todo sobre el creador del programa, la compañía...

El código es este:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.ShowModal;
end;

end.

Le tuve que añadir en implemetation Uses unit2;, y según he leído por todas partes al intentar solucionar el problema eso está bien.

El problema empieza al PULSAR EL BOTÓN, que me sale el siguiente error.

Access violation at address 0044p983 in module 'Project1.exe'. Read of adress 00000000

He revisado el código mil y una veces, pero no consigo saber cuál es el problema.

Un saludo,

P0werBurn.
Responder Con Cita
  #2  
Antiguo 18-08-2010
P0werBurn P0werBurn is offline
Miembro
 
Registrado: jun 2010
Posts: 47
Poder: 0
P0werBurn Va por buen camino
PD: También añado que busqué el código de error en Google y no encontré nada...
Responder Con Cita
  #3  
Antiguo 18-08-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Y la pregunta del millón... ¿Quién creó la instancia de TForm2?

Si no tienes puesto que tu proyecto cree automáticamente al inicio los formularios, cosa que no recomiendo, tienes que encargarte de crear la instancia del mismo. Es un error típico de los programadores en VB cuando migran a Delphi, ya que en VB no queda claro quien crea los formularios, con solo llamarlos se crean.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if form2 = nil then
    form2 := TForm2.Create(self);

  form2.ShowModal;
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 18-08-2010
P0werBurn P0werBurn is offline
Miembro
 
Registrado: jun 2010
Posts: 47
Poder: 0
P0werBurn Va por buen camino
Cita:
Empezado por delphi.com.ar Ver Mensaje
Y la pregunta del millón... ¿Quién creó la instancia de TForm2?

Si no tienes puesto que tu proyecto cree automáticamente al inicio los formularios, cosa que no recomiendo, tienes que encargarte de crear la instancia del mismo. Es un error típico de los programadores en VB cuando migran a Delphi, ya que en VB no queda claro quien crea los formularios, con solo llamarlos se crean.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if form2 = nil then
    form2 := TForm2.Create(self);

  form2.ShowModal;
end;

Saludos!
Gracias!
Ahora lo pruebo y te digo
Responder Con Cita
  #5  
Antiguo 18-08-2010
P0werBurn P0werBurn is offline
Miembro
 
Registrado: jun 2010
Posts: 47
Poder: 0
P0werBurn Va por buen camino
Perfecto!

Gracias, gracias, y gracias. Le cuento el posible problema:

estoy estudiando un curso de hace ya varios años (de 1997, para ser exactos), y usa delphi 2.0.

Hasta ahora me ha ido bien, pero aquí habrá dado algún problema.

Muchas gracias,

P0werBurn.
Responder Con Cita
  #6  
Antiguo 18-08-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Como apunte, siempre que te salga este error, se trata del mismo problema algún objeto que utilizas sin crearlo previamente. Aqui tienes otra forma sencilla de manipular forms sin tener que utilizar una variable:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  With TForm2.Create(nil) Do   //aquí creas el objeto
  Try
     ShowModal;  //aquí lo usas (en este caso solo lo muestras)
  finally
     free;  // Y aquí lo liberas cuando ya lo usaste
  end;
end;
__________________
AKA "El animalito" ||Cordobés a mucha honra||
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
Access violation at address ... in module 'RLINK32.DLL' FelipeDiaz Varios 18 26-03-2016 21:39:00
Error Access violation at address 00404CE8 in module bothy Varios 32 20-03-2010 23:32:07
Access violation at address 0CEB291C in module 'BORdbk70.dll'. Oxa78 Varios 3 13-03-2007 18:50:56
Problema con Quick report 'Access Violation at address 00575B9B in module' danielcordovahe Varios 3 13-05-2005 00:51:08
error 'Access violation at address 0053CF79 in module project1' Renees Varios 3 15-03-2005 17:17:37


La franja horaria es GMT +2. Ahora son las 19:10:01.


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