1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

duvida em vb6

Discussão em 'Programação' iniciada por pascasso, 20 de Maio de 2007. (Respostas: 3; Visualizações: 512)

  1. pascasso

    pascasso Power Member

    tenho duas duvidas. vb6

    1º - num chat k eu fiz tenho para ele por o k as pessoas dizem para uma listbox. mas knd xega ao fim da listbox as pessoas tem k estar sempre a deslocar a barra para baixo para ver o k k escreveram ou o k recebem. e é muito chato. ha alguma meneira de ela ir acompanhando as mensagens, ou seja, em vez de ficar em cima (como na imagem) ir-se deslocando para baixo? >(

    2º - a minha 2ª duvida é uma duvida k apararece knd eu tento solucionar a 1ª. há alguma maneira de kuando a listbox chega ao fim ao ponto de aparcer a barra de deslocação, há alguma maneira de fazer com que se apague a conteudo inteiro, para ficar outra vez em branco?

    aki vai uma imagem de exemplo da barra que tem de ser deslocada para se verem as mensagens:

    [​IMG]
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Quando acrescentas um item, podes fazer
    List1.ListIndex = List1.ListCount - 1

    Quanto à scrollbar, terás de ter um número predefinido de items que o programa aceita, e aí quando
    List1.ListCount = ItemsMáximosQueAListBoxPodeTer
    então
    List1.Clear

    É isto?


    edit -
    Pus-me aqui a brincar no VB e fiz um "workaround" para o que pretendes.
    Quando ACRESCENTAS um item à lista, ANTES de o fazeres, acrescenta este código (mas adapta-o ao teu, obviamente):
    Código:
            If List1.ListCount * TextHeight("W") + TextHeight(CStr(x)) >= List1.Height Then
                List1.Clear
            End If
            List1.AddItem x
    
    Isto deve dar. Se, em vez de apagar a lista toda, quiseres apagar apenas o primeiro item, troca o List1.Clear por um List1.RemoveItem 0.
     
    Última edição: 20 de Maio de 2007
  3. pascasso

    pascasso Power Member

    obrigadao! :)

    funcionou na perfeição!

    no meu caso:

    If lstMessages.ListCount * TextHeight("W") + TextHeight(CStr(11)) >= lstMessages.Height Then
    lstMessages.Clear
    End If

    (kuando faço edit do post n da para por akelas cenas para mostrar codigo, teve de ser assim, para a proxima ja sei)
     
  4. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Esse CStr(11) quer dizer o quê? o.O

    Já agora, altera a linha para

    Código:
    If (lstMessages.ListCount + 1 ) * TextHeight("W") >= lstMessages.Height Then
    Porque o efeito é o mesmo, mas fica mais optimizado :)


    Quanto "àquelas cenas para mostrar código", usa as tags [edit] e [/edit] ;)
     
    Última edição: 20 de Maio de 2007

Partilhar esta Página