Fórum Formatacao Default de Componentes #275770

05/04/2005

0

Amigos,

Como posso alterar a formatação default dos componentes?
Tipo:

Edit, combobox (e DBEdit, DBCombobox) por exemplo. Sempre que eu coloca-los em um form eles trazerem uma formatação (cor por exemplo) diferente da default que eles vem de ´fabrica´?

E com relacao aos forms que eu ja os tenho, tem como alterar todos de uma so vez? :lol: :lol: :lol:


Rafaelunp

Rafaelunp

Responder

Posts

05/04/2005

Aroldo Zanela

Colegas,

As formas que eu conheço e me vêm a mente agora são: Herança, Templates e Frames.


Responder

Gostei + 0

05/04/2005

Rafaelunp

[quote:bd1eb4611e=´Aroldo Zanela´]Colegas,

As formas que eu conheço e me vêm a mente agora são: Herança, Templates e Frames.[/quote:bd1eb4611e]

Aroldo,

Cara, tá muito vago... me de mais uma dica...
No caso eu tenho um form que uso como herança, mas o mesmo nao possui nenhum desses componentes, tem como eu alterar alguma coisa (criar procedure ou funcao) que atualize isso nos demais, mesmo os mesmos já existindo? :roll:
Diga ai como posso fazer please... :wink:


Responder

Gostei + 0

06/04/2005

Rodc

Ele tem uma função :
Constructor Create(Owner: TComponente); overrride;
Dê uma olhada no componetes do delphi pra você entender onde fica e como faz. Esta função é executada imediatamente quando o componente é criado.


Responder

Gostei + 0

06/04/2005

Rafaelunp

Ele tem uma função : Constructor Create(Owner: TComponente); overrride; Dê uma olhada no componetes do delphi pra você entender onde fica e como faz. Esta função é executada imediatamente quando o componente é criado.



Blz Cara,

Localizei por exemplo o Edit que ficou assim:

constructor TCustomEdit.Create(AOwner: TComponent);
const
  EditStyle = [csClickEvents, csSetCaption, csDoubleClicks, csFixedHeight];
begin
  inherited Create(AOwner);
  if NewStyleControls then
    ControlStyle := EditStyle else
    ControlStyle := EditStyle + [csFramed];
  Width := 121;
  Height := 25;
  TabStop := True;
  ParentColor := False;
  FBorderStyle := bsSingle;
  FAutoSize := True;
  FAutoSelect := True;
  FHideSelection := True;
  AdjustHeight;
//rafael
  FBevelInner := bvspace;
  FBevelKind := bkFlat;
  FBevelOuter := bvLowered;

end;


Depois disso eu preciso recompilar o componente? se sim, como? Se não, o que eu faço? pq fechei o delphi abri de novo e continua do mesmo jeito...

Vlw


Responder

Gostei + 0

06/04/2005

Rodc

Sim, tem que recompilar o pacote ao qual pertence o componente. Abra o arquivo Lib\dclusr50.dpk, clique em Compile e depois em Install.


Responder

Gostei + 0

06/04/2005

Rafaelunp

Sim, tem que recompilar o pacote ao qual pertence o componente. Abra o arquivo Lib\dclusr50.dpk, clique em Compile e depois em Install.



Cara, alterei a unit

unit StdCtrls;

Abri o arquivo: arquivo dclusr.dpk (Delphi 6), compilei e instalei, mas nada... to adicionando o edit num novo projeto e continua do mesmo jeito...

Alguma dica?


Responder

Gostei + 0

06/04/2005

Rodc

Dentro do dclusr50.dpk tem um outro arquivo na caixa abaixo chamado (se não me engano) vcl50.dcp. Dá dois cliques nesta opção, vai te abrir outra tela cheia de arquivos pas. Faz a mesma coisa, compila e instala. Depois fecha e recompila o dcluser50.dpk e instala.


Responder

Gostei + 0

06/04/2005

Aroldo Zanela

[quote:68acaaec6b=´Aroldo Zanela´]Colegas, As formas que eu conheço e me vêm a mente agora são: Herança, Templates e Frames.


Aroldo,

Cara, tá muito vago... me de mais uma dica...
No caso eu tenho um form que uso como herança, mas o mesmo nao possui nenhum desses componentes, tem como eu alterar alguma coisa (criar procedure ou funcao) que atualize isso nos demais, mesmo os mesmos já existindo? :roll:
Diga ai como posso fazer please... :wink:[/quote:68acaaec6b]
Colega,

Você já recebeu algumas dicas de como alterar o construtor de componentes, mas, não recomendo esta prática. É melhor você criar novos componentes, herdando daqueles que deseja alterar, evitando assim, ter de refazer tudo de novo a cada nova versão do Delphi. Portanto, crie seus componentes, adicione as características desejadas e matenha-os em separado dos componentes nativos.


Responder

