Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Access violation auf Timer1, Warum? (https://www.delphipraxis.net/125164-access-violation-auf-timer1-warum.html)

Eljey 1. Dez 2008 20:53


Access violation auf Timer1, Warum?
 
Delphi-Quellcode:
 If laufen then
 begin
  SetForegroundWindow(archlordwnd);
  Timer1.Enabled:=false;
  messwerte[index].laufzeit:=zeit;
  Timer1.Enabled:=true;
  ShowMessage(InttoStr(zeit));
  zeit:=0;
  laufen:=false;
 end;
Ich krieg in der Zeile
Delphi-Quellcode:
Timer1.Enabled:=true;
immer die Fehlermeldung Access violation.

mkinzler 1. Dez 2008 20:55

Re: Access violation auf Timer1, Warum?
 
Anhand dieses kleinen Codesegments kann man die nicht helfen

Meflin 1. Dez 2008 20:55

Re: Access violation auf Timer1, Warum?
 
der Fehler bezieht sich vermutlich auf die Zeile davor, nämlich
Delphi-Quellcode:
messwerte[index].laufzeit:=zeit;
Und da fällt schonmal auf, dass du index nicht als Variablennamen verwenden solltest, da es ein reservierter Bezeichner ist. Und vermutlich gibt es den Index im array messwerte nicht, was den Fehler erzeugt ;)

Eljey 1. Dez 2008 20:59

Re: Access violation auf Timer1, Warum?
 
ganzer code: (Der Fehler kommt genau in der Timer Zeile, hab ich durch den Debugger laufen lassen)
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 i:=0;
 laufen:=true;
 zeit:=0;
 archlordwnd:=FindWindow(nil,'Archlord');
 If archlordwnd<>0 Then
  ShowMessage('gefunden')
 Else
  close;
end;

procedure TForm1.b_kalClick(Sender: TObject);
begin
  If i<=10 Then
  begin
  SetForegroundWindow(archlordwnd);
  Timer1.Interval:=100;
  sleep(100);
  sendZielSuchen;
  Timer1.Enabled:=true;
  sendZielAngreifen;
  end;
end;

procedure TForm1.b_stopClick(Sender: TObject);
begin
 If laufen then
 begin
  SetForegroundWindow(archlordwnd);
  Timer1.Enabled:=false;
  messwerte[i].laufzeit:=zeit;
  Timer1.Enabled:=true;
  ShowMessage(InttoStr(zeit));
  zeit:=0;
  laufen:=false;
 end;
end;

procedure TForm1.StartClick(Sender: TObject);
begin
 Timer1.Interval:=StrtoInt(LabeledEdit1.Text);
 Timer1.Enabled:=true;
end;

procedure TForm1.Timer1StopTimer(Sender: TObject);
begin

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
zeit:=zeit+1;
end;

toms 1. Dez 2008 21:01

Re: Access violation auf Timer1, Warum?
 
Kommt der Fehler auch, wenn du " messwerte[i].laufzeit:=zeit;" ausklammerst?

Meflin 1. Dez 2008 21:02

Re: Access violation auf Timer1, Warum?
 
Aha, und wo wird dein messwerte-array initialisiert, wo bekommt i seinen Wert?!

Eljey 1. Dez 2008 21:03

Re: Access violation auf Timer1, Warum?
 
nein, hast recht, hab i am anfang auf null gesetzt, das array fängt erst bei 1 an. Danke für die Hilfe, das nächste mal werde ich besser schauen :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz