Guardar Configurações VB 6 ????

RPortela

Power Member
boas, queria saber como guardar as opções de configurações/definições no visual basic, alguem me sabe ajudar?

eu vo explicar melhor, eu tenho várias opções num programa que estou a fazer, entre elas a lingua, e as opções de ver/ocultar barra de estado/barra de ferramentas, etc, e queria saber como guardar essas configurações para que o utilizador nao tenha que voltar a alterar tudo de novo, ou seja, as configurações so seriam alteradas se o utilizador assim o deseja-se.

ajudem-me plz

cumprimentos,
 
Portanto,


MostrarBarraDeEstado = True/False (booleano)
MostrarBarraDeFerramentas = True/False (booleano)
Lingua =
- Portugues/Ingles/Frances/Alemao (strings) (evitar usar acentos ;) )
- 1/2/3/4 (integers)


Podes gravar num ficheiro à parte; config.txt

MostrarBarraDeEstado=True
MostrarBarraDeFerramentas=False
Lingua=1 (aconselho-te a usar esta forma ;) )


Usando o próprio I/O do Visual Basic; ou podes gravar num INI. No último tens duas hipóteses:
1) Usas o I/O do Visual Basic exactamente da mesma forma e gravas em INI
2) Usas as APIs GetPrivateProfileString/WritePrivateProfileString

Se não tens por hábito usar APIs, podes usar o I/O do VB, mas se é para a tal PAT, aconselho-te a usar a API.
Sempre mostra mais algum conhecimento da tua parte ;)

Se precisares de exemplos em como usar o PrivateProfileString, diz ;)

Espero ter ajudado

Cumps [[[[[[[[[]]]]]]]]]
angelofwisdom
 
Última edição:
boas,

ja usei varias api´s noutros trabalhos,

se me pudesses mostrar alguns exemplos dessa api era bom, ja peskisei por ela, e nao encontro nada :'(

ja tinha pensado nessa opção de utilizar variaveis booleanas, mas nao a tinha aplicado na pratica porque nao sabia onde guardar essas variaveis.

cumprimentos,
 
Infelizmente não te consigo fazer agora funções para Ler/Alterar INI's, mas deixo-te assim:
1) Ler: GETPrivateProfileString
2) Alterar: WRITEPrivateProfileString (eu tinha dito SetPrivateProfileString... está errado =X ja editei)
3) Exemplo de como usar estas APIs: INI Files

Espero que te ajude

edit - se esperares, posso fazer-te as funções ReadINI/SaveINI, mas vai ter de ficar para durante a semana, porque eu tenho escola e pouco tempo e não consigo usar o computador à noite =X

Cumprimentos [[[[[[[[[]]]]]]]]]
angelofwisdom
 
Última edição:
Usando ficheiros, é relativamente fácil.

Basta usares os eventos OnClose e Load (já não me lembro bem de VB, corrijam-me se estiver errado nos eventos).

No Load carregas as variáveis tal e qual como no ficheiro INI (toma em consideração que o ficheiro PODE NÃO existir, verifica isto antes de carregares "nada" para dentro de variáveis..., senão dá porcaria). E no OnClose gravas novamente as configurações para dentro do ficheiro.

A unica coisa que necessitas saber, é trabalhar com ficheiros :)

Pessoalmente eu não gosto muito dessa técnica..., mas é uma forma de fazer isso :)

abraços, HecKel
 
Eu ando com um problema rídiculo...não consigo criar executáveis no Visual Basic 2005 Express Edition...alguem me ajuda?

Ja agora. Eu tenho uma textbox, e quero que sempre que eu carregue no "botton1" apareça um "1" nessa textobox...

eu fiz:

button1.click

textbox.text = "1"

mas isso faz tipo reset e mete o numero lá...mas eu quero que vão aparecendo mais números...

e o executável?
 
boas,

obrigado a todos pela vossa ajuda, vou ver melhor esses sites e tentar resolver este pequeno problema na imensidao dos problemas que ainda vou ter que resolver para a PAT,

uma vez mais..thanks

cumprimentos,
 
