Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Disculpa la tardanza en contestar pero tuve que salir.

Creo entender lo que dices. Sin embargo la herencia visual es algo distinta. Supongo que el problema que describes se debe a que el IDE en sí no tiene noción del cambio de valores por defecto ya que Form1 no está registrado. Uno esperaría que si hacemos:

Código:
TForm1 = class(TForm)
published
  property Anchors default [akLeft,akRight, akTop, akBottom];
end;
y registramos el formulario entonces sí debería funcionar. Claro que a juzgar por las pruebas que hice no es así, al menos sin usar wizards.

Será cosa de seguir investigando.

// Saludos
Responder Con Cita
  #2  
Antiguo 13-02-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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:
  1. El icono para agregar un formulario TAppBar aparece automáticamente en "New Items"
  2. Las nuevas propiedades publicadas aparecen en el inspector de objetos
  3. 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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:07:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi