Erro mna minha procedure pra desabilitar os dbedits...
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;
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
Curtidas 0
Respostas
Aroldo Zanela
02/07/2004
Colega,
A procedure está no mesmo Form que os dbEdits? Coloca a mensagem de erro para podermos avaliar melhor.
A procedure está no mesmo Form que os dbEdits? Coloca a mensagem de erro para podermos avaliar melhor.
GOSTEI 0
Tnaires
02/07/2004
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;
GOSTEI 0
Uoquisala
02/07/2004
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.
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
Uoquisala
02/07/2004
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;
GOSTEI 0
Otto
02/07/2004
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
Dpinho
02/07/2004
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
Otto
02/07/2004
nao sei se esse é o modo mais correto de se fazer, mas, tentem da seguinte maneira:
:arrow: e declare la em cima, onde são declaradas as procedures:
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);
GOSTEI 0
Dpinho
02/07/2004
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;
GOSTEI 0
Vinicius2k
02/07/2004
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+
É 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
Uoquisala
02/07/2004
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+
GOSTEI 0
Tnaires
02/07/2004
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.
GOSTEI 0
Vinicius2k
02/07/2004
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+
GOSTEI 0
Uoquisala
02/07/2004
Mudei e funciona perfeitamente era que esta usando em mAskEdits por isso não funcionou da orimeuira vez.
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]
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]
GOSTEI 0