【问题标题】:How to update the Delphi Object Inspector?如何更新 Delphi 对象检查器?
【发布时间】:2013-01-27 05:37:33
【问题描述】:

继我最近发布的这个问题之后:Can a Component Editor be executed on multiple components?

我为一个新组件创建了一个 ComponentEditor,它在执行时会显示一个 TOpenDialog 来选择一个配置文件。加载文件时,我读取数据并将值复制到调用组件(这是Component,因为这是一个 TComponentEditor)。

根本没有问题,只是对象检查器没有更新以反映新更改的值 - 它仅在单击设计器中的组件时更新。

这似乎没什么大不了的,但我需要对象检查器以某种方式更新自身,以便我可以看到属性已成功更改(无需将焦点切换回控件)。

那么,有没有办法让 Delphi 知道它应该更新/刷新对象检查器?我

【问题讨论】:

    标签: delphi


    【解决方案1】:

    根据需要修改组件后,你的组件编辑器需要调用IDesigner.Modified()方法,例如:

    procedure TMyComponentEditor.ExecuteVerb(Index: Integer);
    var
      Dlg: TOpenDialog;
    begin
      ...
      Dlg := TOpenDialog.Create(nil);
      try
        ...
        if Dlg.Execute then
        begin
          ...
          Designer.Modified;
        end;
      finally
        Dlg.Free;
      end;
      ...
    end;
    

    【讨论】:

    • 非常感谢,我必须记住 Designer 关键字。
    • 不是关键字,是TComponentEditor的属性。
    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多