16. december 2000 - 10:28Der er
5 kommentarer og 1 løsning
Free resource
Jeg er ved at lave et mindre Delphi program, men har lidt problemer med at få frigivet alle resourcer. Jeg har 3 forms, hvor jeg laver lidt data access. Og har så til min Afslut menu, kodet; ADOQueryPass.Close; ADOtblPostnumre.Close; ADOtblFirma.Close; ADOQryAntalOrdre.Close; Form2.ADOTable1.Close; Form2.ADOStoredProc1.Close; Form2.ADOOverfoerCommand.Destroy; Form2.ADOTable2.Close; Connection.Close;
Form2.Free; Form3.Free; Form1.Free;
Men alligevel får jeg: Access is denied. The source file may be in use. når jeg forsøger at slette filer, kan heller ikke kompile eller noget! Burde Free ikke nulstile alt???
kan du ikke prøve at være lidt mere specifik? Får du din \'Access is denied\' ude fra Explorer? Og er projektet stadig åbent i Delphi? Jeg har lidt svært ved at se, om det er dine .pas-filer du ikke må slette. Du bliver nok nødt til at komme med lidt flere oplysninger.
Det er min exe (når jeg forsøger at slette den fr afilsystemet!), efter den er blevet kompilet. Jeg får også fejl fra delphi, når jeg forsøger at kompile. Det er helt sikkert fordi jeg ikke får frigivet alle resourcer. Men burde Free ikke gøre jobbet?! (NB! Der er intet instance af programmet i Task manager, efter den er lukket)
Du kan godt slette din .exe hvis du lukker Delphi, ikk\'? Så er det Delphi der stadigvæk låser den. Og så er der da i hvert fald et eller andet der er gået galt. Har du prøvet at lukke programmet med CTRL+F2, så kan det være der problemet ligger.
Hvis du heller ikke kan slette .exe\'n når Delphi er lukket, så er det sandsynlig ADO der låser filen. Jeg er ikke sikker på, hvordan du får ADO til at slippe filen, men en genstart skulle helt sikkert kunne klare det. Men det er selvfølgelig ikke nogen holdbar løsning.
program Designer; {$APPTYPE CONSOLE} uses SysUtils; var F: TextFile; begin AssignFile(F, \'desig.ner\'); Rewrite(F); Writeln(F, \'Dette er en fil med et sært navn\'); CloseFile(F); end;
i dette program bliver alle ressourcer frigivet ved kaldet til CloseFile, men filen eksisterer stadigvæk.
Hmn, nå men et mindre eksperiment ( er nemlig relativ ny i Delphi), og gennemgang af metoder, fandt jeg frem til at et explicit kald til Application.Termintae var min løsning!
tak for hjælpen pstric, jeg gav dig 20 points or hjælpen! Lidt for ulejligheden :)
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.