Fórum Número das Setas Direcionais #169260

14/07/2003

0

Olá pessoal,

Gostaria de saber quais os números das setas direcionais, pois preciso colocar no evento OnKeyPress de uma DBGrid para realizar consultas navegando entre os registros, para evitar q o usuário utilize o mouse.

Grato,

Ilano.


Ilanocf

Ilanocf

Responder

Posts

14/07/2003

Oberdan

No evento onkeyup você coloca

if key = vk_up //pra cima
vk_down //pra baixo
vk_left //pra esquerda
vk_right // pra direita

[]
Oberdan :!:


Responder

Gostei + 0

14/07/2003

Ilanocf

Não está dando muito certo, pois ao apertar a seta para baixo o cursos vai sempre para o primeiro registro do DBGrid, q está conectado à consulta. Veja como está meu código:

If key = vk_up Then
Begin
If RadioGroup1.ItemIndex = 0 Then
Begin
DMDados.ConsLivros.Close;
DMDados.ConsLivros.SQL.Clear;
DMDados.ConsLivros.SQL.Add(´SELECT * FROM TBLivros WHERE TituloDaObra LIKE:P1 ORDER BY TituloDaObra´);
DMDados.ConsLivros.ParamByName(´P1´).Value:=Edit1.Text + ´¬´;
DMDados.ConsLivros.Open;
DMDados.Relacao.Close;
DMDados.Relacao.SQL.Clear;
DMDados.Relacao.SQL.Add(´SELECT * FROM TBAutores WHERE CodigoDoLivro=:T´);
DMDados.Relacao.ParamByName(´T´).Value:=StrToIntDef(DBEdit1.Text, 0);
DMDados.Relacao.Open
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
DMDados.ConsLivros.Close;
DMDados.ConsLivros.SQL.Clear;
DMDados.ConsLivros.SQL.Add(´SELECT * FROM TBLivros WHERE ISBN LIKE:P1 ORDER BY TituloDaObra´);
DMDados.ConsLivros.ParamByName(´P1´).Value:=´¬´+Edit1.Text + ´¬´;
DMDados.ConsLivros.Open;
DMDados.Relacao.Close;
DMDados.Relacao.SQL.Clear;
DMDados.Relacao.SQL.Add(´SELECT * FROM TBAutores WHERE CodigoDoLivro=:T´);
DMDados.Relacao.ParamByName(´T´).Value:=StrToIntDef(DBEdit1.Text, 0);
DMDados.Relacao.Open;
End
End
Else
If key = vk_down Then
Begin
If RadioGroup1.ItemIndex = 0 Then
Begin
DMDados.ConsLivros.Close;
DMDados.ConsLivros.SQL.Clear;
DMDados.ConsLivros.SQL.Add(´SELECT * FROM TBLivros WHERE TituloDaObra LIKE:P1 ORDER BY TituloDaObra´);
DMDados.ConsLivros.ParamByName(´P1´).Value:=Edit1.Text + ´¬´;
DMDados.ConsLivros.Open;
DMDados.Relacao.Close;
DMDados.Relacao.SQL.Clear;
DMDados.Relacao.SQL.Add(´SELECT * FROM TBAutores WHERE CodigoDoLivro=:T´);
DMDados.Relacao.ParamByName(´T´).Value:=StrToIntDef(DBEdit1.Text, 0);
DMDados.Relacao.Open
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
DMDados.ConsLivros.Close;
DMDados.ConsLivros.SQL.Clear;
DMDados.ConsLivros.SQL.Add(´SELECT * FROM TBLivros WHERE ISBN LIKE:P1 ORDER BY TituloDaObra´);
DMDados.ConsLivros.ParamByName(´P1´).Value:=´¬´+Edit1.Text + ´¬´;
DMDados.ConsLivros.Open;
DMDados.Relacao.Close;
DMDados.Relacao.SQL.Clear;
DMDados.Relacao.SQL.Add(´SELECT * FROM TBAutores WHERE CodigoDoLivro=:T´);
DMDados.Relacao.ParamByName(´T´).Value:=StrToIntDef(DBEdit1.Text, 0);
DMDados.Relacao.Open;
End;
End;

Quero q ao passar para o próximo registro ele permaneça lá e realize a consulta e não voltar sempre para o primeiro registro.


Responder

Gostei + 0

15/07/2003

Sandra

If key = vk_up Then Begin . . . If key = vk_down Then Begin . . . End;


Ilano,


Key =
37 : para esquerda;
38 : para cima;
39 : para direita;
40 : para baixo.


Tente dessa maneira:

- coloque seu código no OnKeyDown do DBGrid

OU

- no OnKeyPress do form (alterar o KeyPreview para True).



Boa sorte!


Responder

Gostei + 0

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

Aceitar