Fórum Teclado Virtual :: Falta Pouco #232419

14/05/2004

0

Bom, como muitos procuram um teclado virtual, comecei a fazer um para preenchimento de componentes herdados da classe TCustomEdit. As funcionalidade para adicionar as letras/números/caracteres no na posição atual do TCustomEdit está funcionando. Mas falta as outras funcionalidades, tais como ´backspace´, ´delete´, ´insert´, entre outras...

Vamos tentar finalizar este divã...

TForm
Name = frmTecladoVirtual
BorderStyle = bsDialog
Caption = ´Teclado Virtual´
FormStyle = fsStayOnTop

TSpeedButton´s das letras/números/caracteres
Caption = ´a´ ... ´z´
Tag = 0

TSpeedButton´s das funcionalidades
Caption = Esc/Ins/Del/PgUp/...
Tag = *Código da tecla* (27=esc/13=enter)

procedure TfrmTecladoVirtual.SpeedButton37Click(Sender: TObject);
var
  Texto, NovoTexto, Letra: String;
  Posicao: Integer;
begin
  with TCustomEdit(Componente) do begin
    if (TSpeedButton(Sender).tag = 0) then begin
      Texto := Text;
      Posicao := SelStart;

      Letra  := TSpeedButton(Sender).Caption;

      if Posicao = Length(Texto) then
        NovoTexto := Texto + Letra
      else
        if Posicao = 0 then
          NovoTexto := Letra + Texto
        else
          NovoTexto := Copy(Texto, 1, Posicao) + Letra + Copy(Texto, Posicao + 1, Length(Texto) - Posicao);

      Text := NovoTexto;
      SelStart := Posicao + 1;
    end else ;
  end;
end;

procedure TfrmTecladoVirtual.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;


Exemplo para utilização do componente TTecladoVirtual.

TForm
Name = Form1;

TEdit
Name = Edit1;

TSpeedButton
Name = SpeedButton1;
OnClick = SpeedButton1Click;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  Application.CreateForm(TfrmTecladoVirtual, frmTecladoVirtual);
  frmTecladoVirtual.Componente := ActiveControl;
  frmTecladoVirtual.Show;
end;


PS: Aroldo! Cadê você com seus paradigmas orientados a objeto para nos ajudar?


Tinorj

Tinorj

Responder

Posts

14/05/2004

Tinorj

Já implementei os botões delete, backspace e tab. Abaixo segue o link para pegar o projeto atual com as alterações feitas.

[url]http://www.tinojpa.kit.net/download/tecladovirtual.zip[/url]


Responder

Gostei + 0

18/05/2004

Tinorj

SOBE


Responder

Gostei + 0

18/05/2004

Nildo

Legal tinorj, parabens!


Responder

Gostei + 0

18/05/2004

Tinorj

Nildo, sua ajuda foi muito importante... :lol:

[]´s


Responder

Gostei + 0

21/05/2004

Tinorj

SOBE


Responder

Gostei + 0

23/05/2004

Tinorj

sobe


Responder

Gostei + 0

23/05/2004

Zoom

Da pra por favor todo mundo para com este negóio de UP,será possível que isso vai voltar aqui no fórum, por favor pessoal, quando quiser que o tópico suba escreva algo útil e que traga informações complementares ao assunto abordado.


Responder

Gostei + 0

27/05/2004

Braytiner Heggendorn

Estive lendo sua mensagem no fórum da Clube Delphi e vc disse que conseguiu incluir no teclado virtual a tecla TAB. Como?
Estou trabalhando com um form, onde preciso tratar na OnKeyDown a tecla TAB, mas essa tecla não gera eventos de teclado, vc tem alguma idéia de como poderia faze-lo/

Obrigado

Braytiner


Responder

Gostei + 0

27/05/2004

Tinorj

Coloquei um link com o projeto. Busca lá o código.


Responder

Gostei + 0

27/05/2004

Otto

Olá. uma vezs tb fiz um tecladinho virtual, e tanto podia ser digitando quanto apertando as teclas com o mouse...

altere a propriedade Keypreview do form pra true, e no evento OnKeyPress do form do teclado vc faz:

var
  i : Integer;
begin
  if PodeDigitar then // if true [bool]
     begin
       if key = 13 then btnEnviar.Click;    // Enter
       if Ord(Key) = 32 Then btnEspaco.Click // espaço
       else if Ord(Key) = 8 Then btnbackspace.Click // backspace
       else // se nao for nenhuma dessas, entao
          for i := 0 to ComponentCount - 1 do
            if Components[i] is TSpeedbutton then
               if (Components[i] as TSpeedButton).Caption = Uppercase(Key) Then
                  Begin
                    (Components[i] as TSpeedButton).Click;
                    Break;
                  End
      else // se nao tiver a recla digitada ele da um beep
        Beep;
     end
  else // se nao poder digitar.
    Beep;
end;


a variavel PodeDigitar é uma que eu coloquei la pra saber se o carinha pode digitar ou nao, dai é so remove-la se quiser.
e se perceber, tem algumas teclas la que eu me referi a alguns botoes...

flw...


Responder

Gostei + 0

27/05/2004

Otto

IMG::

[img:f30fc8119e]http://www.seek.srv.br/otto/delphi/tecladinho.gif[/img:f30fc8119e]

::IMG


Responder

Gostei + 0

31/05/2004

Tinorj

oTTo,

Isto já está pronto, falta implementar éas teclas ALT, CTRL, SHIFT, CAPS LOCK, NUN LOCK, ...

Mas valeu pela tentativa... :lol:


Responder

Gostei + 0

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

Aceitar