Propriedades published em Forms

Delphi

03/03/2004

Olá, galera...

Criei uma nova classe, derivada de TForm, e coloquei algumas propriedades na cláusula Published, mas elas não aparecem no Object Inspector.

Como faço pra colocar novas propriedades no Object Inspector para o Form?

Obrigado.
Buosi.


Buosinet

Buosinet

Curtidas 0

Respostas

Adriano Santos

Adriano Santos

03/03/2004

você criou um novo componente?


GOSTEI 0
Buosinet

Buosinet

03/03/2004

Não, eu apenas criei uma classe chamada TFrmSession, derivada de TForm. Eu sei criar componentes, mas como eu crio um form que é um componente?

Valeu.
Buosi.


GOSTEI 0
Adriano Santos

Adriano Santos

03/03/2004

É eu desconfiei, já tentei fazer isso várias vezes e até hoje não consigo...engraçado. Vou dar uma estudada e ver se consigo algo.


GOSTEI 0
Buosinet

Buosinet

03/03/2004

Se voce tenta criar um novo componente, não aparece uma opção para o form em Ancestor Type... :cry:


GOSTEI 0
Cebikyn

Cebikyn

03/03/2004

Para colocar uma propriedade nova para Forms no Object Inspector, deve-se seguir os seguintes passos:

[quote:65551549f4=´Yoav Abrahami´]1. Defina a propriedade como Published, de um tipo que o ObjectInspactor possa manipular .

TMyForm = class(TForm) 
Published 
  Property MyProp: Integer; 
End;

2. Adicione a procedure Register a alguma unit( é recomendado que seja em outra unit, que seja colocada em um package de design-time ).

// para descendentes do TForm: 
Procedure Register; 
Begin 
  RegisterNoIcon([TMyForm]); 
  RegisterCustomModule(TMyForm , TCustomModule); 
End; 

// para decendentes do TDataModule: 
Procedure Register; 
Begin 
  RegisterNoIcon([TMyForm]); 
  RegisterCustomModule(TMyForm , 
    TDataModuleDesignerCustomModule); 
End;

3. Compile e instale o pacote, vc deve ver a propriedade no ObjectInspector.

[b:65551549f4]fonte:[/b:65551549f4] [url=http://www.delphi3000.com/articles/article_1702.asp]Adding published properties to forms and datamodules[/url][/quote:65551549f4]


GOSTEI 0
Renatosilva

Renatosilva

03/03/2004

Uso o Delphi4 e isso não resolveu meu problema.
Simplesmente a propriedade não aparece.


GOSTEI 0
Joananjr

Joananjr

03/03/2004

Não recnhece nem existe no help do delphi a funcao
RegisterCustomModule


GOSTEI 0
Cebikyn

Cebikyn

03/03/2004

Ae gente, a dica é pra versões mais novas do Delphi, em versões antigas, num vai funcionar mesmo!


GOSTEI 0
Joananjr

Joananjr

03/03/2004

Para colocar uma propriedade nova para Forms no Object Inspector, deve-se seguir os seguintes passos: [quote:7cada7f31a=´Yoav Abrahami´]1. Defina a propriedade como Published, de um tipo que o ObjectInspactor possa manipular .
TMyForm = class(TForm) 
Published 
  Property MyProp: Integer; 
End;
2. Adicione a procedure Register a alguma unit( é recomendado que seja em outra unit, que seja colocada em um package de design-time ).
// para descendentes do TForm: 
Procedure Register; 
Begin 
  RegisterNoIcon([TMyForm]); 
  RegisterCustomModule(TMyForm , TCustomModule); 
End; 

// para decendentes do TDataModule: 
Procedure Register; 
Begin 
  RegisterNoIcon([TMyForm]); 
  RegisterCustomModule(TMyForm , 
    TDataModuleDesignerCustomModule); 
End;
3. Compile e instale o pacote, vc deve ver a propriedade no ObjectInspector. [b:7cada7f31a]fonte:[/b:7cada7f31a] [url=http://www.delphi3000.com/articles/article_1702.asp]Adding published properties to forms and datamodules[/url]
[/quote:7cada7f31a]

cara TDataModuleDesignerCustomModule); nao é reconhecido pelo delphi e ai?


GOSTEI 0
Cebikyn

Cebikyn

03/03/2004

cara TDataModuleDesignerCustomModule não é reconhecido pelo delphi e ai?


E ae, que é o seguinte:

[b:6310681dca]RE: RegisterCustomModule[/b:6310681dca] Yoav Abrahami (Jun 14 2001 2:53AM) Just to make things clear: 1. The function RegisterCustomModule is in the DsgnIntf unit. 2. The class TDataModuleDesignerCustomModule is in the DMDesigner unit. You must have both units in you´re uses section.


Como você pode ver, RegisterCustomModule está na unit [b:6310681dca]DsgnIntf[/b:6310681dca], e TDataModuleDesignerCustomModule está na unit [b:6310681dca]DMDesigner[/b:6310681dca].

[b:6310681dca]Você precisa ter essas duas units na cláusula USES de seu componente.[/b:6310681dca]

E mais: A dica é para [b:6310681dca]Delphi 5 ou superior[/b:6310681dca].


GOSTEI 0
Joananjr

Joananjr

03/03/2004

[quote:b1b2e71e97=´Joananjr´]cara TDataModuleDesignerCustomModule não é reconhecido pelo delphi e ai?


E ae, que é o seguinte:

[b:b1b2e71e97]RE: RegisterCustomModule[/b:b1b2e71e97] Yoav Abrahami (Jun 14 2001 2:53AM) Just to make things clear: 1. The function RegisterCustomModule is in the DsgnIntf unit. 2. The class TDataModuleDesignerCustomModule is in the DMDesigner unit. You must have both units in you´re uses section.


Como você pode ver, RegisterCustomModule está na unit [b:b1b2e71e97]DsgnIntf[/b:b1b2e71e97], e TDataModuleDesignerCustomModule está na unit [b:b1b2e71e97]DMDesigner[/b:b1b2e71e97].

[b:b1b2e71e97]Você precisa ter essas duas units na cláusula USES de seu componente.[/b:b1b2e71e97]

E mais: A dica é para [b:b1b2e71e97]Delphi 5 ou superior[/b:b1b2e71e97].[/quote:b1b2e71e97]

Beleza! Mas onde tá essa unit que o delphi nao encontrou (nem eu na pesquisa do windows) ?


GOSTEI 0
Cebikyn

Cebikyn

03/03/2004

Beleza! Mas onde tá essa unit que o delphi nao encontrou (nem eu na pesquisa do windows) ?


A unit tá no [b:081dc995f2]dsnide50.bpl[/b:081dc995f2] (a unit está compilada lá dentro), que deve estar na seção [b:081dc995f2]Requires[/b:081dc995f2] do seu pacote (*.dpk).


GOSTEI 0
Joananjr

Joananjr

03/03/2004

Ve só. Quando colocamos a package design50 o delphi 7 atualiza para designide automaticamente. Porém continua sem emcontrar o TDataModuleDesignerCustomModule. Vcteria um delphi 7 pra testar e ve como resolver este erro? Obrigado vc ta me ajudando mesmo cara!


GOSTEI 0
Cebikyn

Cebikyn

03/03/2004

Vc teria um delphi 7 pra testar e ve como resolver este erro?


Dessa vez fico devendo, não tenho Delphi 7...


GOSTEI 0
POSTAR