| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Jonatan500 Colaborador

Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Ter Dez 23, 2014 11:23 am Assunto: Letras nao vao para outro form [Resolvido] |
|
|
Pessoal tenho um campo de pesquisa, ai la no campo eu quero fazer com que quando eu começo digitar letras de a .. z ele abra um formulario com a primeira letra que ja digitei no form.... eu tenho o codigo abaixo funciona normal mas a letra que ja digitei nao passa para ele... eu compilei pra ver e a letra so aparece no edit depois que execute o codigo do onkeypress.... alguem tem uma ideia de como posso fazer ?
| Código: | if (Key in ['A' .. 'Z']) OR (Key in ['a' .. 'z']) Then
Begin
Key := #0;
if (frm_cliente = Nil) then
frm_cliente := Tfrm_cliente.Create(Self);
try
frm_cliente.edt_pesquisa.Text:=Edit1.Text;
frm_cliente.ShowModal;
finally
FreeAndNil(frm_cliente);
keybd_event(13, 0, 0, 0);
end;
End; |
_________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower
Editado pela última vez por Jonatan500 em Ter Jan 06, 2015 11:38 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Ter Dez 23, 2014 1:01 pm Assunto: |
|
|
o q vc programou no outro form?
vc esta 'zerando' a tecla antes de enviar:
| Código: | if (Key in ['A' .. 'Z', 'a' .. 'z']) Then
Begin
if (frm_cliente = Nil) then
frm_cliente := Tfrm_cliente.Create(Self);
try
frm_cliente.edt_pesquisa.Text:= Key;
Key := #0;
frm_cliente.ShowModal;
finally
FreeAndNil(frm_cliente);
keybd_event(13, 0, 0, 0);
end;
End; |
_________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
Jonatan500 Colaborador

Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Ter Dez 23, 2014 5:06 pm Assunto: |
|
|
Joemil Bom ? No outro form é uma tela de consulta para seleção do cliente.
Quanto ao seu código nao funcionou não ele esta impedindo de digitar qualquer tecla agora. _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qua Dez 24, 2014 8:23 am Assunto: |
|
|
mas vamos por partes:
1. se vc esta no form de pesquisa, por qual motivo vc quer abrir outro form qdo digita uma tecla? nao seria melhor primeiro pesquisar o q foi digitado, e qdo selecionar o cliente, mostrar o outro form?
2. vc programou alguma coisa no edt_pesquisa?
3. tente mudar assim:
| Código: | if (Key in ['A' .. 'Z', 'a' .. 'z']) Then
Begin
if (frm_cliente = Nil) then
frm_cliente := Tfrm_cliente.Create(Self);
try
frm_cliente.edt_pesquisa.Text:= Key;
frm_cliente.ShowModal;
finally
FreeAndNil(frm_cliente);
keybd_event(13, 0, 0, 0);
end;
End; |
_________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
Jonatan500 Colaborador

Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Seg Jan 05, 2015 9:37 am Assunto: |
|
|
Também nao :/ _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
| Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Seg Jan 05, 2015 9:50 am Assunto: |
|
|
Cara, meio estranho isso que vc quer,
se entendi bem vc quer começar a escrever uma pesquisa no edit do form1 e assim que começar a escrever vc quer abrir o form de pesquisa e continuar escrevendo sem perder oque havia escrito no edit do form anterior?
se for isso mesmo até teria como aplicar, mas na minha opnião não ficaria legal. |
|
| Voltar ao Topo |
|
 |
Jonatan500 Colaborador

Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Seg Jan 05, 2015 9:55 am Assunto: |
|
|
Tipo assim Comecei Digitar ele abre a outra tela.. é estranho não amigo ja vi em varios sistemas. _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
| Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Seg Jan 05, 2015 10:01 am Assunto: |
|
|
Tá,
então o caso se resolveria se no OnChange do Edit vc captura a letra, joga numa variável global e chama o form de pesquisa, no OnShow do form que acabou de abrir vc lê a variável global e joga no edit para continuar escrevendo.
Creio que pode ser uma solução visto que vc cria o form em RunTime.
Oque vc pensa? |
|
| Voltar ao Topo |
|
 |
Jonatan500 Colaborador

Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Seg Jan 05, 2015 10:18 am Assunto: |
|
|
acontece que quero fazer só quando o cara digitar letras.... se ele quiser digitar o codigo ja direto e teclar enter ja busca na tela. _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
| Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Seg Jan 05, 2015 11:40 am Assunto: |
|
|
Tudo bem,
vc já esta fazendo esse controle:
| Código: |
if (Key in ['A' .. 'Z']) OR (Key in ['a' .. 'z']) Then
Begin
//Seto variável Global
if (frm_cliente = Nil) then
begin
frm_cliente := Tfrm_cliente.Create(Self);
frm_cliente.ShowModal;
end;
End;
|
após esse controle, no OnShow do formCliente vc coloca no editPesquisa o conteúdo da variável global.
Não sei se fui claro com minha explicação, mas seria mais ou menos isso. |
|
| Voltar ao Topo |
|
 |
Jonatan500 Colaborador

Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Seg Jan 05, 2015 2:36 pm Assunto: |
|
|
o Código "Key" em OnShow Não Funciona amigo. _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
| Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Seg Jan 05, 2015 2:44 pm Assunto: |
|
|
| posta a parte completa do código que dou uma olhada. |
|
| Voltar ao Topo |
|
 |
Jonatan500 Colaborador

Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Ter Jan 06, 2015 9:28 am Assunto: |
|
|
| Código: | procedure Tfrm_abertura.edt_codClienteKeyPress(Sender: TObject; var Key: Char);
begin
if (Key in ['A' .. 'Z']) OR (Key in ['a' .. 'z']) Then
Begin
Key := #0;
if (frm_cliente = Nil) then
frm_cliente := Tfrm_cliente.Create(Self);
try
frm_cliente.TelaChamou := 'Abertura';
frm_cliente.ShowModal;
finally
FreeAndNil(frm_cliente);
keybd_event(13, 0, 0, 0);
end;
End;
end; |
No Outro Formulario Tenho a Variavel TelaChamou...
| Código: | if TelaChamou = 'Abertura' then
begin
frm_abertura.Edit1.Text:=IntToStr(DM.MyClientesID.AsInteger);
Close;
end;
|
Tipo ate ai funciona... mas quando começo digitar a primeira letra não vai para o Frm_clientes... _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
| Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Ter Jan 06, 2015 10:09 am Assunto: |
|
|
Amigo seguinte a questão de passar a letra é simplesmente uma variável,
ai vc faz assim:
Procedure do OnKeyPress:
| Código: |
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key in ['A' .. 'Z']) OR (Key in ['a' .. 'z']) Then
Begin
LetraApertada:= Key;
Key := #0;
if (form2 = Nil) then
form2 := TForm2.Create(Self);
try
TelaChamou := 'Abertura';
form2.ShowModal;
finally
FreeAndNil(form2);
keybd_event(13, 0, 0, 0);
end;
End;
end; |
Agora declare a variável LetraApertada no form2 e no OnShow faz assim:
| Código: |
Edit1.Text:= LetraApertada;
keybd_event(39,0,0,0);
|
fiz teste com todas as letras do meu teclado e garanto que funciona.
vc pode continuar digitando sem parar.
creio seja isso que vc precisa. |
|
| Voltar ao Topo |
|
 |
Jonatan500 Colaborador

Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Ter Jan 06, 2015 11:28 am Assunto: |
|
|
hehe, Funcionou Valeu. _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
| Voltar ao Topo |
|
 |
|