Fórum Componente #368131

03/02/2009

0

bom dia galera
To querendo criar um componente que herde de Tedit, só que eu não quero que esse edit aceite letras somente numeros e nem que fique com valor default zero, acretido que preciso sobreescrever o metodo on key press.
Alguem pode me dar uma luz


Erick.rocha

Erick.rocha

Responder

Posts

03/02/2009

Bruno6652

Isso mesmo, você precisa sobreescrever o método KeyPress do TEdit.

Aqui tem um modelo de como começar a desenvolver esse componente. Implementei para que não permita digitar letras, mas além disso precisa ser tratado a questão de apertar Enter, ESC e outras teclas importantes.

unit EditNumber;

interface

uses
  StdCtrls, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TEditNumber = class(TEdit)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
    procedure KeyPress(var Key: Char); override;
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents(´Samples´, [TEditNumber]);
end;

{ TEditNumber }

procedure TEditNumber.KeyPress(var Key: Char);
begin
  inherited;
   if not (key in [´0´..´9´]) then
      Key := 0;
end;

end.
 


Espero ter ajudado.
Sou iniciante nessa parte de Desenvolvimento de Componentes também.

Até mais


Responder

Gostei + 0

07/02/2009

Dbergkamps10

Olá,
Procurepelo componente CurrencyEdit, da RXLib.

Att
Dalton


Responder

Gostei + 0

09/02/2009

Facc

Ou use um compenente nativo do Delphi, o MASKEDIT


Responder

Gostei + 0

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

Aceitar