Fórum Erro mna minha procedure pra desabilitar os dbedits... #241135
02/07/2004
0
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
Curtir tópico
+ 0Posts
03/07/2004
Aroldo Zanela
A procedure está no mesmo Form que os dbEdits? Coloca a mensagem de erro para podermos avaliar melhor.
Gostei + 0
03/07/2004
Tnaires
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;
Gostei + 0
03/07/2004
Uoquisala
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.
Gostei + 0
03/07/2004
Uoquisala
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;
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.
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;
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.
Gostei + 0
03/07/2004
Otto
:arrow: e declare la em cima, onde são declaradas as procedures:
Gostei + 0
03/07/2004
Dpinho
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;
Gostei + 0
03/07/2004
Vinicius2k
É 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+
Gostei + 0
03/07/2004
Uoquisala
Gostei + 0
03/07/2004
Tnaires
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.
Como assim? O código se baseia na classe do objeto, não no seu nome.
Gostei + 0
04/07/2004
Vinicius2k
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+
Gostei + 0
04/07/2004
Uoquisala
Obrigado.
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]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)