Fórum Delphi 2009 não reconhece funcao Delphi 2007, 2006, 7 ... #365808

03/11/2008

0

Amigos, estou com um problema com o Delphi 2009!
Hoje passei horas em pesquisas pela internet, site da Embarcadero mas não tive resultados sobre o ocorrido.
Oque acontece é o seguinte.

Eu tenho um sistema todo desenvolvido no Delphi 2007, então resolvi migrar para nova versão do compilador. Depois de muito sofrimento para migrar meus componentes RxLibrary para os Jedi já que foi descontinuado o projeto, me deparei com outro problema.

Quando compilo o projeto, ele me volta um Warning. Que segue abaixo:

[DCC Warning] UnitControleDeClientesPesquisa.pas(499): W1050 WideChar reduced to byte char in set expressions. Consider using ´CharInSet´ function in ´SysUtils´ unit.


Resulta neste código do meu sistema:

procedure TFormControleDeClientesPesquisa.CrnEditPesquisaKeyPress(
  sender: TObject; var key: Char);
begin
If RadioGroupPesquisaOpcao.ItemIndex = 0 then
   Begin
      If not ( Key in[08,13,48,49,50,51,52,53,54,55,56,57] ) then
               Begin
                  MsgmAvisoCronos(´INFORMAÇÃO - FORMATAÇÃO DO CAMPO!´,
                                  ´Este campo somente pode ser preenchido por NÚMEROS!´,mtInformation);

                  CrnEditPesquisa.SetFocus;
                  Key := 0; { Suprime o som }
                  end
              else
                  Begin
                     //Quando teclado ENTER, muda o focu para BitBtnsPesquisa
                     If Key = 13 then
                        Begin
                           Key := 0; { Suprime o som }
                           BitBtnPesquisa.SetFocus;
                        end;
                  end;
   end;
end;


Pelo que entendi eu tenho que converter a minha função para o novo padrão do Delphi 2009 até então tudo bem. Não questiono isso.
Só que como eu fasso isto? Eu tentei de tudo e não estou conseguindo mudar para a nova função do Delphi 2009 [b:8c8e81c3cf]CharInSet[/b:8c8e81c3cf][color=red:8c8e81c3cf][/color:8c8e81c3cf].

Isso pode ser bobagem e eu esteja tomando uma tunda, mas te conta ... Ta osso! hehehehe

Se puderem me ajudar?


Devmedia

Devmedia

Responder

Posts

03/11/2008

Luiz Henrique

Beleza lucas...

Fiz aqui, assim funcionou:

procedure TForm4.FormKeyPress(Sender: TObject; var Key: Char);
var
CharSet: TSysCharSet;

begin
CharSet:= [#08,13,48,49,50,51,52,53,54,55,56,57];

if CharInSet(Key,CharSet) then
ShowMessage(´Esta no Set´)
else
ShowMessage(´Nao esta no Set´);
end;

Trocar seis por meia duzia né...


Responder

Gostei + 0

03/11/2008

Upgradesource

Lucas faz o seguinte.

se seu componente CrnEditPesquisa for um Tedit, marque a propriedadade numberondy para true e deixe o seu keypress dessa forma.

procedure TFormControleDeClientesPesquisa.CrnEditPesquisaKeyPress(
sender: TObject; var key: Char);
begin
If RadioGroupPesquisaOpcao.ItemIndex = 0 then
Begin
//Quando teclado ENTER, muda o focu para BitBtnsPesquisa
If Key = #13 then
Begin
Key := 0; { Suprime o som }
BitBtnPesquisa.SetFocus;
end;
end;
end;

o Delphi 2009 controla automaticamente numerico. Basta marcar a propriedade acima.

[ ]´s


Responder

Gostei + 0

03/11/2008

Devmedia

Amigos, vou agradecer ajuda dos dois, já que as duas respostas vão servir para diferentes situações no meu sistema.

Muito obrigado de verdade, me quebraram um galho de verdade!
Agora vou correr com a migração do sistema.


Mais uma vez, muito obrigado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar