Ajuda no VB6

Ao removeres da listbox com o nome, removes também da listbox com a data

Listnome.Removeitem item
Listdata.Removeitem item '(mesma variável)

WinAce_Boy disse:
Xau e desculpa não sabia e escusas de responder para não te distraires
Quanto a isso não te preocupes que eu só respondo porque quero ;) e sou chato :P não descanso enquanto não perceberes!

Pensa logicamente. Qualquer modificação que faças na listbox com o nome, tens de fazer a modificação correspondente na listbox com a data. Uma coisa que não pode nunca acontecer, é teres x items na listbox com o nome, e x + y items na listbox com a data. Isto é, imagina que tens 15 nomes e 25 datas. Há datas que não correspondem a nomes, e isso fica uma autêntica confusão saber o que é que é de quem. Então, ao removeres um nome, removes a correspondente data, e ao adicionares um, adicionas a data. Desta forma, se for bem feito, ambas as listboxes têm sempre o mesmo ListCount.
Se os ListCounts forem diferentes ... podes muito bem dizer ao utilizador que há corrupção de dados... porque neste contexto, faltam coisas (ou um nome para uma data, ou vice-versa).

Cumps [[[[[[]]]]]]
angelofwisdom
 
O problema é que não é obrigatório o utilizador preencher a data também.

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

Não pode ser listindex porque não é obrigatório preencher a data. E assim os dados iam ficar todos mal...lol
 
Ora essa! Estás a cometer um grave erro: se o utilizador não põe data, é um erro não pores data. Certo está em pores uma data nula.
Isto é, adicionas à lista um valor vazio.
Repara como fica organizado assim:
Código:
João       14/02/2006
Joana      15/01/2007
Eu       
Tu         21/02/2007
Outro

Colocar da forma seguinte é erro. Um erro crasso que te poderá trazer problemas futuramente:
Código:
João       14/02/2006
Joana      15/01/2007
Eu         21/02/2007
Tu       
Outro
Até porque a data 21/02/2007 não pertence a "Eu", mas sim a "Tu". Ao "amontoares" informação desta forma, perdes a "sincronia" entre os nomes e as datas.

Resumo: quer o utilizador ponha data quer não, faz os AddItems a ambas a textboxes. Como eu disse acima, mudas numa, mudas noutra. Nunca alteres uma e deixes a outra como está.
 
Última edição:
Já percebi, obrigadão man ;)
Outra coisa:
Gostava também de saber como fazer para guardar alterações feitas no programa por exemplo o texto de uma textbox ser "lololol", fecha-se o programa e depois quando se volta a abrir o mesmo aparece o "lololol" na mesma textbox..
Aguardo resposta..
Abraços

ps: não me estou a referir ao Form_Load nem nada disso, estou mesmo a falar de <guardar>.
Obrigado pela atenção ..
 
Última edição:
Tens de aprender a trabalhar com File I/O (Input/Output), que é escrever para ficheiros, e gravar.

Código:
Open App.Path & "\definicoes.cfg" For Input As #1
  Line Input #1, Variavel
  Line Input #1, Variavel2
Close #1

estas três linhas fazem o seguinte:
- Abre o ficheiro "definicoes.cfg" (nunca uses caracteres especiais, como acentos ou o Ç), que está contido na pasta actual do programa (App.Path), para leitura (Input).
- Lê a primeira linha do ficheiro, e grava-a na variável "Variavel"
- Lê a linha seguinte, e grava-a na variável "Variavel2"
- Fecha o ficheiro.

Gravar:
Código:
Open App.Path & "\definicoes.cfg" For Output As #1
  Print #1, Variavel
  Print #1, Variavel2
Close #1
- Abre o ficheiro "definicoes.cfg", que está contido na pasta actual do programa, para gravação (Output).
- Escreve na primeira linha do ficheiro, a variável "Variavel"
- Escreve na linha seguinte, a variável "Variavel2"
- Fecha o ficheiro.

Pensando um pouco, percebes isso tudo de trás para a frente ;) estou-te mesmo a dar a base mais básica :)

edit - atenção! Ao abrires o ficheiro para Output, estarás a apagá-lo primeiro. Isto é, estás a substituir o ficheiro para lhe gravar as variáveis.

Cumps [[[[[[[]]]]]]]]
angelofwisdom
 
Última edição:
Not really... mas se calhar é melhor fazeres testes. Isto é, vai brincando com a gravação e leitura de ficheiros num novo projecto. No entanto, aqui tem cuidado com o que fazes porque, como eu disse, ao abrires um ficheiro para output, apagas o ficheiro primeiro. Abri-lo para output e depois fechá-lo apaga-o imediatamente. É recuperável, com o software apropriado, mas é uma dor de cabeça que não queres ter ;)

Dou-te um exemplo para brincares:
cria um novo projecto
mete-lhe uma textbox
mete-lhe um command button

no command button mete o seguinte código:
Código:
Open App.Path & "\definicoes.cfg" For Output As #1
  Print #1, Text1.Text
Close #1
.

No form_load mete o seguinte:
Código:
Open App.Path & "\definicoes.cfg" For Input As #1
  Line Input #1, Variavel
  Text1.Text = Variavel
Close #1

isso é a resposta ao que precisas ;) agora, vai brincando com isso que é assim que se aprende. Foi assim que aprendi :P
 
Podias ser mais específico? Não posso ligar agora o VB, e não consigo adivinhar que erro te dá :P
Só pelo sim pelo não, antes do "Open" do Form_Load, põe um Show.
Se não resultar, posta aqui o erro. É que eu estou a escrever o código totalmente à mão sem sequer o testar antes...

edit - ah, calma, deve ser um File Not Found, porque o ficheiro "definicoes.cfg" à primeira execução não existe.

Substitui o código do form_load pelo seguinte:

Código:
On Error Resume Next
'Show
Open App.Path & "\definicoes.cfg" For Input As #1
  Line Input #1, Variavel
  Text1.Text = Variavel
Close #1

Se continuar a dar erro, tira o ' do Show.
 
Última edição:
Eu não posso mesmo de momento trabalhar com isso. Verifica se por acaso o App.Path tem, no final, o "\". Se tiver, remove-a de antes do "\definicoes.cfg"
 
Penso que agora o problema está no code do command1 e não no form_load.. Porque agora só dá o erro quando eu cliko no butao

ps- mas continua a não funcionar
 
Última edição:
Oi, ja consegui trabalhar com isso do I/O.. até é bastante simples.. Afinal o erro era apenas do facto de eu ter uma conta limitada.. Quando soube da fonte do problema, so me apetecia partir alguma coisa..lol, na brinca..
Xauzao e mais uma vez obrigadao(mesmo grande)..lol ;)
Abraços e obrigada pela a atenção:)
 
Back
Topo