ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Cores em arquivo .ini

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
ssc
Novato
Novato


Registrado: Segunda-Feira, 6 de Mai de 2013
Mensagens: 16

MensagemEnviada: Dom Jun 02, 2013 1:47 pm    Assunto: Cores em arquivo .ini Responder com Citação

Eu e minha luta com arquivos '.ini'.

Minha aplicação usar arquivos externos, como música por exemplo ( .mp3 )
Adiciono as músicas via Opendialog.

Então criei um .ini que salva esses dados:

MeuIni.WriteString('a01', 'b', ColorToString(gauge12.BackColor));
MeuIni.WriteString('a02', 'b', colorToString(label21.Font.Color));
MeuIni.WriteString('a03', 'b', OpenDialog1.FileName);

resultado dentro do arquivo .ini:

[a01]
b=$00EE6FCE
[a02]
b=clRed
[a03]
b=D:\Audio.mp3

Ou seja, está salvando corretamente.

Meus problemas estão na leitura do arquivo.
Eu preciso, captar as cores e o caminho do arquivo e direcionar a seus respectivos componentes, porém a aplicação retornar erro: " '''' is not a valid integer value. "


Vejam o código de leitura:

Gauge12.BackColor := StringToColor(LerIni.ReadString('a01', 'b', ''));
Label21.Font.Color := StringToColor(LerIni.ReadString('a02', 'b', ''));
OpenDialog1.filename := LerIni.ReadString('a03', 'b', '');

Testei de outras formas, mas sem resultados positivos.

Lembrando que estou carregando os vários .ini a partir de um FileListBox: ( o que não influencia no resultado negativo da leitura ).

LerIni := TIniFile.Create(edit18.Text +'\'+ (filelistbox1.FileName));
onde: Edit18.Text é o diretório do arquivo .mp3 .
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Dom Jun 02, 2013 5:05 pm    Assunto: Responder com Citação

Boa tarde.

Você fez um debug na aplicação pra descobrir qual linha está gerando o erro?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
ssc
Novato
Novato


Registrado: Segunda-Feira, 6 de Mai de 2013
Mensagens: 16

MensagemEnviada: Seg Jun 03, 2013 8:45 am    Assunto: Responder com Citação

Sim, o erros ocorrem na leitura das cores. Na leitura do Opendialog não ocorre erro algum, porém não carrega o caminho.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CesarRocha
Mestre
Mestre


Registrado: Segunda-Feira, 30 de Mai de 2011
Mensagens: 794
Localização: São Paulo - SP

MensagemEnviada: Seg Jun 03, 2013 10:03 am    Assunto: Responder com Citação

Joga esse trecho em uma variável string para saber se esta conseguindo ler o valor correto...

Código:
(LerIni.ReadString('a01', 'b', '')


Parece que não está lendo o valor correto, e está retornando o default, no caso vazio. Com isso na hora de converter ocorre o erro.

~
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Seg Jun 03, 2013 10:05 am    Assunto: Responder com Citação

Entendi...
Observe também que nessa linha:
Código:
LerIni := TIniFile.Create(edit18.Text +'\'+ (filelistbox1.FileName));

O nome e caminho do arquivo pode estar duplicado.
A função FileName do FileListBox já retorna o nome e caminho completo do arquivo, então acho que você não precisa dessa parte:
Código:
edit18.Text +'\'+
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
ssc
Novato
Novato


Registrado: Segunda-Feira, 6 de Mai de 2013
Mensagens: 16

MensagemEnviada: Qua Jun 05, 2013 10:05 am    Assunto: Resolvido, exemplos que possam ajudar iniciantes. Responder com Citação

Resolvido.

Os erros decorriam de um Filelistbox que tinha sido excluído, e depois foi recolocado no projeto herdando os códigos anteriores.

Vou deixar alguns trechos de código para ajudar os iniciantes que passarem por aqui, assim como eu Wink.


Código:
{ Acessando arquivos .ini a partir de FileListBox. }

// Seta o diretório onde o FileListBox vai acessar os arquivos.
FileListBox1.Directory := edit1.Text;

// acesse a propriedade 'mask' do FileListBox e altere para *.ini*, dessa forma somente arquivos .ini serão listados.

//
procedure TForm1.FileListBox1DblClick(Sender: TObject);
var  Lerini: TIniFile;
Begin

LerIni := TIniFile.Create((filelistbox1.FileName));

Gauge1.BackColor   := StringToColor(LerIni.ReadString('Corgauge', 'Cor',''));
Label1.Font.Color  := StringToColor(LerIni.ReadString('CorLbFont', 'Cor', ''));
OpenDialog.FileName := LerIni.ReadString('File', 'Arq', '');

LerIni.Free;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB