andyxt
Anmeldungsdatum: 01.09.2005 Beiträge: 2
|
Verfasst am: 25. Apr 2006 22:33 Titel: EAccessViolation-Fehler beim Programm |
|
|
Hi,
ich wollte ein Programm Reaktionstest machen. Habe dort allerdings ein Problem. Folgender Fehler tritt auf wenn ich das Programm starten will:
Im Projekt pMain ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00449218 in Modul 'pMain.exe'. Lesen von Adresse 00000238'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fprtsetzen.
Ich weiß echt nicht mehr weiter. Was soll ich bloß tun?
Hier ist der Quelltext:
1.Unit:
Zitat: | unit mReaktion1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, mAmpel1;
type
TFrmMain = class(TForm)
BtTestreihe: TButton;
BtReaktionstest: TButton;
LbReaktionszeit: TLabel;
EdReaktionszeit: TEdit;
TiReaktion: TTimer;
procedure BtTestreiheClick(Sender: TObject);
procedure BtReaktionstestClick(Sender: TObject);
procedure TiReaktionTimer(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
Ampel: TAmpel;
Start, Stop: Longint;{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
FrmMain: TFrmMain;
implementation
{$R *.dfm}
procedure TFrmMain.BtTestreiheClick(Sender: TObject);
begin
Ampel := TAmpel.Create (FrmMain);
Ampel.Show;
Ampel.Rot;
BtReaktionstest.Enabled := true;
end;
procedure TFrmMain.BtReaktionstestClick(Sender: TObject);
begin
EDReaktionszeit.Text := '';
Ampel.Rot;
TiReaktion.Interval := 2000 + Random(3000);
TiReaktion.Enabled := true;
end;
procedure TFrmMain.TiReaktionTimer(Sender: TObject);
begin
Ampel.Gruen;
Start := GetTickCount;
TiReaktion.Enabled := True;
end;
procedure TFrmMain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Stop := GetTickCount;
if Ampel.IstGruen
then EDReaktionszeit.Text := ' ' + InttoStr(Stop-Start) + 'ms';
end;
end. |
2.Unit:
Zitat: | unit mAmpel1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TAmpel = class(TForm)
ImBild: TImage;
private
zGruen: Boolean;{ Private-Deklarationen }
public
procedure Rot;
procedure Gruen;
function IstGruen: Boolean;{ Public-Deklarationen }
end;
var
Ampel: TAmpel;
implementation
{$R *.dfm}
procedure TAmpel.Rot;
begin
with Canvas do begin
Pen.Width := 3;
Brush.Color := clRed;
Ellipse (20,20,140,140);
Brush.Color := clGray;
Ellipse (20,160,140,280);
end;
zGruen := False
end;
procedure TAmpel.Gruen;
begin
with Canvas do begin
Pen.Width := 3;
Brush.Color := clLime;
Ellipse (20,160,140,280);
Brush.Color := clGray;
Ellipse (20,20,140,140);
end;
zGruen := true;
end;
function TAmpel.IstGruen: Boolean;
begin
IstGruen := zGruen
end;
end.
|
Ich danke schon mal im Voraus. |
|