Ajuda no VB6

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.
 
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
 
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
 
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:
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:
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.
 
Axo que já percebi..
O ListCount é o total de items na listbox e o listindex é o valor(entre 0 e x).
Eu pus assim:

If List1.ListIndex = -1 Then
MsgBox ("Por favor selecione a lembrança que deseja remover")
ElseIf MsgBox("Tem a certeza?", 4) = vbYes Then
Item = List1.ListIndex
List1.RemoveItem Item
End If
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:
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
 
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 ;)
 
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 ;)
Ok .... essa eu não percebi mesmo :x podias tentar explicitar, sff?
 
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. ;)
 
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
 
Back
Topo