edit1 ativando outros edits
Prezados,
Sou novo com o delphi, e gostaria de saber como faço para melhorar este 'case', pois tenho 14 edits e o codigo está ficando enorme.
Pensei em fazer algo do tipo: quando a propriedade do edit5 mudar os outros edits 1,2,3 e 4 mudam também sem precisar digitar um a um
Sou novo com o delphi, e gostaria de saber como faço para melhorar este 'case', pois tenho 14 edits e o codigo está ficando enorme.
Pensei em fazer algo do tipo: quando a propriedade do edit5 mudar os outros edits 1,2,3 e 4 mudam também sem precisar digitar um a um
case i of
1:begin
edit1.Enabled:=true;
end;
2:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
end;
3:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
end;
4:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
end;
5:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
end;
6:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
edit6.Enabled:=true;
end;
7:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
edit6.Enabled:=true;
edit7.Enabled:=true;
end;
.
.
.
14:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
edit6.Enabled:=true;
edit7.Enabled:=true;
.
.
.
edit14.Enabled:=true;
end;David
Curtidas 0
Melhor post
Roberto Wutke
09/05/2017
Fala jovem, tudo bom?
Tipo tenta usar a propriedade Tag dos edits... cada edit com sua tag correspondente, ex. Edit1 = Tag 1 assim até o Edit 14 com Tag 14..
Quando vc mudar o status do edit, vc recebe a tag dele, varTag := (Sender as TEdit).Tag.
Depois vc faz um laço e verifica se a tag é menor que a que vc tem... se for, ele deixa true
mais ou menos assim
for i := Nome_Form.ComponentCount -1 downto 0 do //vai correndo os componentes
begin
if (Nome_Form.Components[i] is TEdit) then //se for edit vai entrar
if (Nome_Form.Components[i] as TEdit).tag < varTag then // se a tag dele for menor que seu edit, vai passar pra ativar
(Nome_Form.Components[i] as TEdit).Enable := True; // Ativando o edit.
end;
desculpa se teve algum erro de sintaxe... tentei lembrar de cabeça...
espero ter ajudado.
Bons códigos!
Tipo tenta usar a propriedade Tag dos edits... cada edit com sua tag correspondente, ex. Edit1 = Tag 1 assim até o Edit 14 com Tag 14..
Quando vc mudar o status do edit, vc recebe a tag dele, varTag := (Sender as TEdit).Tag.
Depois vc faz um laço e verifica se a tag é menor que a que vc tem... se for, ele deixa true
mais ou menos assim
for i := Nome_Form.ComponentCount -1 downto 0 do //vai correndo os componentes
begin
if (Nome_Form.Components[i] is TEdit) then //se for edit vai entrar
if (Nome_Form.Components[i] as TEdit).tag < varTag then // se a tag dele for menor que seu edit, vai passar pra ativar
(Nome_Form.Components[i] as TEdit).Enable := True; // Ativando o edit.
end;
desculpa se teve algum erro de sintaxe... tentei lembrar de cabeça...
espero ter ajudado.
Bons códigos!
GOSTEI 1
Mais Respostas
David
09/05/2017
Prezados,
Sou novo com o delphi, e gostaria de saber como faço para melhorar este 'case', pois tenho 14 edits e o codigo está ficando enorme.
Pensei em fazer algo do tipo: quando a propriedade *ENABLED* do edit5 mudar os outros edits 1,2,3 e 4 mudam também sem precisar digitar um a um
Sou novo com o delphi, e gostaria de saber como faço para melhorar este 'case', pois tenho 14 edits e o codigo está ficando enorme.
Pensei em fazer algo do tipo: quando a propriedade *ENABLED* do edit5 mudar os outros edits 1,2,3 e 4 mudam também sem precisar digitar um a um
case i of
1:begin
edit1.Enabled:=true;
end;
2:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
end;
3:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
end;
4:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
end;
5:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
end;
6:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
edit6.Enabled:=true;
end;
7:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
edit6.Enabled:=true;
edit7.Enabled:=true;
end;
.
.
.
14:begin
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
edit6.Enabled:=true;
edit7.Enabled:=true;
.
.
.
edit14.Enabled:=true;
end;GOSTEI 0
David
09/05/2017
Amigo Roberto, desculpe minha ignorância..rs
Este FOR eu ponho dentro de cada case 1: 2: ... 14:?
outra coisa minha variavel vartag não está pegando o valor do tag (Declarei a mesma como integer) quando faço sem usar o case!
Este FOR eu ponho dentro de cada case 1: 2: ... 14:?
case i of
14:begin
edit14.Enabled:=true;
vartag:=(Sender as TEdit).Tag;
for i:= ComponentCount -1 downto 0 do
if (Components[i] is TEdit) then
if (Components[i] as TEdit).tag<vartag then
(Components[i] as TEdit).Enabled:=true;
end;outra coisa minha variavel vartag não está pegando o valor do tag (Declarei a mesma como integer) quando faço sem usar o case!
procedure TfCadEscala.editQtFuncChange(Sender: TObject);
var vartag, i:integer;
begin
edit14.Enabled:=true; //Coloquei para testar
vartag:=(Sender as TEdit).Tag;
ShowMessage(inttostr(vartag));
for i:= ComponentCount -1 downto 0 do
if (Components[i] is TEdit) then
if (Components[i] as TEdit).tag<vartag then
(Components[i] as TEdit).Enabled:=true; end;GOSTEI 0
David
09/05/2017
Prezados!
Resolvi passando o ciclo numa edit e usando a idéia do amigo Roberto! Muito Obrigado! Segue abaixo!
Resolvi passando o ciclo numa edit e usando a idéia do amigo Roberto! Muito Obrigado! Segue abaixo!
procedure TfCadEscala.editQtFuncChange(Sender: TObject);
var i:integer;
begin
if strtoint(editCiclo.Text)<=14 then
Begin
for i:= ComponentCount -1 downto 0 do
if (Components[i] is TEdit) then
if (Components[i] as TEdit).tag<=strtoint(editCiclo.text) then
(Components[i] as TEdit).Enabled:=true;
End
else
begin
if strtoint(editCiclo.Text)<=28 then
begin
for i:= ComponentCount -1 downto 0 do
if (Components[i] is TEdit) then
if ((Components[i] as TEdit).tag<=strtoint(editCiclo.text)) and ((Components[i] as TEdit).tag>14) then
(Components[i] as TEdit).Enabled:=true;
end;
end;
end;GOSTEI 0
Roberto Wutke
09/05/2017
Desculpe a demora pra responder, é que a gente não é avisado sobre posts que respondemos.... Mas que bom que deu certo man, qualquer coisa tamo ai....
bons códigos ai!
bons códigos ai!
GOSTEI 0