Compatibilidade com Delphi 10.4 — Erros OnReceiveData e OnSendData
Descrição
Ao compilar o projeto utilizando Delphi 10.4 Sydney ocorrem os seguintes erros:
[dcc32 Error] RESTRequest4D.Request.Client.pas(346): E2003 Undeclared identifier: 'OnReceiveData'
[dcc32 Error] RESTRequest4D.Request.Client.pas(346): E2035 Not enough actual parameters
[dcc32 Error] RESTRequest4D.Request.Client.pas(347): E2003 Undeclared identifier: 'OnSendData'
[dcc32 Error] RESTRequest4D.Request.Client.pas(347): E2035 Not enough actual parameters
Trecho do código:
FRESTClient.OnReceiveData := DoReceiveProgress;
FRESTClient.OnSendData := DoSendProgress;
Ambiente
Delphi: RAD Studio 10.4 Sydney
Plataforma: Win32
Biblioteca: RESTRequest4D
Sistema Operacional: Windows 10
Comportamento esperado
A biblioteca deveria compilar normalmente no Delphi 10.4, ou possuir tratamento condicional para versões onde os eventos OnReceiveData e OnSendData não estão disponíveis ou possuem assinatura diferente.
Sugestão de correção
Adicionar diretiva de compilação para versões mais novas do Delphi:
{$IF CompilerVersion > 34}
FRESTClient.OnReceiveData := DoReceiveProgress;
FRESTClient.OnSendData := DoSendProgress;
{$ENDIF}
O Delphi 10.4 utiliza:
CompilerVersion = 34
Assim o código continuará funcionando em versões mais recentes sem quebrar a compatibilidade com o Delphi 10.4.
Observações
O problema parece estar relacionado às diferenças de implementação do TRESTClient/TNetHTTPClient entre as versões do Delphi.
Obrigado pelo excelente projeto.
Compatibilidade com Delphi 10.4 — Erros OnReceiveData e OnSendData
Descrição
Ao compilar o projeto utilizando Delphi 10.4 Sydney ocorrem os seguintes erros:
[dcc32 Error] RESTRequest4D.Request.Client.pas(346): E2003 Undeclared identifier: 'OnReceiveData'
[dcc32 Error] RESTRequest4D.Request.Client.pas(346): E2035 Not enough actual parameters
[dcc32 Error] RESTRequest4D.Request.Client.pas(347): E2003 Undeclared identifier: 'OnSendData'
[dcc32 Error] RESTRequest4D.Request.Client.pas(347): E2035 Not enough actual parameters
Trecho do código:
FRESTClient.OnReceiveData := DoReceiveProgress;
FRESTClient.OnSendData := DoSendProgress;
Ambiente
Delphi: RAD Studio 10.4 Sydney
Plataforma: Win32
Biblioteca: RESTRequest4D
Sistema Operacional: Windows 10
Comportamento esperado
A biblioteca deveria compilar normalmente no Delphi 10.4, ou possuir tratamento condicional para versões onde os eventos OnReceiveData e OnSendData não estão disponíveis ou possuem assinatura diferente.
Sugestão de correção
Adicionar diretiva de compilação para versões mais novas do Delphi:
{$IF CompilerVersion > 34}
FRESTClient.OnReceiveData := DoReceiveProgress;
FRESTClient.OnSendData := DoSendProgress;
{$ENDIF}
O Delphi 10.4 utiliza:
CompilerVersion = 34
Assim o código continuará funcionando em versões mais recentes sem quebrar a compatibilidade com o Delphi 10.4.
Observações
O problema parece estar relacionado às diferenças de implementação do TRESTClient/TNetHTTPClient entre as versões do Delphi.
Obrigado pelo excelente projeto.