Número das Setas Direcionais
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.
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
Curtidas 0
Respostas
Oberdan
14/07/2003
No evento onkeyup você coloca
if key = vk_up //pra cima
vk_down //pra baixo
vk_left //pra esquerda
vk_right // pra direita
[]
Oberdan :!:
if key = vk_up //pra cima
vk_down //pra baixo
vk_left //pra esquerda
vk_right // pra direita
[]
Oberdan :!:
GOSTEI 0
Ilanocf
14/07/2003
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.
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.
GOSTEI 0
Sandra
14/07/2003
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!
GOSTEI 0