Fórum Imagem na Tela Principal do Sistema #517130

17/04/2015

0

Boa Tarde tenho tido duvida em uma coisa e gostaria que tirassem a minha duvida.
Tenho a tela principal do meu sistema com uma imagem quando dou dois cliques na tela me abre uma tela de configuração da tela principal com um componente image um edit e tres button (Pesquisar , Salvar e Sair) e queria saber como resolvo tres problemas.

1 - no button pesquisar quero abrir uma outra tela com um memo com todas as imagens da pasta Logos localizada dentro do meu sistema e ao lado do memo uma timage layout para ver a imagem e ao clicar em selecionar o timage da tela de configuração recebe a imagem.

2 - no button salvar como eu faço para alterar a imagem do sistema principal com a mesma imagem que eu escolhi na configuração e como eu faço para manter ela como imagem principal.

3 - no edit como eu coloco o Caminho ali dentro do componente: Ex: C/SConsult/Logos/Image.JPG
Thiago Santos

Thiago Santos

Responder

Posts

30/04/2015

Thiago Santos

consegui resolver o problema 1 e o 3
Responder

Gostei + 0

11/05/2015

Mateus Carvalho

Já que você resolveu o primeiro e o terceiro, vou tentar te ajudar no segundo.

Se você salvou as informações do edit do item 3 em algum lugar, basta colocar o código abaixo na hora de iniciar o form

image1.loadfromfile(edit3.text);






Isso deve funcionar!
Att
Responder

Gostei + 0

12/05/2015

Thiago Santos

na verdade não está salvando em local algum é simplesmente uma função que o usuário terá no meu sistema e como irá funcionar:

o usuário clica em configurar tela imagem principal

abre um outro form com um edit tres botoes (busca, salva e fecha), um timage, um openpicturedialog.

clicando no button busca abre o openpicturedialog para selecionar a imagem

a imagem irá ser visualizada no image dentro deste form

clicando em salvar ela irá mudar na tela principal e mantenho ela até que seja trocada novamente

como que eu faria isso?

Obrigado
Responder

Gostei + 0

12/05/2015

Mateus Carvalho

Para definir uma image no image, basta usar o código acima.

A imagem não será alterada, ate que a aplicação seja finalizada, ou mudada pelo próprio usuário.
Se você quiser que essa imagem volte quando o sistema for re aberto, ai que salvar o caminho da imagem em algum lugar e criar uma rotina para subir toda vez que iniciar o sistema, ou seja, usar o código que eu passei.



Att
Responder

Gostei + 0

12/05/2015

Thiago Santos

no caso o codigo eu coloco no form principal ou no form que configura a imagem

obg
Responder

Gostei + 0

13/05/2015

Mateus Carvalho

Sim. Vou escrever um exemplo abaixo, suponhamos que o edit que o caminho da imagem será salvo, esteja sempre disponível.


form1 = seu form principal
editimg = edit onde está a imagem
image1 - lugar onde será exibido a imagem
form2 = form onde muda a imagem

No evento show do form1, coloque:
image1.picture.loadfromfile(form2.editimg.text);


No botão que salva a imagem, alem do opendialog, colque o código
form1.image1.picture.loadfromfile(form2.editimg.text);



A principio, utilize apenas imagem jpeg, ai depois você adiciona os uses dos formatos desejados.
Responder

Gostei + 0

14/05/2015

Thiago Santos

o salvar a imagem do form2 (configuração) o form1 (principal) deu certo. só não está dando certo no evento show carregar a imagem ao reiniciar a execução

olha os dois codigos ai:

form configuração da imagem - frmPrincipal.Image1.Picture.LoadFromFile(frmConfigImgPrincipal.edtCamImgPrincipal.Text);

evento show do form principal - Image1.Picture.LoadFromFile(frmConfigImgPrincipal.edtCamImgPrincipal.Text);

quando eu entro que o segundo código está inserido ai da uma janelinha de erro com tres opçoes break continue.

ai eu comento o código do principal.

como resolvo isso ai

Obrigado
Responder

Gostei + 0

14/05/2015

Mateus Carvalho

Você colocou para abrir a configuração do edit que salva o endereço antes? Aparentemente, ele não esta abrindo nada porque edit esta vazio.
Responder

Gostei + 0

14/05/2015

Thiago Santos

