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