Teclado Virtual :: Falta Pouco
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)
Exemplo para utilização do componente TTecladoVirtual.
TForm
Name = Form1;
TEdit
Name = Edit1;
TSpeedButton
Name = SpeedButton1;
OnClick = SpeedButton1Click;
PS: Aroldo! Cadê você com seus paradigmas orientados a objeto para nos ajudar?
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
Curtidas 0
Respostas
Tinorj
14/05/2004
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]
[url]http://www.tinojpa.kit.net/download/tecladovirtual.zip[/url]
GOSTEI 0
Tinorj
14/05/2004
SOBE
GOSTEI 0
Nildo
14/05/2004
Legal tinorj, parabens!
GOSTEI 0
Tinorj
14/05/2004
Nildo, sua ajuda foi muito importante... :lol:
[]´s
[]´s
GOSTEI 0
Tinorj
14/05/2004
SOBE
GOSTEI 0
Tinorj
14/05/2004
sobe
GOSTEI 0
Zoom
14/05/2004
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.
GOSTEI 0
Braytiner Heggendorn
14/05/2004
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
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
GOSTEI 0
Tinorj
14/05/2004
Coloquei um link com o projeto. Busca lá o código.
GOSTEI 0
Otto
14/05/2004
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:
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...
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...
GOSTEI 0
Otto
14/05/2004
IMG::
::IMG
::IMG
GOSTEI 0
Tinorj
14/05/2004
oTTo,
Isto já está pronto, falta implementar éas teclas ALT, CTRL, SHIFT, CAPS LOCK, NUN LOCK, ...
Mas valeu pela tentativa... :lol:
Isto já está pronto, falta implementar éas teclas ALT, CTRL, SHIFT, CAPS LOCK, NUN LOCK, ...
Mas valeu pela tentativa... :lol:
GOSTEI 0