gpt4 book ai didi

delphi - GExpert 的 Replace Components Expert 不会替换表单文件 (*.dfm) 中的文本

转载 作者:行者123 更新时间:2023-12-02 08:48:35 25 4
gpt4 key购买 nike

我正在使用 Delphi 2010 和 GExperts 稳定版 1.35

我正在测试“替换组件”专家。

我添加了一个主表单和一个辅助表单。每个都有三个 TEdit。

我使用替换组件专家将所有 TEdit 替换为 TRzEdit。我选中替换项目所有表单上的所有组件。

它有效,它取代了它们全部。但是,它不会对 DFM 文件执行任何操作。我如何让它替换这些实例。

如果我保存、编译或重建,我会收到错误。

如果我在替换后尝试将表单视为文本,则会收到错误。

有人可以向我解释一下实现此功能的步骤吗?

谢谢

最佳答案

我刚刚使用 Delphi XE 和 GExperts 1.35 进行了尝试,即使在执行一次“替换所选内容”后,它现在确实会崩溃。 (过去运行良好)。

看来是使用隐藏菜单Project |在替换组件之后清除单元缓存,然后在尝试任何保存/编译/查看为文本...之前执行完整构建解决了问题。

我认为这个菜单是通过 cnPack 出现的。我没有,也不能保证,但您可以通过在已安装的软件包之一中添加以下单元来轻松地自己完成:

unit FGEnableHiddenMenus;

interface

procedure Register;

implementation

uses
Classes, Forms, Menus;

procedure Register;
var
Comp: TComponent;
begin
//Make a hidden menu item visible
Comp := Application.MainForm.FindComponent('ProjectClearUnitCacheItem');
if Comp is TMenuItem then
TMenuItem(Comp).Visible := True;
end;

end.

来源:Brian Long's old goodies

更新:在我们工作的主要项目中,我不得不用 TDBEdit 替换几个 TEdit,这个技巧奏效了。
但在具有 3 个表单的新项目中,在最后一个表单(相同环境)上写入/提交/保存更改始终失败。
仅供引用,我尝试过使用或不使用 DDevExtensions 2.5 和 IDEFixPack 4.6.1

更新2:按照 Ulrich 的建议去 GExperts 论坛进行挖掘,终于找到了可能的解释。新属性 Touch 不喜欢在源被破坏(导致 AV)时从一个组件复制到另一个组件。
建议的解决方法是在专家设置中执行双向映射以禁用此属性的复制:

enter image description here

关于delphi - GExpert 的 Replace Components Expert 不会替换表单文件 (*.dfm) 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com