Posicao em um Combo
Oi Galera
Utilizo Delphi 6
Como posso fazer com que o combo, ou dbcombo, reconheça que a lista dos itens terminou e volta ao início dela e reconhecer que chegou no início e ir ao final da lista.
Explicando melhor, quando o usuário estiver no primeiro ítem da lista do combo, ou dbcombo, e pressionar a tecla para cima ele vá automaticamente para o último ítem da lista, e se estiver no último ítem da lista e pressionar seta para baixo volte ao primeiro ítem.
Antecipadamente Agradeço qualquer ajuda.
Utilizo Delphi 6
Como posso fazer com que o combo, ou dbcombo, reconheça que a lista dos itens terminou e volta ao início dela e reconhecer que chegou no início e ir ao final da lista.
Explicando melhor, quando o usuário estiver no primeiro ítem da lista do combo, ou dbcombo, e pressionar a tecla para cima ele vá automaticamente para o último ítem da lista, e se estiver no último ítem da lista e pressionar seta para baixo volte ao primeiro ítem.
Antecipadamente Agradeço qualquer ajuda.
Salupe
Curtidas 0
Respostas
Marcelo Saviski
21/09/2004
tente modificar manualmente a linha selecionada, usndo o OnKeyDown:
no OnKeyDown do Combo;
Se usar a seta p/ cima, e estiver no 1º item, vai p/ o último, senão se for a tecla p/ baixo e estiver no último item vai p/ o 1º
deu certo?
no OnKeyDown do Combo;
if (Key = VK_UP) and (Combo.ItemIndex = 0) then Combo.ItemIndex := Combo.Itens.Count - 1 else if (Key = VK_DOWN) and (Combo.ItemIndex = Combo.Itens.Count - 1) then Combo.ItemIndex := 0;
Se usar a seta p/ cima, e estiver no 1º item, vai p/ o último, senão se for a tecla p/ baixo e estiver no último item vai p/ o 1º
deu certo?
GOSTEI 0
Salupe
21/09/2004
Obrigado pela ajuda Marcelo, quase deu certo.
ele somente foi colocado uma posicao acima ou abaixo dependendo do caso, mas não foi para as posições opostas. ex. estando no primeiro ele foi para o segundo e nao para o oitavo como deveria ser.
O que pode ter acontecido errado, aparentemente estaria certo sua rotina.
ele somente foi colocado uma posicao acima ou abaixo dependendo do caso, mas não foi para as posições opostas. ex. estando no primeiro ele foi para o segundo e nao para o oitavo como deveria ser.
O que pode ter acontecido errado, aparentemente estaria certo sua rotina.
GOSTEI 0
Marcelo Saviski
21/09/2004
estranho, tente isso no fim, mas não sei se adianta.
if Key in[VK_UP, VK_DOWN] then Key := 0;
GOSTEI 0
Salupe
21/09/2004
também não deu, aliás nem mostrou mais os ítens.
GOSTEI 0