Fórum DELPHI - Percorrer Edits alterando evento KeyDown #613659
29/12/2020
0
Existe alguma possibilidade de percorrer todos os Edits de um formulário e alterar o evento OnKeyDown dos mesmos?
Obrigado desde já!
Nomad
Curtir tópico
+ 0Post mais votado
29/12/2020
se quer somente os que estão diretamente no form:
procedure TForm5.FormCreate(Sender: TObject);
var i: integer;
begin
for i := 0 to TForm5.ControlCount-1 do
if TForm5.Controls[i] is TEdit then
TEdit(TForm5.Controls[i]).OnKeyPress := KeyPressGeral;
end;
Se você quer tratar todos os edits, precisará de uma função recursiva:
procedure TForm5.FormCreate(Sender: TObject);
// função recursiva para trocar a função do evento KeyPress
procedure TrocaKeyPress(Container: TWinControl);
var i: integer;
begin
for i := 0 to Container.ControlCount-1 do
if Container.Controls[i] is TEdit then
begin
TEdit(Container.Controls[i]).Text := 'Teste';
TEdit(Container.Controls[i]).OnKeyPress := KeyPressGeral;
end
else
if (Container.Controls[i] is TWinControl) then
TrocaKeyPress(TWinControl(Container.Controls[i]));
end;
begin
TrocaKeyPress(Self);
end;Emerson Nascimento
Gostei + 1
Mais Posts
29/12/2020
Nomad
Gostei + 0
29/12/2020
Emerson Nascimento
basta trocar para keydown.
Gostei + 1
04/01/2021
Nomad
Agradeço a sua ajuda... E no caso é somente nos que estão no Form mesmo. O KeyDown dos edits recebe o código "if Key = VK_Return then
SpeedButton1Click(self);".
Eu queria "limpar" isso ao passar pela condição, anular o keydown dos edits. Porém não estou sabendo qual parâmetro passar, tentei com o nil mas não dá certo.
Gostei + 0
05/01/2021
Emerson Nascimento
procedure TForm5.FormCreate(Sender: TObject);
var i: integer;
begin
for i := 0 to TForm5.ControlCount-1 do
if TForm5.Controls[i] is TEdit then
TEdit(TForm5.Controls[i]).OnKeyPress := nil;
end;Gostei + 1
05/01/2021
Nomad
Gostei + 0
05/01/2021
Nomad
Fiz algumas alterações aqui e a principio de tudo certo, fiz me baseando no que me passou. Agradeço muito a sua atenção e ajuda, continue assim!
Obrigado!!!
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)