Usando ficheiros, é relativamente fácil.

Basta usares os eventos OnClose e Load (já não me lembro bem de VB, corrijam-me se estiver errado nos eventos).

No Load carregas as variáveis tal e qual como no ficheiro INI (toma em consideração que o ficheiro PODE NÃO existir, verifica isto antes de carregares "nada" para dentro de variáveis..., senão dá porcaria). E no OnClose gravas novamente as configurações para dentro do ficheiro.

A unica coisa que necessitas saber, é trabalhar com ficheiros :)

Pessoalmente eu não gosto muito dessa técnica..., mas é uma forma de fazer isso :)

abraços, HecKel
Exacto. Os eventos são QueryUnload e Load ;) e é practicamente como o HecKel disse.

No Load, verificas se o ficheiro existir. Se não existir, aplica as configurações default.
Se existir, abre o INI, lê cada linha a aplica-a às variáveis. Se porventura existir alguma variável que não conste do INI, aplica a configuração default a essa variável.

No QueryUnload, simplesmente grava o INI (a menos que o queiras fazer a pedido do utilizador).

Eu ando com um problema rídiculo...não consigo criar executáveis no Visual Basic 2005 Express Edition...alguem me ajuda?

Ja agora. Eu tenho uma textbox, e quero que sempre que eu carregue no "botton1" apareça um "1" nessa textobox...

eu fiz:

button1.click

textbox.text = "1"

mas isso faz tipo reset e mete o numero lá...mas eu quero que vão aparecendo mais números...

e o executável?
Gaminger, era preferível abrires uma nova thread, uma vez que esta é sobre VB6 e o teu Visual Basic é .NET.

No entanto, logicamente, parece-me que o teu erro está em
textbox.text = textbox.text + "1"

Em relação aos executáveis, não te posso ajudar porque não dizes ... nada! Não os consegues criar porquê? (não respondas nesta thread; acrescenta essa informação à nova thread quando a fizeres ;) )

edit - pois, notei agora que uma das tuas perguntas está resolvida noutra thread :D espero ter resolvido a outra ;)

boas,

obrigado a todos pela vossa ajuda, vou ver melhor esses sites e tentar resolver este pequeno problema na imensidao dos problemas que ainda vou ter que resolver para a PAT,

uma vez mais..thanks

cumprimentos,
Quando puderes, diz qualquer coisa. Já sabes, sempre que precisares... ;)

Cumps [[[[[[[[]]]]]]]]
angelofwisdom
 
Última edição:
Exacto. Os eventos são QueryUnload e Load ;) e é practicamente como o HecKel disse.

No Load, verificas se o ficheiro existir. Se não existir, aplica as configurações default.
Se existir, abre o INI, lê cada linha a aplica-a às variáveis. Se porventura existir alguma variável que não conste do INI, aplica a configuração default a essa variável.

No QueryUnload, simplesmente grava o INI (a menos que o queiras fazer a pedido do utilizador).


Gaminger, era preferível abrires uma nova thread, uma vez que esta é sobre VB6 e o teu Visual Basic é .NET.

No entanto, logicamente, parece-me que o teu erro está em
textbox.text = textbox.text + "1"

Em relação aos executáveis, não te posso ajudar porque não dizes ... nada! Não os consegues criar porquê? (não respondas nesta thread; acrescenta essa informação à nova thread quando a fizeres ;) )

edit - pois, notei agora que uma das tuas perguntas está resolvida noutra thread :D espero ter resolvido a outra ;)


Quando puderes, diz qualquer coisa. Já sabes, sempre que precisares... ;)

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

boas,

ja andei a ver de como se usam os ficheiros .ini e nao consegui por isto a funcionar, consegui po-lo a ler o tal ficheiro (com apenas uma linha :'() mas nem sequer consegui gravar as configuracoes no ficheiro antes de encerrar o programa.

se me pude-ses arranjar os codigo para por isto a ler e a gravar em varias linhas era fixe ;)

ja agora, sabem de algum site onde eu possa fazer o download de "source codes" de vb para tirar ideias e ver se aprendo mais alguma coisa?

