8

继我最近发布的这个问题之后:可以在多个组件上执行组件编辑器吗?

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

没有任何问题,除了对象检查器没有更新以反映新更改的值 - 它仅在单击设计器中的组件时更新。

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

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

4

1 回答 1

8

根据需要修改组件后,您的组件编辑器需要调用该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;
于 2013-02-12T01:17:01.890 回答