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

Ajuda no VB6

Discussão em 'Programação' iniciada por WinAce_Boy, 16 de Dezembro de 2006. (Respostas: 35; Visualizações: 4567)

  1. WinAce_Boy

    WinAce_Boy Power Member

    Oi, gostaria de saber urgentemente de como fazer o seguinte:
    Quando eu tenho uma listbox, como faço para acrescentar um novo item na lista.
    Aguardando uma resposta o mais cedo possível.
    Obrigado pela atenção.
     
  2. shello

    shello Moderador
    Staff Member

    Usando o Método AddItem do objecto ListBox... Tipo:
    Código:
    ListBox1.AddItem InputBox("Novo item?")
    Cumps

    P.S: Para a próxima, usa uma thread que já tenhas criado para por mais dúvidas... E consulta sempre as referências da linguagem no MSDN Library ;)
     
    Última edição: 17 de Dezembro de 2006
  3. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Como disse o shello,
    ListBox.AddItem <item a adicionar>

    a = "ola"
    ListBox.AddItem a
    OU
    ListBox.AddItem "ola"
    OU
    ListBox.AddItem InputBox("Novo item?") '< e aqui, aparece uma caixa que pede ao utilizador para escrever um novo item, e o que o utilizador escreverá é que irá "entrar" na listbox.

    Basicamente o que precisas é do método AddItem.

    Para remover precisarás do RemoveItem, e para a "manutenção" da ListBox deves precisar das propriedades ListIndex e ListCount.


    Um conselho: não escrevas no título das tuas threads "Ajuda no VB6" ou isso. Escreve por exemplo "[VB6] Adicionar items numa listbox" ou "Como adicionar items numa listbox em VB6" ;)

    Cumps [[[[[[[]]]]]]]
    angelofwisdom
     
  4. WinAce_Boy

    WinAce_Boy Power Member

    Ok, desculpa e obrigado.
    E já agora será que me podiam dizer o que se utiliza(se é a API ou os comandos) para se desligar o computador?
     
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Há uma API que faz isso, só que neste momento não sei qual é. Daqui a pouco procuro ;)

    Penso que em alternativa, podes fazer Shell "shutdown"

    Cumps [[[[[[[]]]]]]]
    angelofwisdom
     
  6. WinAce_Boy

    WinAce_Boy Power Member

    Aguardando ;) TX.
     
  7. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Deve ser isto:

    Código:
    Private Const EWX_LOGOFF = 0
    Private Const EWX_SHUTDOWN = 1
    Private Const EWX_REBOOT = 2
    Private Const EWX_FORCE = 4
    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
     
    Private Sub Form_Load()
       msg = MsgBox("OK para desligar o computador, ou Cancelar para cancelar.", vbCritical + vbOKCancel + 256, App.Title)
       If msg = vbCancel Then End
       ret& = ExitWindowsEx(EWX_FORCE Or EWX_SHUTDOWN, 0)
    End Sub
     
    
    Experimenta e depois diz qualquer coisa ;) eu não posso experimentar aqui porque pronto ... não posso desligar ainda o computador :D

    edit:
    ATENÇÃO: EVITA USAR A FLAG EWX_FORCE.
    Se o programa for um que eu fiz cujo objectivo é desligar o computador a uma determinada hora da noite, e apenas tens o Winamp ou o WMP ligados, e o objectivo é, se adormeceres, o pc desliga-se sozinho, podes usá-la.
    Agora, um forced shutdown pode provocar perda de dados nos programas abertos. Caso tenhas, imagina, o Word aberto, corres o risco de perder o que fizeste lá ;)
    Usa-o apenas caso seja necessário teres a certeza absoluta que o computador foi desligado.

    edit 2:
    Estive a dar uma vista de olhos mais "profunda" e notei uma coisa: o código anterior pode não resultar em Windows NT (e derivados - 2000 e XP). Dá uma vista de olhos a este exemplo. Estarás a trabalhar com os privilégios do programa, e isso envolve uma API mais avançada, que nem eu sei controlar bem.

    Cumps [[[[[[[[]]]]]]]]]
    angelofwisdom
     
    Última edição: 19 de Dezembro de 2006
  8. WinAce_Boy

    WinAce_Boy Power Member

    Getting complicated..
    Também não me dava muito jeito desligar o pc agora... lol
    É aasim: a minha net só tem 4mb de downloads, e isso é muito pouco para a minha carroajem, e só tenho direito a downloads ilimitados das 1:00:00 às 8:00:00 então eu estou a construir um programa que abre um programa de downloads das 1:00:00 às 8:00:00, às 8:00:00 o meu programa desliga o programa de downloads e encerra o pc... dá muito jeito porque além de ser automático e não se precisa de estar a acordar e isso, dá para aproveitar ao máximo dos downloads ilimitados.
    Era só para te informar.. ;)
    Gostaria que ignorasses todas as outras opções para além da opção que desliga o pc seguramente.
    Thanks dude ;).
     
    Última edição: 17 de Dezembro de 2006
  9. Não vejo necessidade de se fazer um programa somente para isto. Eu tinha um problema semelhante ao seu no passado. Eu o resolvi utilizando o Agendador de Tarefas do próprio Windows. Mas como eu não consegui que o Windows desligasse o computador (o máximo que consegui foi que ele fizesse log off, sem no entanto se desligar), baixei gratuitamente um excelente Desligador Automático: "JCK Auto Power Off" (nele você irá encontrar várias opções de configuração).

    Passo a passo:

    1) Abri o Agendador de Tarefas (Iniciar --> Programas --> Acessórios --> Ferramentas do Sistema --> Tarefas Agendadas)

    2) Agendei para que ele abrisse o Internet Explorer todos os dias à meia-noite e entrasse na Internet. Aqui é muito importante marcar a opção "Acordar o computador para executar esta tarefa" (na planilha Configurações). O Internet Explorer deve estar configurado para entrar automaticamente na Internet.

    3) Agendei para que ele abrisse um gerenciador de downloads todos os dias à meia-noite e 4 minutos.

    4) Agendei para meia-noite e 5 minutos a abertura do desligador automático "JCK Auto Power Off", já citado anteriormente.

    5) Abri o "Auto Power Off" e o configurei para que desligasse o computador sempre às 6 da manhã. Aqui é importante que seja marcada a opção "Save configuration on exit" e a opção "Forced method". Em resposta a pergunta "In the configured hour, what to do?" você deve escolher "Shut down the computer".

    6) Ao desligar o computador após o seu uso normal, utilize o método da Hibernação.

    A partir daí você não terá mais trabalho. Ele se ligará sozinho, fará o que tiver que fazer e se desligará automaticamente.
     
  10. WinAce_Boy

    WinAce_Boy Power Member

    Lol.. Também sei de alguns programas que fazem isso, mas eu sou viciado em programar.. ;)
    Obrigadão na mesma Falke... ;)
     
  11. WinAce_Boy

    WinAce_Boy Power Member

    Como faço para remover um Item selecionado?
     
  12. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    De onde?
     
  13. WinAce_Boy

    WinAce_Boy Power Member

    Sorry.. De uma ListBox
     
  14. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Ah...
    Na ListBox tens items entre 0 e List1.ListCount - 1. O Item actual (seleccionado) é dado por List1.ListIndex. Para o removeres, faz List1.RemoveItem item (estando o item entre 0 e o ListCount - 1). :)
     
  15. WinAce_Boy

    WinAce_Boy Power Member

    Axo que já percebi..
    O ListCount é o total de items na listbox e o listindex é o valor(entre 0 e x).
    Eu pus assim:

    Obrigadão angelofwisdom e acerca da manutenção a que te referes?

    Edit: Ah, já agora sabes como eu podia pôr na msgbox acima um título.. Estourei a minha cabeça toda a tentar..
    ;)

    Edit: Como faço para que o utilizador atribue um nome a um item a partir de uma textbox e depois quando clicka nesse mesmo item o nome apareça noutra textbox?
     
    Última edição: 21 de Fevereiro de 2007
  16. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Acho que percebeste bem :)
    Os items 0 1 2 3 e 4 são quantos? 5! Do 0 ao 4 são 5 items. O ListCount retorna exactamente isso - 5. Mas se quiseres ter o index do item mais elevado, tens de pegar no ListCount e subtrair-lhe 1 (porque não é de 1 a 5, mas sim de 0 a 4). Resultado: 5 - 1 = 4 :P

    Quando eu disse "manutenção", apenas queria dizer que quando precisares de "manipular" cada item (saber qual é a sua posição, o que ele tem escrito...), irás acabar por precisar do ListIndex (posição do item actual) e do ListCount (número total de items na ListBox).

    Quanto ao título da MsgBox: Msgbox "Texto a perguntar", <flags>, "Título da MsgBox" :)

    Quanto à tua última pergunta... não a percebi muito bem, mas agora aconselho-te a ver outra propriedade: enche uma listbox com quaisquer valores/qualquer texto... enfim, enche a listbox com o que quiseres, e faz MsgBox List1.List(List1.ListIndex) ;) irás ter uma MsgBox que irá mostrar o texto que está escrito no item actualmente escolhido.

    Cumps [[[[[[]]]]]]]
    angelofwisdom
     
  17. WinAce_Boy

    WinAce_Boy Power Member

    Obrigado, isso ajudou..
    Gostava de saber também como atribuir valores dados em várias TextBoxes pelo utilizador a cada item(os valores diferenciam de item para item) e quando se clicka num item esses valores aparecem nas TextBoxes onde se escreveu os mesmos valores.

    Obrigado pela atenção ;)
     
  18. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Ok .... essa eu não percebi mesmo :x podias tentar explicitar, sff?
     
  19. WinAce_Boy

    WinAce_Boy Power Member

    Tens duas txtbox e numa delas escreves o nome e na outra escreves uma data por exemplo, e adicionas um item com o que está escrito na 1a txtbox. Quando clickas no item aparece o nome na 1a txtbox e na 2a aparece a data que escreveste..
    Isto mas com muitos mais items. ;)
     
  20. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Hmmm... eu, nessas situações, faço uma ListBox invisível com as datas. A ListBox com os nomes está visível, mas a que tem as datas não.
    Assim, quando adicionas, adicionas o nome à ListBox visível, e a data à invisível.

    Para as ires buscar, quando o utilizador clica no nome,
    TextNome.Text = ListboxVisivel.List(ListboxVisivel.ListIndex)
    TextData.Text = ListboxInvisivel.List(ListboxVisivel.ListIndex)

    é qualquer coisa assim. Desta forma, vais buscar os dados certos às listboxes certas.

    Acho que é isto :P neste momento estou um pouco ocupado no relatório de matemática e não te posso dar mais atenção (nem testar o que acabei de escrever).

    Até à próxima ;)

    Cumps [[[[[[]]]]]]
    angelofwisdom
     

Partilhar esta Página