нужно сделать get-запрос, а результат сохранить в файл.
А проблема такая:
если делать всё в главной форме - всё работает. Если я процедуру получения страницы запихиваю в отдельный поток - программа крашится, ссылаясь на строку в модуле IdHTTP:
- Код: Выделить всё
- DoRequest(Id_HTTPMethodGet, AURL, nil, AResponseContent, AIgnoreReplies);
Если запускать программу без отладки и попытаться работать с файлом - то будет сообщание что "файл используется". И его размер при этом 0.
Компилятор лазарь, последний на сегодня релиз.
Код программы примерно такой:
- Код: Выделить всё
- unit Unit1;
 {$mode objfpc}{$H+}
 interface
 uses
 Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
 StdCtrls, IdHTTP, IdAuthentication;
 type
 { TUpdateThread }
 TUpdateThread = class(TThread)
 IdHTTP1: TIdHTTP;
 protected
 procedure Execute; override;
 procedure Get();
 end;
 { TForm1 }
 TForm1 = class(TForm)
 Button1: TButton;
 procedure Button1Click(Sender: TObject);
 private
 { private declarations }
 public
 { public declarations }
 end;
 var
 Form1: TForm1;
 myfile: textfile;
 updater:TUpdateThread;
 implementation
 { TForm1 }
 procedure TForm1.Button1Click(Sender: TObject);
 var s:string;
 begin
 updater:=TUpdateThread.Create(True);
 updater.FreeOnTerminate:=True;
 updater.Resume;
 end;
 procedure TUpdateThread.Execute;
 begin
 Get();
 end;
 procedure TUpdateThread.Get();
 var s:string;
 begin
 s:= idHTTP1.Get('http://ya.ru');
 assignfile(myfile, 'upd.xml');
 rewrite(myfile);
 Write(myFile, s);
 closefile(myfile);
 end;
 initialization
 {$I Unit1.lrs}
 end.
Подскажите где косяк....



 натолкнули на правильное решение....
 натолкнули на правильное решение....