 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
ssc Novato

Registrado: Segunda-Feira, 6 de Mai de 2013 Mensagens: 16
|
Enviada: Dom Jun 02, 2013 1:47 pm Assunto: Cores em arquivo .ini |
|
|
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 |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Dom Jun 02, 2013 5:05 pm Assunto: |
|
|
Boa tarde.
Você fez um debug na aplicação pra descobrir qual linha está gerando o erro? |
|
| Voltar ao Topo |
|
 |
ssc Novato

Registrado: Segunda-Feira, 6 de Mai de 2013 Mensagens: 16
|
Enviada: Seg Jun 03, 2013 8:45 am Assunto: |
|
|
| 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 |
|
 |
CesarRocha Mestre

Registrado: Segunda-Feira, 30 de Mai de 2011 Mensagens: 794 Localização: São Paulo - SP
|
Enviada: Seg Jun 03, 2013 10:03 am Assunto: |
|
|
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 |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Seg Jun 03, 2013 10:05 am Assunto: |
|
|
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 |
|
 |
ssc Novato

Registrado: Segunda-Feira, 6 de Mai de 2013 Mensagens: 16
|
Enviada: Qua Jun 05, 2013 10:05 am Assunto: Resolvido, exemplos que possam ajudar iniciantes. |
|
|
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 .
| 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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|