Usa Assim...............

        //procedure que troca tab por enter
//------------------------------------------------------------------------------
procedure ProcessaMsg(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_KEYDOWN then
    if not (Screen.ActiveControl is TCustomMemo) and
       not (Screen.ActiveControl is TButtonControl) then
    begin
      if not (Screen.ActiveControl is TCustomControl) then
      begin
        if Msg.wParam = VK_Down then
           Msg.wParam := VK_Tab;
        if Msg.wParam = VK_UP then
        begin
          Msg.wParam := VK_CLEAR;
          Screen.ActiveForm.Perform(WM_NextDlgCtl,1,0);
        end;
      end;
      if Msg.wParam = VK_Return then
        Msg.wParam := VK_Tab;
    end;
end;
//------------------------------------------------------------------------------
 



    Coloca no Oncreate do seu formulario principal....

        Application.Onmessage    := processaMsg ;

e Pronto seus problemas acabaram....

        Wesley





----- Original Message ----- 
  From: Davi Eduardo Borges Wall 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, July 12, 2007 3:31 PM
  Subject: RES: [delphi-br] Re: Enter pelo Tab não dá certo


  Cara, tenta usar o SelectNext e passa como parâmetro Screen.activecontrol

  Procure no Help eu não lembro os parâmetros de cabeça.

  []'s

  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Anderson
  Enviada em: quinta-feira, 12 de julho de 2007 15:11
  Para: delphi-br@yahoogrupos.com.br
  Assunto: [delphi-br] Re: Enter pelo Tab não dá certo

  continua na mesma...

  o perform ele não executa...

  Algúém entende o pq ?

  --- Em delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> , 
"Anderson" 
  <[EMAIL PROTECTED]> escreveu
  >
  > Faltou isto aqui
  > key := #0;
  > 
  > Ficando desta maneira
  > if key=#13 then
  > begin
  > ShowMessage('Teste');
  > Key := #0;
  > perform(wm_nextdlgctl,0,0);
  > key:=#0;
  > end;
  > 
  > ----- Original Message ----- 
  > From: Anderson 
  > To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> 
  > Sent: Thursday, July 12, 2007 2:21 PM
  > Subject: [delphi-br] Enter pelo Tab não dá certo
  > 
  > 
  > galera, abaixo está o fonte de um componente edit que estou 
  fazendo. 
  > O enter pelo tab não funciona nele. Gostaria que alguém pudesse 
  me 
  > auxiliar nele pois no keypress eu coloquei assim:
  > 
  > o show messase é exeuctado mas o perform não acontece nada
  > 
  > if key=#13 then
  > begin
  > ShowMessage('Teste');
  > perform(wm_nextdlgctl,0,0);
  > key:=#0;
  > end;
  > 
  > o fonte tá ai, meu msn é [EMAIL PROTECTED] (meu e-mail tb)
  > 
  > aguardo auxilio e deste já agradeço
  > 
  > unit EditPlus;
  > 
  > interface
  > 
  > uses
  > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 
  > Dialogs,
  > StdCtrls, Mask;
  > 
  > type
  > TDataType = (Numero,Cpf,Telefone,CEP,CNPJ,Data,Texto);
  > TEditPlus = class(TEdit)
  > private
  > { Private declarations }
  > FDataType:TDataType;
  > Procedure SetDataType(Const Value:TDataType);
  > protected
  > { Protected declarations }
  > Procedure KeyPress(Var key:char); override;
  > procedure WMSetFocus( var message: TMessage ); message 
  > WM_SetFocus;
  > procedure WMKillFocus( var message: TMessage ); message 
  > WM_KillFocus;
  > public
  > { Public declarations }
  > Constructor Create(Aowner:TComponent);Override;
  > Destructor Destroy; Override;
  > published
  > { Published declarations }
  > Property DataType :TDataType read FDataType Write SetDataType;
  > Property DataTipe :TDataType read FDataType Write SetDataType;
  > end;
  > 
  > procedure Register;
  > 
  > implementation
  > 
  > procedure Register;
  > begin
  > RegisterComponents('Standart', [TEditPlus]);
  > end;
  > 
  > procedure TEditPlus.SetDataType;
  > begin
  > if FDataType <> value then
  > FDataType := Value;
  > end;
  > 
  > procedure TEditPlus.KeyPress;
  > begin
  > If FDataType = Numero Then
  > Begin
  > if Key in [',','.'] then key:=DecimalSeparator;
  > if key=DecimalSeparator then
  > begin
  > if pos(Key,Text) = 0 then
  > key:=Key
  > else
  > Key:=#0;
  > end;
  > If not (Key in 
  > 
  ['0'..'9',#8,#22,#13,#5,#19,#24,#4,#1,#6,#7,#9,#127,DecimalSeparator])
  > Then Key := #0;
  > end;
  > if key=#13 then
  > begin
  > ShowMessage('Teste');
  > SelectNext(ActiveControl,True,True);
  > key:=#0;
  > end;
  > end;
  > 
  > Constructor TEditPlus.Create;
  > begin
  > inherited Create(Aowner);
  > BorderStyle:=bsNone;
  > Height:=13;
  > Color:=clBtnFace;
  > end;
  > 
  > Destructor TEditPlus.Destroy;
  > begin
  > Inherited Destroy;
  > end;
  > 
  > procedure TEditPlus.WMSetFocus( var message: TMessage );
  > begin
  > Color:=clWhite;
  > inherited;
  > end;
  > 
  > procedure TEditPlus.WMKillFocus( var message: TMessage );
  > begin
  > Color:=clBtnFace;
  > inherited;
  > end;
  > 
  > end.
  > 
  > 
  > 
  > 
  > 
  > [As partes desta mensagem que não continham texto foram removidas]
  >

  [As partes desta mensagem que não continham texto foram removidas]



   


------------------------------------------------------------------------------


  No virus found in this incoming message.
  Checked by AVG Free Edition. 
  Version: 7.5.476 / Virus Database: 269.10.4/897 - Release Date: 11/7/2007 
21:57


[As partes desta mensagem que não continham texto foram removidas]

Responder a