在Delphi IDE中持久存在可停靠表单布局的问题

时间:2014-05-30 14:08:59

标签: delphi ide toolsapi dockable-windows

我为Delphi编写了一个小型IDE扩展。我的表单来自TDockableToolbarForm。我已经弄明白如何让IDE在.dst和.dsk文件中保存表单的位置。

表格注册如下:

procedure Register;
begin
  RegisterFieldAddress('MyForm', @MyForm);
  RegisterDesktopFormClass(TMyForm, 'My Form', 'MyForm');
  MyForm := TMyForm.Create(nil);
  MyForm.Show;
end;

我在表单中添加了以下OnCreate处理程序:

procedure TMyForm.FormCreate(Sender: TObject);
begin
  inherited;
  AutoSave :=True;
  SaveStateNecessary := True;
  DeskSection := 'My Form';
end;

这导致将以下内容写入dst / dsk文件:

[My Form]
PercentageSizes=1
Create=1
Visible=0
Docked=1
State=0
Left=0
Top=0
Width=1193
Height=4115
MaxLeft=-1
MaxTop=-1
ClientWidth=1109
ClientHeight=3788
TBDockHeight=4115
LRDockWidth=1193
Dockable=1
StayOnTop=0

这允许表单的布局在IDE的一次运行和下一次运行之间保持不变。但是,我有两个问题:

  1. 首次在IDE中注册软件包时,我希望默认情况下将表格停靠在左侧(假设用户未使用' Classic Undocked'布局)。现在它只是显示表格未对接。
  2. 在卸载/重新安装软件包时,表单不使用以前保存的布局设置。它再次出现脱离。
  3. 我怀疑这两个问题都是由错过的一步造成的,但我对这一步是什么感到茫然。

    对于第一个问题,我发现TControl.ManualDock经常在关于对接的讨论中提到{但是它总是引用您可以访问源的应用程序。我不知道如何从IDE中检索必要的参数来调用它。

    对于第二个问题,我唯一知道的是,在卸载软件包之后,dst文件中的设置仍然存在,所以我认为使用现有设置重新安装软件包很简单,但这并不是很好。似乎是这样。

0 个答案:

没有答案