Posicao em um Combo

21/09/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.


Salupe

Respostas

21/09/2004

Marcelo Saviski

tente modificar manualmente a linha selecionada, usndo o OnKeyDown:

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?


Responder Citar

21/09/2004

Salupe

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.


Responder Citar

21/09/2004

Marcelo Saviski

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

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



Responder Citar

21/09/2004

Salupe

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


Responder Citar