0

SynEdit コードをコンパイルしようとしていました。次に、E2037 および E2065 に関連するいくつかのエラーが発生しました。

これがコードです。(コードの定義部分は数千行あります。関連する行のみをここに貼り付けました。)

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;

次のエラーが発生しました。

[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'

以前の宣言と後の宣言の間に違いは見つかりません。私はそれを理解していません。

4

1 に答える 1

2
  1. githubから最新バージョンを入手してください。XE8 をサポートしています。
  2. source/SynEdit.inc ファイルを開き、以下を追加します。
// 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. パッケージを再構築します。
于 2016-03-01T08:36:27.193 に答える