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 

Problemas ao ler arquivo ini em tempo de execução. RESOLVIDO

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


Registrado: Quarta-Feira, 6 de Mai de 2009
Mensagens: 1948
Localização: Taubaté - SP

MensagemEnviada: Qua Mar 20, 2013 7:53 am    Assunto: Problemas ao ler arquivo ini em tempo de execução. RESOLVIDO Responder com Citação

Eu estou usando skins e papel de parede em meu sistema ambos usam arquivos .ini como diretórios, eu consigo criar e alterar porém as alterações só dão efeito quando o sistema reinicia e eu queria trocar o papel de parede e a skin em tempo de execução.

Esse é o código usado para gravar um novo papel e ele grava mas não carrega no mesmo momento Sad

Código:
   frmprincipal.Image1.Picture.LoadFromFile(Flb_image.FileName);
   InvalidateRect(frmprincipal.ClientHandle, nil, False);//invalida a área para ser repintada.
   ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'conf.ini');
   ini.WriteString('PAPEL DE PAREDE','IMAGEM',Flb_image.FileName);
   ini.WriteString('PAPEL DE PAREDE','TIPO',ComboBox1.Text);

_________________
AMD Phenom II X4 960T 3.00 GHz - 8 GB DDR III - HD 1000 GB SATA - GeForce GTX 650 TI GDDR 5 - Monitor 21,5" Full HD - Kubuntu 14.04 + Windows 7 Professional x64.


Editado pela última vez por oneshotbr em Qui Mar 21, 2013 10:17 am, num total de 1 vez
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: Qua Mar 20, 2013 7:24 pm    Assunto: Responder com Citação

Rapaz, no meu sistema eu só uso essa linha
Código:
frmprincipal.Image1.Picture.LoadFromFile(Flb_image.FileName);

Para alterar a imagem em tempo de execução.
Só to estranhando a linha logo após ela:
Código:
InvalidateRect(frmprincipal.ClientHandle, nil, False);//invalida a área para ser repintada.

Já tentou removê-la pra ver se dá certo?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
oneshotbr
Colaborador
Colaborador


Registrado: Quarta-Feira, 6 de Mai de 2009
Mensagens: 1948
Localização: Taubaté - SP

MensagemEnviada: Qui Mar 21, 2013 7:51 am    Assunto: Responder com Citação

Citação:
Rapaz, no meu sistema eu só uso essa linha
Código:
frmprincipal.Image1.Picture.LoadFromFile(Flb_image.FileName);

Para alterar a imagem em tempo de execução.
Só to estranhando a linha logo após ela:
Código:
InvalidateRect(frmprincipal.ClientHandle, nil, False);//invalida a área para ser repintada.

Já tentou removê-la pra ver se dá certo?


Removi ela mas não adiantou!
_________________
AMD Phenom II X4 960T 3.00 GHz - 8 GB DDR III - HD 1000 GB SATA - GeForce GTX 650 TI GDDR 5 - Monitor 21,5" Full HD - Kubuntu 14.04 + Windows 7 Professional x64.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Mar 21, 2013 9:48 am    Assunto: Responder com Citação

Eis aí amigo, fiz o teste e funcionou perfeitamente:


Código:
var
  Form1: TForm1;
  ini: TIniFile;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
   if Flb_image.Execute then
   begin
        try
        ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'conf.ini');
        Form1.Image1.Picture.LoadFromFile(Flb_image.FileName);
        InvalidateRect(Form1.ClientHandle, nil, False);//invalida a área para ser repintada.
        ini.WriteString('PAPEL DE PAREDE','IMAGEM',Flb_image.FileName);
        ini.WriteString('PAPEL DE PAREDE','TIPO', ComboBox1.Text);
        finally
         //Delphi_3
         ini.Free;
         //FreeAndNil(ini)
        end;
   end;
end;


procedure TForm1.FormCreate(Sender: TObject);
var
   Wallpaper: String;
begin
     try
     ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'conf.ini');
     Wallpaper := ini.ReadString('PAPEL DE PAREDE','IMAGEM', Wallpaper);
     Image1.Picture.LoadFromFile(Wallpaper);
     finally
         //Delphi_3
         ini.Free;
         //FreeAndNil(ini)
     end;
end;


Fiz em delphi 3, visto que utilizo ele para ambiente de teste de funções simples do pascal, pois é bem leve a ide, carrega e compila rápido.



bye

bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
oneshotbr
Colaborador
Colaborador


Registrado: Quarta-Feira, 6 de Mai de 2009
Mensagens: 1948
Localização: Taubaté - SP

MensagemEnviada: Qui Mar 21, 2013 10:16 am    Assunto: Responder com Citação

Johnny-Walker e Batera.

O problema era um erro onde eu estava criando 2x o formulário principal.

Já resolvi!

Muito obrigado pela ajuda dos 2.
_________________
AMD Phenom II X4 960T 3.00 GHz - 8 GB DDR III - HD 1000 GB SATA - GeForce GTX 650 TI GDDR 5 - Monitor 21,5" Full HD - Kubuntu 14.04 + Windows 7 Professional x64.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Mar 21, 2013 11:35 am    Assunto: Responder com Citação

Duas vezes... Geralmente deixo o form principal em autocreate e os demais sob demanda.
Mas que bom que resolveu.
boa sorte.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
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