【问题标题】:CTRL + Click not workingCTRL + 单击不起作用
【发布时间】:2011-02-18 12:41:21
【问题描述】:

代码浏览不适用于我的项目。我将搜索路径设置为我正在使用的所有源单元。我还删除了.local.identcache 文件。我的项目正在编译没有问题。我该怎么做才能使ctrl + click 工作。

谢谢

【问题讨论】:

  • David H. 的回答是正确的,但您应该大致了解它。您的其中一个单元中有一些复杂的语法不受支持。我们大多数人只是学会在没有 Ctrl+Click 的情况下生活,因为要恢复它并不容易。

标签: delphi ide delphi-2007


【解决方案1】:

当您有一个声明内联记录的类时,我知道会发生一个错误,如下所示:

TMyClass = class
private
  FData: record
    MyData: Integer;
  end;
end;

如果您有任何这样的代码,那么 IDE 的许多代码洞察/完成/任何功能都会停止工作。这个故障可以追溯到 Delphi 6 甚至更远。

我用一个类私有类型声明来修复它:

TMyClass = class
private
  type 
    TData = record
      MyData: Integer;
    end;
private
  FData: TData;
end;

但如果该语法在 D2007 中不可用,那么您需要在类之外声明记录类型。

我发现另一个可能混淆 IDE 的因素是您是否使用了大量条件语句($IFDEF 等)。

最后,我建议安装 Andreas Hausladen 的 IDEFixPack,它确实可以改善 IDE 行为。

当然,您的问题可能是由其他原因引起的,但由于无法对您的实际代码进行试验,我们不得不在一定程度上进行猜测。

【讨论】:

  • 感谢您的回复,但我的代码中没有这样的声明
  • 您的代码的某些方面可能会混淆 IDE。尝试删除它的一部分,删除单元,直到你隔离一些触发行为的代码。
  • 是的,目前我正在这样做,再次感谢您的建议
  • +1。请注意,错误洞察分析器无法处理大量语法案例。仅仅因为 OP 没有这个,并不意味着没有另一个。此外,重用一个通用的标识符名称,类名,似乎可以实现这一点。
  • @Warren 谢谢。你说得对,任何太时髦的东西都会让 IDE 崩溃。只是这是我今天要处理的那个,所以它在我的脑海中!!
【解决方案2】:

当您使用条件定义来控制要编译的代码时,Ctrl-Click 很容易混淆:

{$IFDEF DEBUG}
...
{$ENDIF}

通常它需要几个,但有时其中一个,尤其是在界面部分,足以让 Ctrl-Click 陷入混乱。

我看到 Ctrl-Click 不起作用的另一次是当您使用项目组并且您在编辑器中拥有的单元不属于项目组中当前活动的项目时。

【讨论】:

    【解决方案3】:

    在我的模块(在 Delphi XE3 中)中浏览代码时遇到了同样的问题。查找您的源代码并找到这样的结构:

    procedure procName;
    begin
      if ... then
      begin
         ...
      end else
    end;
    

    注意最后一个“else”。 编译器理解此代码,但代码浏览不理解。 需要插入“;”在“else”之后或删除“else”。 在更正源代码之后,代码浏览器正在工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 2016-08-18
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多