4

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 の実行と次の実行の間で保持されます。ただし、次の 2 つの問題があります。

  1. パッケージが最初に IDE に登録されたとき、フォームをデフォルトで左側にドッキングしたいと思います (ユーザーが「Classic Undocked」レイアウトを使用していないと仮定します)。現在は、ドッキングされていないフォームを表示しているだけです。
  2. パッケージをアンインストール/再インストールすると、フォームは以前に保存されたレイアウト設定を使用していません。再びドッキングされていないように見えます。

どちらの問題もステップを逃したことが原因であると思われますが、そのステップが何であるかについては途方に暮れています。

最初の問題については、TControl.ManualDockドッキングに関する議論で頻繁に言及されていましたが、それは常にソースにアクセスできるアプリケーションに関するものでした。IDE から必要なパラメーターを取得して呼び出す方法がわかりません。

2番目の問題について私が確かに知っている唯一のことは、パッケージがアンインストールされた後もdstファイルの設定がまだ存在していることです。そのため、既存の設定を使用してパッケージを再インストールするのは簡単だと思いますが、そうではないようです場合。

4

0 に答える 0