ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Letras nao vao para outro form [Resolvido]
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Ter Dez 23, 2014 11:23 am    Assunto: Letras nao vao para outro form [Resolvido] Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Ter Dez 23, 2014 1:01 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Ter Dez 23, 2014 5:06 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qua Dez 24, 2014 8:23 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Jan 05, 2015 9:37 am    Assunto: Responder com Citação

Também nao :/
_________________
"NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Seg Jan 05, 2015 9:50 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Jan 05, 2015 9:55 am    Assunto: Responder com Citação



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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Seg Jan 05, 2015 10:01 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Jan 05, 2015 10:18 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Seg Jan 05, 2015 11:40 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Jan 05, 2015 2:36 pm    Assunto: Responder com Citação

o Código "Key" em OnShow Não Funciona amigo.
_________________
"NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Seg Jan 05, 2015 2:44 pm    Assunto: Responder com Citação

posta a parte completa do código que dou uma olhada.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Ter Jan 06, 2015 9:28 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Ter Jan 06, 2015 10:09 am    Assunto: Responder com Citação

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. Cool
creio seja isso que vc precisa.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Ter Jan 06, 2015 11:28 am    Assunto: Responder com Citação

hehe, Funcionou Valeu.
_________________
"NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB