Fórum Erro mna minha procedure pra desabilitar os dbedits... #241135

02/07/2004

0

Quero criar uma procedure que desabilita todos os meus Dbedits do Form.

Fiz assim

[b:9b512c209a]Procedure[/b:9b512c209a] DesabilitaCampos;
begin

Dbedit1.enabled := false;[b:9b512c209a] Da erro aqui nestes campos se eu tira-los[/b:9b512c209a]
Dbedit2.enabled := false; [b:9b512c209a] ela passa normal sem da erro.[/b:9b512c209a]
Dbedit3.enabled := false;

end;


Uoquisala

Uoquisala

Responder

Posts

03/07/2004

Aroldo Zanela

Colega,

A procedure está no mesmo Form que os dbEdits? Coloca a mensagem de erro para podermos avaliar melhor.


Responder

Gostei + 0

03/07/2004

Tnaires

Vc pode usar o seguinte código:
procedure HabilitacaoDBEdits(Habilitar: boolean);
  var i: integer;
begin
  with Form1 do
    for i := 0 to ComponentCount - 1 do
      if (Components[i] is TDBEdit) then
        (Components[i] as TDBEdit).Enabled := Habilitar;
end;



Responder

Gostei + 0

03/07/2004

Uoquisala

Amigo ela da os seguintes erros

Undeclared Identifier ´Dbedit1´
Undeclared Identifier ´Dbedit2´
Undeclared Identifier ´Dbedit3´
Unsatisfied Forward or external declaration ´TfrmPrincipal.DesabilitaCampos´

Estou colocando a procedure na Seção implementation e seu cabeçalho
em type.


Responder

Gostei + 0

03/07/2004

Uoquisala

Não entendi como vou usar isso em um botão pra ativar ou desativar os dbedits.

Vc pode usar o seguinte código:
procedure HabilitacaoDBEdits(Habilitar: boolean);
  var i: integer;
begin
  with Form1 do
    for i := 0 to ComponentCount - 1 do
      if (Components[i] is TDBEdit) then
        (Components[i] as TDBEdit).Enabled := Habilitar;
end;



Responder

Gostei + 0

03/07/2004

Otto

procedure HabilitacaoDBEdits(Habilitar: boolean); 
  var i: integer; 
begin 
  with Form1 do 
    for i := 0 to ComponentCount - 1 do 
      if (Components[i] is TDBEdit) then 
        (Components[i] as TDBEdit).Enabled := Habilitar; 
end;




no onclick:

HabilitacaoDBEdits(true);   // Habilita
HabilitacaoDBEdits(false);  // desabilita
// habilita/desabilita todos os dbedits do form.



Responder

Gostei + 0

03/07/2004

Dpinho

procedure HabilitacaoDBEdits(Habilitar: boolean); 
  var i: integer; 
begin 
  with Form1 do 
    for i := 0 to ComponentCount - 1 do 
      if (Components[i] is TDBEdit) then 
        (Components[i] as TDBEdit).Enabled := Habilitar; 
end;
no onclick:
HabilitacaoDBEdits(true);   // Habilita
HabilitacaoDBEdits(false);  // desabilita
// habilita/desabilita todos os dbedits do form.


Tambem estou precisando, esta função acima seria otima para fazer todos os DBedit juntos, porem ela so reconhece quando matemos o nome do componente original tipo DBEdit1....10, se utilizamos o pradão de mudar o name dos componentes ela não reconhece ou teria que utilizar um para cada componente inutilizando a função.


Responder

Gostei + 0

03/07/2004

Otto

nao sei se esse é o modo mais correto de se fazer, mas, tentem da seguinte maneira:



procedure [b:766d56d1fc]Form1.[/b:766d56d1fc]HabilitacaoDBEdits(Habilitar: boolean); var i: integer; begin for i := 0 to ComponentCount - 1 do if (Components[i] is TDBEdit) then (Components[i] as TDBEdit).Enabled := Habilitar; end;




:arrow: e declare la em cima, onde são declaradas as procedures:

procedure HabilitacaoDBEdits(Habilitar: boolean);



Responder

Gostei + 0

03/07/2004

Dpinho

Amigo ela da os seguintes erros Undeclared Identifier ´Dbedit1´ Undeclared Identifier ´Dbedit2´ Undeclared Identifier ´Dbedit3´ Unsatisfied Forward or external declaration ´TfrmPrincipal.DesabilitaCampos´ Estou colocando a procedure na Seção implementation e seu cabeçalho em type.


Procedure DesabilitaCampos(Sender: TObject);

Procedure TForm1.DesabilitaCampos(Sender: TObject);
begin

Dbedit1.enabled := false; //Da erro aqui nestes campos se eu tira-los
Dbedit2.enabled := false; //ela passa normal sem da erro.
Dbedit3.enabled := false;

end;


Chamada da procedure

procedure TForm1.Button1Click(Sender: TObject);
begin
DesabilitaCampos(DBEdit1);
end;


Responder

Gostei + 0

03/07/2004

Vinicius2k

Colega,

É realmente necessária esta procedure/função?
Vc pode manter manter Read Only todos os controles Data-Aware ligados à sua tabela apenas mudando a propriedade AutoEdit do TDataSource para false... com isso o entrar em edit e insert modes é explicitamente controlado por vc...

Espero ter ajudado...
T+


Responder

Gostei + 0

03/07/2004

Uoquisala

Como fazer isso?

Colega, É realmente necessária esta procedure/função? Vc pode manter manter Read Only todos os controles Data-Aware ligados à sua tabela apenas mudando a propriedade AutoEdit do TDataSource para false... com isso o entrar em edit e insert modes é explicitamente controlado por vc... Espero ter ajudado... T+



Responder

Gostei + 0

03/07/2004

Tnaires

nao sei se esse é o modo mais correto de se fazer, mas, tentem da seguinte maneira: [quote:ef1d902643]procedure [b:ef1d902643]Form1.[/b:ef1d902643]HabilitacaoDBEdits(Habilitar: boolean);
[/quote:ef1d902643]
Exatamente otto. O código de nada vale se não for declarado estático. É pq na hora tava sem delphi e esqueci de colocar o Form1. Ou então, ele pode receber um form como parâmetro também.
Tambem estou precisando, esta função acima seria otima para fazer todos os DBedit juntos, porem ela so reconhece quando matemos o nome do componente original tipo DBEdit1....10, se utilizamos o pradão de mudar o name dos componentes ela não reconhece ou teria que utilizar um para cada componente inutilizando a função.

Como assim? O código se baseia na classe do objeto, não no seu nome.


Responder

Gostei + 0

04/07/2004

Vinicius2k

Como fazer isso?


Exatamente como eu descrevi... mude a propriedade AutoEdit do DataSource para false e todos os controles ligados a ele só serão editáveis após aplicado os métodos insert ou edit sobre o DataSet (tabela)...

T+


Responder

Gostei + 0

04/07/2004

Uoquisala

Mudei e funciona perfeitamente era que esta usando em mAskEdits por isso não funcionou da orimeuira vez.

Obrigado.

[quote:fb6d46c2fb=´uoquisala´]Como fazer isso?


Exatamente como eu descrevi... mude a propriedade AutoEdit do DataSource para false e todos os controles ligados a ele só serão editáveis após aplicado os métodos insert ou edit sobre o DataSet (tabela)...

T+[/quote:fb6d46c2fb]


Responder

Gostei + 0

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

Aceitar