Skip to content

Compatibilidade com Delphi 10.4 — Erros OnReceiveData e OnSendData #272

@JSnowSH

Description

@JSnowSH

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions