Trocar propriedade color de todas as edit's da tela em tempo de execução.
Fala Galera...
Trabalho com Delphi7 e Herança de tela, a duvida é:
Tudo que mudo na tela de herança muda nas filhas dela, seguinte este principio, seria possivel colocar um codigo na tela de herança determinando que todas as edit's que existirem na tela troquem sua propriedade color.?Lembrando que como uso herança não sei quantas edit's terei na tela nem qual a propriedade name, então suponho que devo alterar a propriedade da classe TEdit ou algo parecido sei la...
Desde já agradeço a colaboração de todos.
Trabalho com Delphi7 e Herança de tela, a duvida é:
Tudo que mudo na tela de herança muda nas filhas dela, seguinte este principio, seria possivel colocar um codigo na tela de herança determinando que todas as edit's que existirem na tela troquem sua propriedade color.?Lembrando que como uso herança não sei quantas edit's terei na tela nem qual a propriedade name, então suponho que devo alterar a propriedade da classe TEdit ou algo parecido sei la...
Desde já agradeço a colaboração de todos.
Km Sistemas
Curtidas 0
Respostas
Marco Salles
13/06/2010
Fala Galera...
Trabalho com Delphi7 e Herança de tela, a duvida é:
Tudo que mudo na tela de herança muda nas filhas dela, seguinte este principio, seria possivel colocar um codigo na tela de herança determinando que todas as edit's que existirem na tela troquem sua propriedade color.? Lembrando que como uso herança não sei quantas edit's terei na tela nem qual a propriedade name, então suponho que devo alterar a propriedade da classe TEdit ou algo parecido sei la...
Desde já agradeço a colaboração de todos.
...
Coloque um codigo pode ser no OnShow do Formulario Padrao que varre os Controles do Proprietario ( que neste
caso invariavelmente sera o Formulario , mesmo que o controle esteja dentro de um Outro Container um Panel
por exemplo) e Atribua a ele a Cor que Vc Deseja
Todo formulario Herdado tera este método Herdado e executado no seu OnShow e portanto tera Todos os Edits
(Mesmo que esses não seje Herdado do FormPadrão ) tera sua propriedade color Alterada
Trabalho com Delphi7 e Herança de tela, a duvida é:
Tudo que mudo na tela de herança muda nas filhas dela, seguinte este principio, seria possivel colocar um codigo na tela de herança determinando que todas as edit's que existirem na tela troquem sua propriedade color.? Lembrando que como uso herança não sei quantas edit's terei na tela nem qual a propriedade name, então suponho que devo alterar a propriedade da classe TEdit ou algo parecido sei la...
Desde já agradeço a colaboração de todos.
GOSTEI 0
Francisco Sena
13/06/2010
Amigo,
Eu ainda não sou muito bom no Delphi, estou aprendendo faz pouco tempo, mas, eu já desenrolei, através de umas aulas que li, sobre como "pintar" alguns componentes em tempo de execução, mesmo ele sendo herdado e talz.
O código é o seguinte:
Dentro do evento FormShow
for i := 0 to ComponentCount - 1 do
if (Components[i] is TDBEdit) then
begin
TDBEdit(Components[i]).OnEnter := AplicaCor;
TDBEdit(Components[i]).OnExit := RetiraCor;
end; As procedures AplicaCor e RetiraCor: procedure TfrmBase.AplicaCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clInfoBk;
end; procedure TfrmBase.RetiraCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clWindow;
end; Você pode substiuir por outros componentes... Não sei se é o correto.. mais espero que tenha ajudado um pouco. Valeu!
if (Components[i] is TDBEdit) then
begin
TDBEdit(Components[i]).OnEnter := AplicaCor;
TDBEdit(Components[i]).OnExit := RetiraCor;
end; As procedures AplicaCor e RetiraCor: procedure TfrmBase.AplicaCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clInfoBk;
end; procedure TfrmBase.RetiraCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clWindow;
end; Você pode substiuir por outros componentes... Não sei se é o correto.. mais espero que tenha ajudado um pouco. Valeu!
GOSTEI 0
Marco Salles
13/06/2010
Amigo,
Eu ainda não sou muito bom no Delphi, estou aprendendo faz pouco tempo, mas, eu já desenrolei, através de umas aulas que li, sobre como "pintar" alguns componentes em tempo de execução, mesmo ele sendo herdado e talz.
O código é o seguinte:
Dentro do evento FormShow
for i := 0 to ComponentCount - 1 do
if (Components[i] is TDBEdit) then
begin
TDBEdit(Components[i]).OnEnter := AplicaCor;
TDBEdit(Components[i]).OnExit := RetiraCor;
end; As procedures AplicaCor e RetiraCor: procedure TfrmBase.AplicaCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clInfoBk;
end; procedure TfrmBase.RetiraCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clWindow;
end; Você pode substiuir por outros componentes... Não sei se é o correto.. mais espero que tenha ajudado um pouco. Valeu!
So um Adento daquilo que vc colocou .. Como o Edit é Um Controle e O Controle descende de TComponent
O Correto ( Sem usar o For In do Delphi2010) é Varrer os Controles e Não os Componentes
Vc evita testes desnecessários percorrendo Componentes que nunca serão um Controle ( Exemplo classico
são os Labels ) .. Mas com oeu disse , so um Adendo
if (Components[i] is TDBEdit) then
begin
TDBEdit(Components[i]).OnEnter := AplicaCor;
TDBEdit(Components[i]).OnExit := RetiraCor;
end; As procedures AplicaCor e RetiraCor: procedure TfrmBase.AplicaCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clInfoBk;
end; procedure TfrmBase.RetiraCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clWindow;
end; Você pode substiuir por outros componentes... Não sei se é o correto.. mais espero que tenha ajudado um pouco. Valeu!
GOSTEI 0
Km Sistemas
13/06/2010
Amigo,
Eu ainda não sou muito bom no Delphi, estou aprendendo faz pouco tempo, mas, eu já desenrolei, através de umas aulas que li, sobre como "pintar" alguns componentes em tempo de execução, mesmo ele sendo herdado e talz.
O código é o seguinte:
Dentro do evento FormShow
for i := 0 to ComponentCount - 1 do
if (Components[i] is TDBEdit) then
begin
TDBEdit(Components[i]).OnEnter := AplicaCor;
TDBEdit(Components[i]).OnExit := RetiraCor;
end;
As procedures AplicaCor e RetiraCor:
procedure TfrmBase.AplicaCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clInfoBk;
end;
procedure TfrmBase.RetiraCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clWindow;
end;
Você pode substiuir por outros componentes...
Não sei se é o correto.. mais espero que tenha ajudado um pouco.
Valeu!
Eu ainda não sou muito bom no Delphi, estou aprendendo faz pouco tempo, mas, eu já desenrolei, através de umas aulas que li, sobre como "pintar" alguns componentes em tempo de execução, mesmo ele sendo herdado e talz.
O código é o seguinte:
Dentro do evento FormShow
for i := 0 to ComponentCount - 1 do
if (Components[i] is TDBEdit) then
begin
TDBEdit(Components[i]).OnEnter := AplicaCor;
TDBEdit(Components[i]).OnExit := RetiraCor;
end;
As procedures AplicaCor e RetiraCor:
procedure TfrmBase.AplicaCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clInfoBk;
end;
procedure TfrmBase.RetiraCor(Sender: TObject);
begin
TDBEdit(Sender).Color := clWindow;
end;
Você pode substiuir por outros componentes...
Não sei se é o correto.. mais espero que tenha ajudado um pouco.
Valeu!
Deu Certinho!!! Obrigado...
GOSTEI 0