Fórum mudar propriedade em massa [d7+d2010] #383630

14/08/2010

0

Olá,

quero mudar a propriedade do dbedit.readyonly em massa.
como faço isso?

obrigado

Jonny

Jonny

Responder

Posts

14/08/2010

Marco Salles

a partrir do Delphi2007 vc usar o For Each ..  
procedure AlterarReadOnly(Progenitor:TWinControl;Chave:Boolean = True);
var
c:TComponent;
begin
 for C in Progenitor do
   if C is TEdit Then
      TEdit(C).ReadOnly:=chave;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
  AlterarReadOnly(self,true);
end;
  No Delphi7 percorra a lista for  
procedure AlterarReadOnlyDelphi7(Progenitor:TWinControl;Chave:Boolean = True);
var
  i: Integer;
begin
  for i := 0 to Pred(progenitor.ControlCount) do
     if progenitor.Controls[i] is TEdit then
        TEdit(Progenitor.Controls[i]).ReadOnly:=Chave;
end;
 
procedure TForm3.Button2Click(Sender: TObject);
begin
AlterarReadOnlyDelphi7(self,true);
end;
    ps) ha uma diferença sutil entre os dois codigos no que se refere a proprietarios e container na verdade o codigo do delphi7 se refere a parentes e não ha progenitores . Mas da para alterar tanto o primeiro Delphi2010 ou o Delphi7 para serem equivalentes   Veja esta diferença sutil colocando um Edit Dentro do Panel e executando   AlterarReadOnly(panel1,true);  // Nada acontece pois Panel não é Proprietário do Edit apesar do Edit estar dentro do                                             //Panel   AlterarReadOnlyDelphi7(panel1,true); //Desabilita o Edit pois Panel é o Container do Edit e não o seu Proprietário   bem , falei + , espero ter entendido alguma coisa
   
Responder

Gostei + 0

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

Aceitar