Delphi 10.4.2使用传统代码提示方案(auto complete)(转)

Delphi 10.4重点是实现了LSP,但现在最新的10.4.2还是不成熟,无法满足日常需要,不过没关系,可以设置为原有的方案,如下图:

具体操作:

Tools->Options->Editor->language->Code Insight:

Code insight manager选择Delphi(Classic Code Insight)

取消Tooltip symbol insight

取消Error insight

Save

现在就改回了原来的代码提示方案,好消息是已经进入内测的10.4.2,重点还是增加与改进LSP的功能,坏消息是不确定能否达到实用状态,只能等发布后实际用下才能知道,不过从内测的说明中可以看到,真是增加与改进了不少功能。

Code Insight(LSP)改进

RAD Studio语言服务器协议(LSP)支持(在10.4中为Delphi和10.3.x版本中为C ++引入)在此版本中得到了显着扩展,提供了更好,更快和更可靠的代码洞察,包括代码完成,参数完成,符号信息等。

与以前的版本相比,在10.4.2中LSP为Delphi的错误洞察添加了许多新功能:编辑器现在为提示和警告以及错误显示彩色下划线,这意味着您可以在代码编辑器中看到潜在的重要问题,编辑器状态栏中当前文件的错误、警告和提示状态的摘要;编辑器中的错误、警告和提示的指示符,使滚动代码时更容易发现问题;以及几种突出显示问题代码的新方法,使查看有问题的代码更加容易。

unit子句中的代码完成也有了显著的改进。Projects视图显示LSP服务器的当前状态,使您可以查看它何时解析以及何时准备就绪;对参数完成的改进,包括显示XMLDoc;改进了ctrl单击导航对代码的理解,包括能够ctrl单击“继承的(inherited)”关键字,从而使导航更加健壮和更具特色;以及其他一些编辑器功能,例如在方法声明和实现之间移动的ctrl-shift / up / down,已将其实现移动到LSP服务器。对于通用方法和类,还提供了改进,以改善工具提示,并更好地支持将Code Insight与程序包一起使用或在使用程序包的代码中使用,等等。

对于C ++,代码完成交互已进行了重大修订。已经实现了一些重要的质量改进,解决了国际字符,索引等问题,并在配置良好的C ++项目中提供了可靠的代码完成功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一个简单的 Delphi 10.4.2 安卓线程实例代码: ```delphi unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls; type TMyThread = class(TThread) private FLabel: TLabel; FValue: Integer; public constructor Create(ALabel: TLabel; AValue: Integer); procedure Execute; override; property Value: Integer read FValue; end; TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private FThread: TMyThread; public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} constructor TMyThread.Create(ALabel: TLabel; AValue: Integer); begin inherited Create(True); FLabel := ALabel; FValue := AValue; end; procedure TMyThread.Execute; var I: Integer; begin for I := 1 to FValue do begin Sleep(1000); // 模拟一些耗时的操作 Synchronize( procedure begin FLabel.Text := Format('已完成 %d 秒', [I]); end ); end; end; procedure TForm1.Button1Click(Sender: TObject); begin FThread := TMyThread.Create(Label1, 10); FThread.Start; end; end. ``` 这段代码中,我们定义了一个 `TMyThread` 类,它继承自 `TThread`。在 `TMyThread` 类中,我们定义了一个 `Value` 属性,用于存储要执行的操作次数。在 `Execute` 方法中,我们使用 `for` 循环模拟一些耗时的操作,并通过 `Synchronize` 方法更新 UI 界面。在主界面中,当用户点击 `Button1` 按钮时,我们创建了一个 `TMyThread` 对象,并调用 `Start` 方法启动线程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈(GuoGuo)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值