Lindsay D
Lindsay D

Reputation: 1

E2037 error in Delphi 10

I was trying to compile SynEdit code. Then I got several errors related to E2037 and E2065.

Here is the code. (The definition part of the code is thousands of lines long. I only pasted related lines here.)

TCustomSynEdit = class(TCustomControl)
  private   
    FAdditionalWordBreakChars: TSysCharSet;
    FAdditionalIdentChars: TSysCharSet;

    procedure SetAdditionalIdentChars(const Value: TSysCharSet);
    procedure SetAdditionalWordBreakChars(const Value: TSysCharSet);
  protected

  public
    property AdditionalIdentChars: TSysCharSet read FAdditionalIdentChars write SetAdditionalIdentChars;
    property AdditionalWordBreakChars: TSysCharSet read FAdditionalWordBreakChars write SetAdditionalWordBreakChars;
  published
    property Cursor default crIBeam;
  end;



procedure TCustomSynEdit.SetAdditionalIdentChars(const Value: TSysCharSet);
begin
  FAdditionalIdentChars := Value;
end;

procedure TCustomSynEdit.SetAdditionalWordBreakChars(const Value: TSysCharSet);
begin
  FAdditionalWordBreakChars := Value;
end;

I got the following errors:

[dcc32 Error] SynEdit.pas(8099): E2037 Declaration of 'SetAdditionalIdentChars' differs from previous declaration
[dcc32 Error] SynEdit.pas(8101): E2003 Undeclared identifier: 'FAdditionalIdentChars'
[dcc32 Error] SynEdit.pas(8104): E2037 Declaration of 'SetAdditionalWordBreakChars' differs from previous declaration
[dcc32 Error] SynEdit.pas(8106): E2003 Undeclared identifier: 'FAdditionalWordBreakChars'
[dcc32 Error] SynEdit.pas(828): E2065 Unsatisfied forward or external declaration: 'TCustomSynEdit.SetAdditionalIdentChars'
[dcc32 Error] SynEdit.pas(829): E2065 Unsatisfied forward or external declaration: 'TCustomSynEdit.SetAdditionalWordBreakChars'

I can't find any difference between previous and later declarations. I just don't get it.

Upvotes: 0

Views: 1142

Answers (1)

kami
kami

Reputation: 1458

  1. Get latest version from github, it supports XE8
  2. Open source/SynEdit.inc file and add the following:
// this is existing lines
{ VERXXX to SYN_COMPILERX, SYN_DELPHIX and SYN_CPPBX mappings }
{---------------------------}
// begin of new block
{$IFDEF VER300}
  {$DEFINE SYN_COMPILER_22}
  {$DEFINE SYN_DELPHI}
  {$DEFINE SYN_DELPHI_XE8}
{$ENDIF}
// end of new block 
{$IFDEF VER290}
.......
  1. Rebuild package.

Upvotes: 2

Related Questions