cumprimentos,
 
Para download de source-codes, aconselho vivamente o www.planet-source-code.com. Foi a minha ajuda durante alguns anos :)

Podes não gravar como INI, mas sim como CFG (um formato não standardizado).
Portanto, em vez de gravares nome_da_variavel=valor, gravas simplesmente o valor (o programa tem de "saber" a ordem)

Assim seria fácil:

ordem actual:
- Linha 1 contém o booleano "MostrarBarraDeEstado"
- Linha 2 contém o booleano "MostrarBarraDeFerramentas"
- Linha 3 contém a integer "Lingua"

Antes de tudo:
Código:
Dim MostrarBarraDeEstado As Boolean
Dim MostrarBarraDeFerramentas As Boolean
Dim Lingua As Integer

Gravar:

Código:
Open "configuracoes.cfg" For Output as #1
Print #1, MostrarBarraDeEstado
Print #1, MostrarBarraDeFerramentas
Print #1, Lingua
Close #1

Ler
Código:
Open "configuracoes.cfg" For Input as #1
Line Input #1, MostrarBarraDeEstado
Line Input #1, MostrarBarraDeFerramentas
Line Input #1, Lingua
Close #1

Não aconselho muito, mas assim é facílimo :D
Se quiseres doutra forma; ou tiveres um formato próprio que queiras aplicar, diz qualquer coisa ;)

O código foi escrito à mão aqui mesmo. Se encontrares algum erro (eu pelo menos não vi nenhum =X ) avisa sff ^^

Cumps [[[[[[[[]]]]]]]]
angelofwisdom
 
Para download de source-codes, aconselho vivamente o www.planet-source-code.com. Foi a minha ajuda durante alguns anos :)

Podes não gravar como INI, mas sim como CFG (um formato não standardizado).
Portanto, em vez de gravares nome_da_variavel=valor, gravas simplesmente o valor (o programa tem de "saber" a ordem)

Assim seria fácil:

ordem actual:
- Linha 1 contém o booleano "MostrarBarraDeEstado"
- Linha 2 contém o booleano "MostrarBarraDeFerramentas"
- Linha 3 contém a integer "Lingua"

Antes de tudo:
Código:
Dim MostrarBarraDeEstado As Boolean
Dim MostrarBarraDeFerramentas As Boolean
Dim Lingua As Integer
Gravar:

Código:
Open "configuracoes.cfg" For Output as #1
Print #1, MostrarBarraDeEstado
Print #1, MostrarBarraDeFerramentas
Print #1, Lingua
Close #1
Ler
Código:
Open "configuracoes.cfg" For Input as #1
Line Input #1, MostrarBarraDeEstado
Line Input #1, MostrarBarraDeFerramentas
Line Input #1, Lingua
Close #1
Não aconselho muito, mas assim é facílimo :D
Se quiseres doutra forma; ou tiveres um formato próprio que queiras aplicar, diz qualquer coisa ;)

O código foi escrito à mão aqui mesmo. Se encontrares algum erro (eu pelo menos não vi nenhum =X ) avisa sff ^^

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


boas,

desculpem a minha ingnorancia em relação á manipulação de ficheiro,

vo tentar explicar melhor o que quero e de um forma um pouco mais detalhada:
-quero que ao ser aberto o formulario principal (form_load) ele verifique as configurações anteriores e consoante essas configurações mostre as barras ou nao.

-tenho 2 menus para ver/ou nao as barras, onde sao definidas essas opções, os menus sao: mnu_statusbar e mnu_toolbar e quero que aqui seja feito o seguinte:ao ser pressionado o menu (ser activado) ele vai verificar a visibilidade actual da barra correspondente e consoante esse estado de visibilidade ele altera para o seu estado contrario (se esta visivel passa para invisivel ou vice-versa) e guarda essas configurações.

isto tudo de maneira a que da proxima vez que o programa seja executado mantenha essas configurações.


nota: da para fazer isto atraves de base de dados? como? se der posso aproveitar que ja tou a trabalhar numa bd..e so acrescentar os campos.


cumprimentos,
 
Back
Topo