Gostei + 0

07/04/2005

Raserafim

concordo com o Aroldo, alterar as units do delphi não é uma boa prática de programação (mas tb é uma idéia!). tb recomendo vc a criar um componente herdando do que vc quer alterar e no construtor create é só vc definir as propriedades que quer alterar. assim este componente fica valendo pra aoutras versões do delphi.
faça o seguinte:
ao abrir o delphi vá no menu Component > New Component, defina de que classe vc quer herdar, o nome que vc quer dar a nova classe, a paleta...
na seção puclic declare o construtor
constructor Create(AOwner: TComponent); override;

implemente este construtor com as pripriedades que quer alterar. salve a unit e vá nom menu Component > install Component.


Responder

Gostei + 0

07/04/2005

Rafaelunp

[quote:a565740ff2=´Aroldo Zanela´]
Colega,

Você já recebeu algumas dicas de como alterar o construtor de componentes, mas, não recomendo esta prática. É melhor você criar novos componentes, herdando daqueles que deseja alterar, evitando assim, ter de refazer tudo de novo a cada nova versão do Delphi. Portanto, crie seus componentes, adicione as características desejadas e matenha-os em separado dos componentes nativos.[/quote:a565740ff2]

Aroldo,

Concordo com voce. Em termos. :oops:
Sei que se voce está dizendo é porque tem fundamento.
Mas até o momento, o que quero fazer é alterar as caracteristicas default. Se só eu mexo na minha maquina, no meu delphi, se nao estou acrescentando nem removendo nenhuma caracteristica, apenas querendo mudar, uma fonte, a cor de um componente... Nao sei se há essa necessidade de criar um novo componente... até porque se eu quiser abrir os fontes em outra maquina, vou precisar instala-los novamente... enquanto que se eu apenas mudar o default dessas proprieades, nada de ´anormal´ vai acontecer... pelo menos com minha pouca experiencia, é isso que eu acho... estou errado!?


Responder

Gostei + 0

07/04/2005

Rafaelunp

[quote:2174d4872e=´Aroldo Zanela´]
Colega,

Você já recebeu algumas dicas de como alterar o construtor de componentes, mas, não recomendo esta prática. É melhor você criar novos componentes, herdando daqueles que deseja alterar, evitando assim, ter de refazer tudo de novo a cada nova versão do Delphi. Portanto, crie seus componentes, adicione as características desejadas e matenha-os em separado dos componentes nativos.[/quote:2174d4872e]

Aroldo,

Concordo com voce. Em termos. :oops:
Sei que se voce está dizendo é porque tem fundamento.
Mas até o momento, o que quero fazer é alterar as caracteristicas default. Se só eu mexo na minha maquina, no meu delphi, se nao estou acrescentando nem removendo nenhuma caracteristica, apenas querendo mudar, uma fonte, a cor de um componente... Nao sei se há essa necessidade de criar um novo componente... até porque se eu quiser abrir os fontes em outra maquina, vou precisar instala-los novamente... enquanto que se eu apenas mudar o default dessas proprieades, nada de ´anormal´ vai acontecer... pelo menos com minha pouca experiencia, é isso que eu acho... estou errado!?


Responder

Gostei + 0

07/04/2005

Massuda

...se eu apenas mudar o default dessas proprieades, nada de ´anormal´ vai acontecer... pelo menos com minha pouca experiencia, é isso que eu acho... estou errado!?
Sim... se você alterar o default das propriedades publicadas, terá que alterar tanto o construtor das classes como a especificação do valor default de cada propriedade (aquele [b:4df96f326c]default[/b:4df96f326c] que aparece na declaração das propriedades); se não fizer isso, seus DFMs vão começar a funcionar de modo estranho.

O resultado é que você alterou a interface da unit... isso faz com que o Delphi recompile essa unit e, aqui é que está o problema, faz com que o Delphi tente recompilar todas as units que usam a unit modificada. Por exemplo, se você alterar a interface de StdCtrls, certamente boa parte das DCUs presentes no subdiretório lib do diretório onde está instalado o Delphi terá de ser recompilado; com sorte, você tem o fonte de tudo (isso depende da edição do seu Delphi e dos componentes de terceiros que você usa), e consegue recompilar tudo e continuar trabalhando. Mas e se não tiver? Você recebe a mensagem ´unit XYZ was compiled with a diferent version of ABC´.

Nao sei se há essa necessidade de criar um novo componente... até porque se eu quiser abrir os fontes em outra maquina, vou precisar instala-los novamente
Quanto a tentar recompilar em outra máquina... você terá que repetir toda a recompilação das units do sistema nela... muito mais trabalhoso do que instalar novos componentes.


Responder

Gostei + 0

07/04/2005

Rafaelunp

OK! Massuda,


Entendi o grande lance!
Obrigado a todos!

[ ]s
Rafael


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar