Fórum Erro de exception class EAccessViolation #553966
13/05/2016
0
'Project1.exe raised exception class EAccessViolation with messagem 'Access violation at address 0044F086 in module Project.exe'
Já verifiquei que tal erro possivelmente ocorre quando o sistema está tentando acessar uma determinada região da memória ou objeto que ainda não foi criado na aplicação, mas como é um exercício bem simples não consigo ver o óbvio. debbugando o erro ocorre logo na primeira linha de comando da procedure do botão inserido na aplicação, segue o código abaixo -
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMaratona = class
quilometros, corredores: integer;
function DistanciaporCorredor: integer;
end;
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Maratona1: TMaratona;
implementation
{$R *.dfm}
function TMaratona.DistanciaporCorredor: integer;
begin
result:= (quilometros div corredores);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Maratona1.quilometros := StrToint(Edit1.Text);
Maratona1.corredores:= StrToInt(Edit2.Text);
Edit3.Text:= IntToStr(Maratona1.DistanciaporCorredor)
end;
end.obs - já tentei jogar os valores direto por exemplo -
Maratona1.quilometros := 200;
e mesmo assim o problema persiste
Wesley
Curtir tópico
+ 0Post mais votado
16/05/2016
procedure TForm1.Button1Click(Sender: TObject);
begin
Maratona1 := TMaratona.Create;
try
Maratona1.quilometros := StrToint(Edit1.Text);
Maratona1.corredores:= StrToInt(Edit2.Text);
Edit3.Text:= IntToStr(Maratona1.DistanciaporCorredor);
finally
Maratona1.Destroy;
end;
Rafael Bosco
Gostei + 2
Mais Posts
14/05/2016
Raimundo Pereira
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TMaratona = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function DistanciaporCorredor: integer;
end;
var
Maratona: TMaratona;
quilometros,corredores:integer;
implementation
{$R *.dfm}
function TMaratona.DistanciaporCorredor: integer;
begin
result:= (quilometros div corredores);
end;
procedure TMaratona.Button1Click(Sender: TObject);
begin
quilometros := StrToint(Edit1.Text);
corredores:= StrToInt(Edit2.Text);
Edit3.Text:= IntToStr(DistanciaporCorredor);
end;
end.
Resultado do Código
Resultado
Gostei + 1
17/05/2016
Wesley
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)