Witam.
Na swoim domowym serwerze założyłem ftp.
Dwa kolejne komputery mają korzystać z pliku zamieszczonego na tym właśnie serwerze.
Chciałem zrobić to bardzo prosto mianowicie:

  1. Podczas uruchamiania programu pobieram plik z serwera.
  2. W momencie zatwierdzenia jakichkolwiek zmian sprawdza czy plik na serwerze nie jest nowszy od tego, który pobrałem jeśli jest nowszy pobiera go i zmiany zachowuje w nim.
  3. Wysyła plik na serwer.

W sumie bardzo proste jednak powstaje mi problem w momencie gdy próbuję skasować ten plik
Np.:

procedure pobierz;
var
sciezka, plik: string;
begin
IdFTP1.connect();
if fileexists(plik)
then
  begin
  deletefile(sciezka + plik);
  IdFTP1.Get(plik, sciezka + plik);
  IdFTP1.Disconnect;
  end
else
  begin
  IdFTP1.Get(plik, sciezka + plik);
  IdFTP1.Disconnect;
  end;

  end;

Problem pojawia się podczas usunięcia pliku. System nie potrafi go usunąć ponieważ plik jest aktualnie używany przez mój program. Wszystko dałem w OnCreate formy głównej programu. Plik, z którego korzystam znajduje się na kolejnej formie jednak podczas ładowania programu jest on również ładowany...

Próbowałem już zwolnić formę z pamięci dająć po prostu

Form1.Free;

Jednak i to nie zdawało rezultatu.
Jak można zwolnić sam plik aby nie ładował go póki nie zostanie on pobrany z serwera.

Pozdrawiam