Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2011, 18:25   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию [XE] Указать компоненту на событие в Run-time

Доброго времени суток!

Перехожу delphi 7 на delphi XE.

Помимо лулзов несовместимости типов PAnsiChar и PWideChar

Есть вот такой лулз:
Код:
    procedure HttpWork(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    procedure HTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCountMax: Integer);
    procedure HTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);

  public
    procedure IfTerminated;
  end;


implementation

procedure TSelfUpdateThread.GetHttpFile(aFile, aDestDir: string);
var
  http: TIdHTTP;
  sFile: TMemoryStream;
begin
  sFile := TMemoryStream.Create;
  http := TIdHTTP.Create(nil);
  try
    Http.OnWork := HttpWork;
    http.OnWorkBegin := HTTPWorkBegin;
    http.OnWorkEnd := HTTPWorkEnd;
    try
      //StatusMessage(Format(RsUpdate_DownAfile, [ExtractFileName(aFile)]));
      StatusMessage('Загрузка данных...');
      http.Get(aFile, sFile);
      sFile.SaveToFile(aDestDir);
    except
      StatusMessage(Format(RsUpdate_DownFileDailed, [ExtractFileName(aFile)]));
      Terminate;
    end;
  finally
    http.Free;
    sFile.Free;
  end;
end;
Красным отмечен код, который не хочет кушать компилятор:
Код:
[DCC Error] E2009 Incompatible types: 'Parameter lists differ'
В delphi 7 код работает...
Человек_Борща вне форума Ответить с цитированием
Старый 24.09.2011, 19:10   #2
Silver_S
Форумчанин
 
Регистрация: 14.03.2011
Сообщений: 104
По умолчанию

Следуя указанию "Parameter lists differ" сравните список параметров Http.OnWork и HttpWork. Бывает, что меняется var на out и т.п.
Silver_S вне форума Ответить с цитированием
Старый 24.09.2011, 19:56   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Спасибо! Проблему решил. В новых индях все выглядит так:
Код:
    procedure HttpWork(Sender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
    procedure HTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание TImage в Run-time mrbadge Помощь студентам 9 03.02.2011 22:48
Run-time error 13 olimpus Microsoft Office Excel 11 25.12.2010 22:49
Run-Time Check Failure #3 Xe[N]o Общие вопросы C/C++ 2 27.11.2010 09:01
Заполнение cxLookupComboBox в run time fake2 БД в Delphi 0 17.05.2010 08:31
Ошибка Run-Time error 13 DEZuv Microsoft Office Access 0 03.04.2009 12:25