Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

Re: invalid poiter und access violation

  Alt 15. Okt 2009, 14:48
hallo tkone,

zunächst, in der Routine ist mir nichts aufgefallen, was "böse" wäre. aber schau Dir das alles noch einmal genau an:
Delphi-Quellcode:
lokal_max:=strtoint(edit2.Text);
edit1.text:=inttostr(lokal_max);
Da empfehle ich:
Delphi-Quellcode:
lokal_max:=strtoint(edit2.Text);
edit1.Text:=edit2.Text;
....
oder so
...
edit1.Text:=edit2.Text;
lokal_max:=strtoint(edit2.Text);
if lokal_max>=schuss_max then
begin .........
dann spart man sich ein paar prozessorhundertstel.

Was ist mit dem Debugger?
Hast Du dir einmal im Verlauf der Verarbeitung MUSTER (sollte ein Pointer sein) und die Inhalte/Adressen von MUSTER angeschaut?
Schau mal ob sich length(MUSTER) verändert ("Funktionsaufrufe" gestatten nicht vergessen!)

Da Du den Code geerbt hast kann ich verstehen, daß er noch so aussieht. Aber wenn Du jetzt nach Fehlern suchst, und die gibt es ja , renovier ihn - etwas leserlicher und aussagekräftige Variablennamen - das zahlt sich auf jeden Fall aus.

Was mir noch aufgefallen ist:
Delphi-Quellcode:
// Mustergrössen bestimmmen
M_size:=F_size-headerL;
schuss_Byte:=(M_Size)/(plat_Byte); //<<<<<< Fehler!!!!
schuss:= schuss_byte;
schuss_max:= schuss_byte;
Das Ergebnis von M_Size/Plat_Byte ist KEIN Integer!
(schuss_Byte:=M_Size div plat_Byte; ist besser)
Da sollte der Compiler aber sehr meckern! hast du vielleicht alle Prüfungen abgeschaltet die es gibt?

Gruß
K-H
  Mit Zitat antworten Zitat