criar componente em tempo de execução e evitar que uma tecla

Delphi

21/12/2004

Olá,

Tem como criar um componente (TEdit) em tempo de execução e manipular o pressionamento de uma determinada tecla?


Balceiro

Balceiro

Curtidas 0

Respostas

Fer_nanda

Fer_nanda

21/12/2004

Para criar o edit
procedure TForm1.FormClick(Sender: TObject);
var b:TEdit;
begin
  b:=TEdit.create(self);
  b.parent:=self;
  b.left:=250;
  b.top  :=100;
  b.name:=´caixa´;
  b.text:=´Seu Texto Aqui´;
end;

Como quer manipular a tecla? Não entendi, pode ser mais específico?
Até


GOSTEI 0
Balceiro

Balceiro

21/12/2004

é que estou criando um componente que mostra o valor atual de venda de um produto e se o cliente quiser ele pode alterar este valor, mas ele não pode digitar outro valor senão número, ponto e virgula.


GOSTEI 0
Fer_nanda

Fer_nanda

21/12/2004

é que estou criando um componente que mostra o valor atual de venda de um produto e se o cliente quiser ele pode alterar este valor, mas ele não pode digitar outro valor senão número, ponto e virgula.

No evento key press do componente coloque
  if not(Key in[´0´..´9´, ´,´,´.´,8])then {8 permite que vc utilize o backspace}
  begin
    Beep;
    Key := 0;
  end;


Espero que seja isso,
Até


GOSTEI 0
Paulo_amorim

Paulo_amorim

21/12/2004

Olá

Para colocar o código que a Fernanda falou, crie uma rotina do tipo TNotifyEvent (ou seja, que tenha o parâmetro Sender: TObject) e na hora de instanciar seu componente coloque
OnKeyPress := <sua rotina>;



GOSTEI 0
Balceiro

Balceiro

21/12/2004

teria como vc passar um exemplo?


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

21/12/2004

bem, tente dessa foma pra poupar trabalho...

coloque um edit, deixe com nome de ´Edit´ mesmo, e clique duplo no evento onkeypress

coloque o código que vc quer que seja executado quando teclar algo no edit

agora delete esse edit e deixe o código lá

depois quando criar o edit, faça

...OnKeyPress := EditKeyPress;


colocar e deletar o edit é só pra não ter que escrever todos os parametros a mão hehe


GOSTEI 0
Balceiro

Balceiro

21/12/2004

deu certo não.


GOSTEI 0
Paulo_amorim

Paulo_amorim

21/12/2004

Olá

Só pra começar, eu errei o tipo do método... confundi o KeyPress com o Click do botão, mas beleza...

Simplificadamente, seria:
procedure FazAlgo(Sender: TObject; var Key: Char);
begin
end;

procedure CriaEdit;
var
  edt: TEdit;
begin
  edt := TEdit.Create(Self);
  edt.Parent := Self;
  edt.OnKeyPress := FazAlgo;
end;


Espero que ajude
Até+


GOSTEI 0
Balceiro

Balceiro

21/12/2004

ok... resolvido, muito obrigado a todos.


GOSTEI 0
POSTAR