Проблемы с сохранением закрепляемого макета формы в Delphi IDE

Я написал небольшое расширение IDE для Delphi. Моя форма происходит от 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, я бы хотел, чтобы форма была пристыкована с левой стороны по умолчанию (при условии, что пользователь не использует макет "Классический открепленный"). Прямо сейчас это просто показывает, что форма откреплена.
  2. Когда пакет удаляется / переустанавливается, форма не использует ранее сохраненные параметры макета. Это снова кажется незапертым.

Я подозреваю, что обе проблемы вызваны пропущенным шагом, но я не знаю, что это за шаг.

Для первой проблемы, которую я нашел TControl.ManualDock довольно часто упоминается в дискуссиях о стыковке, но это всегда относится к приложениям, для которых у вас есть доступ к источнику. Я понятия не имею, как получить необходимые параметры из IDE, чтобы вызвать его.

Что касается второй проблемы, единственное, что я точно знаю, это то, что настройки в файле dst по-прежнему присутствуют после удаления пакета, поэтому я думаю, что переустановка пакета будет простой с использованием существующих настроек, но это не похоже на дело.

0 ответов

Другие вопросы по тегам