Array
(
)

Posicao em um Combo

Salupe
   - 21 set 2004

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.


Marcelo Saviski
   - 21 set 2004

tente modificar manualmente a linha selecionada, usndo o OnKeyDown:

no OnKeyDown do Combo;

#Código

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?


Salupe
   - 21 set 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.


Marcelo Saviski
   - 21 set 2004

estranho, tente isso no fim, mas não sei se adianta.

#Código

if Key in[VK_UP, VK_DOWN] then 
Key := 0;



Salupe
   - 21 set 2004

também não deu, aliás nem mostrou mais os ítens.