Fórum Criação de Componentes #191427

29/10/2003

0

Olá !!!
Preciso de ajuda no seguinte item !!!
quero criar um componente ( TEDIT ) e preciso fazer com que ele ligue o NumLock quando eu entrar no Edit !! pergunta :
Como faço para usar os Eventos (OnEnter,OnExit) quando estrou criando
o componente !!!


Muito Obrigado !!! :?:


Zector

Zector

Responder

Posts

29/10/2003

Beppe

Dentro de um componente tu n~çao usa os eventos, para isso tem as mensagens:

Declare um método assim no private
procedure CMEnter(var Message: TCMGotFocus); message CM_ENTER;

Para o Exit, use CMExit e CM_EXIT;
Na implementação, coloque:
begin
  inherited;
  // seu código aqui...
end;


Ataliba


Responder

Gostei + 0

29/10/2003

Zector

Faleu pela Dica !!! Thanks !!!


Responder

Gostei + 0

29/10/2003

Marcelo Saviski

já que foi tocado no assunto, qual a diferença de CM_ENTER para CM_GOTFOCUS?


Responder

Gostei + 0

29/10/2003

Beppe

CM_ENTER e CM_GOTFOCUS são mensagens diferentes, mas CM_GOTFOCUS parece nem ser usado. Eu copiei a declaração como estava na unit StdCtrls, e não reparei na no tipo TWMGotFocus. Mais apropriado seria usar TWMEnter e TWMExit. Não é totalmente errado usar TWMGotFocus(o Delphi faz assim), já que estes 3 tipos citados são apenas aliáses para TWMNoParams.

Ataliba


Responder

Gostei + 0

29/10/2003

E_gama

Para que vc não precise utilizar ´mensagens´, vc pode fazer o seguinte:

- a classe base de alguns componentes de entrada de dados da VCL tem alguns procedimentos ´abstratos´ que podem ser utilizados..
Coisas do tipo: ´doEnter´ para o evento ´OnEnter´, ´doExit´ para o evento ´OnExit´, etc...

segue um exemplo:


type
  TMeuEdit = class(TEdit)
  private
  protected
    procedure DoEnter; override;
    procedure DoExit; override;
    .
    .
    .

procedure TMeuEdit.DoEnter;
begin
  //  Escreva aqui seu código
  inherited;
end;

procedure TXDBEdit.DoExit;
begin
  // Escreva aqui seu código
  inherited;
end;

.
.
.


Antes de executar o evento ´OnEnter´ por exemplo, o Delphi chama o procedimento ´DoEnter´ ...


Responder

Gostei + 0

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

Aceitar