I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
var BitmapMinPict: TBitmap; begin BitmapMinPict := TBitmap.Create; Hey....vent lidt.. Disse to linier før LoadFromFile gav fejlen. Selv om jeg ikke kan se hvorfor... IF Assigned(BitmapMinPict) THEN BitmapMinPict.Free;
Det virker, fejlen fik jeg ikke identificeret. Men ved at fjerne de to linier: IF Assigned(BitmapMinPict) THEN BitmapMinPict.Free; i starten af mit program fik jeg ingen fejl i min efterfølgende LoadFromFile ??????
Får du en EAccessViolation, så skal du altid strax tænke: \"Ikke created object!\"
Fejlen opstår typisk når du tilgår et object, som ikker er created, dvs. oprettet fysisk i hukommelsen og derfor typisk har værdien NIL.
Lad os tage dit program linie for linie:
>var > BitmapMinPict: TBitmap;
Ok, du har nu en variabel (idette tilfælde en object pointer) af typen TBitmap
>begin
Din variabel er her udefineret (unassigned) og har værdien NIL
> BitmapMinPict := TBitmap.Create;
Du reserverer noget hukommelse, nok til en object instans af classen TBitmap, kalder den Create metode, der laver noget \'husholdning\' og sætter tilsidst variablen til at \"pege\" på den reserverede hukommelse.
> IF Assigned(BitmapMinPict)
Hvis variablen peger på et eller andet, dvs. er forskellig fra nil, så...
> THEN BitmapMinPict.Free;
Frigiv den benyttede hukommelse igen. (lidt... uheldigt hvis du spørger mig)
>. >. >. > BitmapMinPict.LoadFromFile(...)
Du kalder her en metode, fra et TBitmap object instans, der skal være placeret på den adresse, som BitmapMinPict peger på. Problemet er her, at BitmapMinPict godt nok peger på noget - nemlig på den adresse, hvor der tidligere lå et object... det er jo bare blevet slettet i mellemtiden. Derfor virker det hvis du fjerner de to linier du omtalte.
EAccessViolation kan iøvrigt ikke skyldes at dit loadfromfile kald ikke kan finde filen pga. manglende backslash (der iøvrigt ikke manglede). Her ville du få en eller anden fileerror.
Mange tak for den fine gennemgang. Det er aldrig for sent at få rystet sine VB-nykker af :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.