delphisynedit无法识别列表中的所有关键字(Python)

2024-10-02 12:33:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我在delphixe6应用程序中使用存储库中的syneditr117。 我想强调一下Python代码。在

为此,我在表单上放置了一个SynEdit组件。 此外,我还添加了SynPythonSyn组件。 我已经通过Objectinspector把它们连接起来了。在

现在我可以突出显示一些Python关键字。 搜索了几个小时后,我打开了源文件synhighterpython.pas 包含在SynEdit包中的synzip。在

有一个部分包含python的所有关键字:

 // List of keywords
  KEYWORDCOUNT = 29;
  KEYWORDS: array [1..KEYWORDCOUNT] of UnicodeString =
    (
    'and',
    'assert',
    'break',
    'class',
    'continue',
    'def',
    'del',
    'elif',
    'else',
    'except',
    'exec',
    'finally',
    'for',
    'from',
    'global',
    'if',
    'import',
    'in',
    'is',
    'lambda',
    'not',
    'or',
    'pass',
    'print',
    'raise',
    'return',
    'try',
    'while',
    'yield'
    ); 

我的问题是,“exec”是最后一个突出显示的关键字。 列表中“exec”后面的所有其他内容将不会突出显示。在

有人知道什么会导致这次失败吗?在

谢谢你!在


Tags: of代码应用程序表单组件关键字exec小时
1条回答
网友
1楼 · 发布于 2024-10-02 12:33:13

我可以让语法高亮显示工作。似乎填充在synhighterpython.pas在一个列表中包含关键字和非关键字。然后它假设组合的列表被排序。在

所以问题出现在函数IdentKind中(可能:PWideChar)它使用FKeywords.查找(s,i)搜索匹配的关键字。“按定义“查找”只适用于已排序的列表。我的解决方法是修改这行代码,使用indexof函数进行搜索,如下所示。在

我:=FKeywords.IndexOf(s)

The search functions are documented on this link

相关问题 更多 >

    热门问题