Navegar pelos campos Com Enter em um form aberto dentro de um outro.
26/11/2020
0
Eu sei que para navegar com o Enter tem que configura o mais quando o form e aberto dentro de outro form as coias ficam diferentes...
Aqui vou deixar a chamada do meu segundo form
Agora com o segundo form aberto quando eu tento navegar com o Enter ou com as cetas ele aponta o controle ativo para o Form1 mais ao meu ver deveria ser para o objeto com o qual o usuário ira utilizar. Lembrando que o Form2 também está com o.
Pelo que eu perceber o está sendo chamada com o parâmetro igual a Nil
KeyPreview := True;
Aqui vou deixar a chamada do meu segundo form
procedure TForm1.btnForm2Click(Sender: TObject); begin if Form2= Nil then begin Form2 := TForm2.Create(self); Form2.Parent := Form1; end; Form2.Show; end;
Agora com o segundo form aberto quando eu tento navegar com o Enter ou com as cetas ele aponta o controle ativo para o Form1 mais ao meu ver deveria ser para o objeto com o qual o usuário ira utilizar. Lembrando que o Form2 também está com o
KeyPreview := True;
procedure TForm2 .FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin // Se o controle ativo for Memo ou ComboBox ou DBGrid não passa para o próximo Controle if ((key = VK_RETURN) or (key = VK_DOWN)) and not (Copy(TControl(ActiveControl).Name,1,3) = 'mem.cbb.dbg') then // <== TControl(ActiveControl).Name fica como se o form1 o controle ativo. Perform(WM_NEXTDLGCTL,0,0); if (key = VK_UP) and not (Pos(Copy(TControl(Sender).Name,1,3),'mem.cbb.dbg') > 0) then Perform(WM_NEXTDLGCTL,1,0); end;
Pelo que eu perceber o
procedure TForm2 .FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
Sender: TObject;
Eduardo Silva
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)