Pues me tiré el clavado. A ver si no es demasiada vuelta.
Tuve que hacer un Wizard y un Creator:
Código:
type
TAppBarCreator = class(
TInterfacedObject, IOTACreator, IOTAModuleCreator
)
{ De IOTAModuleCreator }
procedure FormCreated(const FormEditor: IOTAFormEditor);
end;
TAppBarWizard = class(
TNotifierObject, IOTAWizard, IOTARepositoryWizard, IOTAFormWizard
)
{ De IOTAWizard }
procedure Execute;
end;
procedure Register;
implementation
{ Este método lo llama el IDE en cuanto se crea el formulario }
procedure TAppBarCreator.FormCreated(const FormEditor: TFormEditor)
var
NTAComponent: INTAComponent;
Component: TComponent;
begin
// Obtenemos una referencia al formulario recién creado
if Supports(FormEditor.GetRootComponent, INTAComponent, NTAComponent) then
begin
Component := NTAComponent.GetComponent;
if Component is TAppBarForm then
// y le asignamos el valor deseado a la propiedad
TAppBarForm(Component).Height := 55;
end;
end;
{ Aquí le pasamos al IDE el Creator del formulario }
procedure TAppBarWizard.Execute;
var
Services: IOTAModuleServices;
begin
Supports(BorlandIDEServices, IOTAModuleServices, Services);
Services.CreateModule(TAppBarCreator.Create);
end;
{ Registramos el Wizard y el formulario }
procedure Register;
begin
RegisterPackageWizard(TAppBarWizard.Create);
RegisterCustomModule(TAppBarForm, TCustomModule);
end;
end.
De esa forma obtengo tres cosas:
- El icono para agregar un formulario TAppBar aparece automáticamente en "New Items"
- Las nuevas propiedades publicadas aparecen en el inspector de objetos
- El formulario aparece con las dimensiones deseadas
Quedan cosas en el tintero ya que entiendo poco de las ToolsApi y aún quiero ver si puedo evitarme la vuelta al Wizard (aunque vino bien aprender cómo se hace). Además al agregar el formulario nuevo aparece como TAppBarForm2 en lugar de TAppBarForm1, es decir, que sigue la numeración del formulario principal de la aplicación.
// Saludos