Hallo ich bin gerade dabei ein Programm zu schreiben und eigentlich ist alles korrekt. Ich bin Programmzeile für Programmzeile mit Einzelanweisungen durchgegangen und nirgends kommt ein fehler. Erst nachdem die Procedure schon abgeschlossen ist tritt ein EAccessViolation auf: Meldung: 'Zugriffsverletzung bei Adresse 004032D5 in Modul AUfgabe2.exe. Lesen von Adresse 00001544. Prozess wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.
Der Fehler tritt genau dann auf wenn ich einen Button anklicke, der wiederum einige Objekte auf der Form löscht(freigibt) sich selber auch !!
Delphi-Quellcode:
procedure TReihenfolge.BedDelete(Sender: TObject);
var nummer:string;i:integer; lbl : TLabel; pic1,pic2:Timage; bitbut:Tbitbtn;
begin
nummer:=(Tbitbtn(sender).name[4]) ;
bed1.Delete(strtoint(nummer)-1);// .componentindex-13);
bed2.Delete(strtoint(nummer)-1);//(Tbitbtn(sender).componentindex-13);
lbl := FindComponent('tex'+(nummer)) as TLabel ;
lbl.free;
pic1 := FindComponent('bi1'+(nummer)) as TImage ;
pic1.free;
pic2 := FindComponent('bi2'+(nummer)) as TImage ;
pic2.free;
Tbitbtn(sender).free;
if (anzbed)>strtoint(nummer) then
begin
for i:=(strtoint(nummer)+1) to (anzbed) do
begin
lbl := FindComponent('tex'+inttostr(i)) as TLabel ;
lbl.name:='tex'+inttostr(i-1);
pic1 := FindComponent('bi1'+inttostr(i)) as TImage ;
pic1.name:='bi1'+inttostr(i-1);
pic2 := FindComponent('bi2'+inttostr(i)) as TImage ;
pic2.name:='bi2'+inttostr(i-1);
bitbut := FindComponent('but'+inttostr(i)) as TBitbtn ;
bitbut.name:='but'+inttostr(i-1);
end;
end;
anzbed:= anzbed-1;
end;
Könnt ihr mir irgendwie helfen ich hab alles versucht aber ich kann den Fehler nicht finde..
Mfg Andre