Compiler fint, men masser af fejl?

Tags:    delphi

Hej,

Jeg er i gang med et lille vendespil.
Det compiler uden det mindste brok, men jeg får flere fejl under kørslen. Bl.a. en abstract error.

Fold kodeboks ind/udKode 


Jeg ville gerne ligge det hele op inkl. billeder og andre filer, men det kan jeg desværre ikke via skolens net.

Håber i kan hjælpe mig.

Fejl koder jeg får:

Access violation at address 00004010 in module 'Project1.exe'. Read of address 00004010.

Access violation at address 00403349 in module 'Project1.exe'. Read of address 00000033.

Access violation at address 00403349 in module 'Project1.exe'. Read of address 00003A98.

Access violation at address 00403342 in module 'Project1.exe'. Read of address FFFFFFD1.

Access violation at address 00403342 in module 'Project1.exe'. Read of address FFFFFFD0.

Access violation at address 00403340 in module 'Project1.exe'. Read of address 00000001.

Access violation at address 00403350 in module 'Project1.exe'. Read of address 00153000.

Abstract Error.

De kommer ikke alle hver gang, og det er tilfældigt hvornår i spillet de kommer. Den mest hyppige er:

Access violation at address 00403349 in module 'Project1.exe'. Read of address 00003A98.

M.v.h. Johnny.

På forhånd tak!



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Access violation opstår ofte hvis du prøver at ændre i et objekt der ikke eksisterer.

Fold kodeboks ind/udKode 


Der er Sender ikke oprettet som et TImage. Måske er det derfor.

Tror det skal rettes til noget i den her stil

Fold kodeboks ind/udKode 




Det er givet vis pga. at du tilgår objecter som ikke er assigned. I og med at du free'er dine objecter, kan du ikke være sikker på at de er valide i dine Timer procedurer. Derfor bør du inden du bruger dem checke om de er valide. Det kan du ved:
if Assigned(NewObj) then
(newobj as TImage).Picture.LoadFromFile('tema\\1\\billeder\\bag.bmp');

Derudover er det en god ide at bruge FreeAndNil istedet for Free, bl.a. fordi at Free kræver at objectet eksisterer men også at Free blot frigiver hukommelsen, hvorimod FreeAndNil frigiver hukommelse og initialisere objectet til NIL.




Hej Jonas,

Tak for svaret, men dog kan jeg ikke helt få det til at hænge sammen.

Hvorfor mener du at sender ikke er created?

Fold kodeboks ind/udKode 


Man burde altså ikke kunne komme ind i MyOnClick, med mindre at sender er created?

Men i så fald kan det være et problem med min newobj og lastobj?

Eller er der noget andet jeg har overset?

M.v.h. Johnny :)



t