como assim porque sempre o edit está vazio ele só recebe alguma coisa quando seleciona a imagem

como eu faço para deixar registrado o caminho no edit da ultima seleção.

e se ai tem como configurar para salvar a imagem na tela principal
Responder

Gostei + 0

14/05/2015

Mateus Carvalho

Tem n soluções para isso, você pode colocar em um arquivo ini, salvar em uma tabela no banco de dados, ou salvar em um arquivo xml.

Exemplo de arquivo xml

- Coloque no formconfig um clientdataset
- Abra o client dataset, dando 2 cliques, e na janela que abriu, botão direito, New Field.
- De um nome para esse campo, colque como string e coloque um valor superior a 80.
- Feito isso, note que você voltou para a janela anterior, basta selecionar o novo campo criado e arrastar para o form em questão.
Até aqui, foi feito a criação de um campo para salvar os dados. A partir de agora, salve o caminho da imagem, nesse edit (Delete o antigo, e coloque o nome dele nesse novo).

Após isso, no botão que carrega a imagem, coloque o seguinte código:
var
caminho : string;
begin
caminho := ExtractFilePath(Application.Exename) + 'nomedoarquivo.xml'; // Caminho, é a variavel que irá informar o lugar onde o arquivo será salvo. //ExtractFilePath(Application.Exename), pega o lugar onde o executavel do sistema está.


if FileExists(caminho) then // Irá verificar a existência do arquivo, evitando erro caso o mesmo não exista.
begin
ds.edit;
editimg.text := opendialog.filename; // pega o caminho da imagem
ds.post;
ds.savetofile(caminho); //salva no caminho da variavel
end
else
begin
ds.creatdataset; // nesse caso, o arquivo não foi encontrado. Esse codigo cria o "arquivo".
ds.append;
editimg.text := opendialog.filename;
ds.post;
ds.savetofile(caminho);
end



Nota: Incremente o código acima. Eu fiz de cabeça, se houver erro na hora de compilar, provavelmente, o codigo em questão é muito parecido.


Agora, no evento show do form, basta colocar o seguinte código.


var
caminho : string;
begin
caminho := ExtractFilePath(Application.Exename) + 'nomedoarquivo.xml'; // nesse caso, eu dupliquei a variavel, mais nada impede você de criar uma variavel universal.

if FileExists(caminho) then
begin
ds.loadfromfile(caminho); //funciona muito parecido com a imagem, só que com arquivo. Aqui, ele vai carregar o arquivo salvo anteriormente.
end
else
begin
showmessage('Imagem não pode ser carregada'); // Nesse caso, o arquivo não foi encontrado, e esse mensagem aparece, mais você pode trabalhar melhor nisso.
end



Att
Responder

Gostei + 0

14/05/2015

Thiago Santos

vou tentar ve aki se funciona na verdade não entendi muito mas pelo que eu vi

eu vou no form de config e cria um data set

ai no load no edit coloco o codigo 1

e no evento show do form principal coloco o codigo2

é isso?
Responder

Gostei + 0

14/05/2015

Mateus Carvalho

Vamos lá!

No código 1, "Após isso, no botão que carrega a imagem, coloque o seguinte código:"
Você vai colocar no botão que faz o usuário selecionar uma imagem.

E segundo é no show, create do form principal.
Responder

Gostei + 0

14/05/2015

Thiago Santos

é dificil isso mais acho que depois que pega o jeito vai longe.

então eu abro o form configurar imagem, cria um clientdataset e dentro dele crio um campo edit e excluo o que eu possuo

ai passo o código 1 no button pesquisar imagem. só que o bs dá erro e no caso iria salvar no campo o caminho de imagens

como que faço isso dentro do meu sistema

tenho o edtCaminhoImgPrincipal
Responder

Gostei + 0

14/05/2015

Thiago Santos

é dificil isso mais acho que depois que pega o jeito vai longe.

então eu abro o form configurar imagem, cria um clientdataset e dentro dele crio um campo edit e excluo o que eu possuo

ai passo o código 1 no button pesquisar imagem. só que o bs dá erro e no caso iria salvar no campo o caminho de imagens

como que faço isso dentro do meu sistema

tenho o edtCaminhoImgPrincipal
Responder

Gostei + 0

14/05/2015

Thiago Santos

o que é o ds?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar