initialization
  HTTP := TIDHTTP.Create(nil);
  FTP := TNMFTP.Create(nil);
  RetTest := TTest.Create;
  GetDir(0, Path);
  FtpData := TIniFile.Create(Path + '\FtpCfg.ini');
  while True do
  begin
    FTP.Host := FtpData.ReadString('FTP配置信息', 'IP地址', 'LocalHost');
    FTP.Port := FtpData.ReadInteger('FTP配置信息', '端口', 21);
    FTP.UserID := FtpData.ReadString('FTP配置信息', '用户名', 'Anonymous');
    FTP.Password := FtpData.ReadString('FTP配置信息', '密码', '');
    FTP.TimeOut := 5000;
    try
      FTP.Connect;
      FTP.OnFailure := RetTest.AFailure;
      Break;
    except
      MessageBox(FTP.Handle, PChar('FTP连接失败,请配置FTP设置'), PChar(str_PrjEasyStar), MB_OK + MB_ICONSTOP);
      FtpCfgForm := TFtpCfgForm.Create(nil);
      try
        FtpCfgForm.ShowModal;
      finally
        FtpCfgForm.Free;
      end;
    end;
  end;
finalization
  HTTP.Free;
  FTP.Free;
  FtpData.Free;
  RetTest.Free;
end.
1 这段程序作什么用
2 initialization起什么作用
3 这段程序在什么状态下会运行