Imagem na Tela Principal do Sistema
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
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
Curtidas 0
Respostas
Thiago Santos
17/04/2015
consegui resolver o problema 1 e o 3
GOSTEI 0
Mateus Carvalho
17/04/2015
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
Isso deve funcionar!
Att
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
GOSTEI 0
Thiago Santos
17/04/2015
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
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
GOSTEI 0
Mateus Carvalho
17/04/2015
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
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
GOSTEI 0
Thiago Santos
17/04/2015
no caso o codigo eu coloco no form principal ou no form que configura a imagem
obg
obg
GOSTEI 0
Mateus Carvalho
17/04/2015
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:
No botão que salva a imagem, alem do opendialog, colque o código
A principio, utilize apenas imagem jpeg, ai depois você adiciona os uses dos formatos desejados.
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.
GOSTEI 0
Thiago Santos
17/04/2015
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
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
GOSTEI 0
Mateus Carvalho
17/04/2015
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.
GOSTEI 0
Thiago Santos
17/04/2015
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
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
GOSTEI 0
Mateus Carvalho
17/04/2015
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:
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.
Att
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
GOSTEI 0
Thiago Santos
17/04/2015
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?
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?
GOSTEI 0
Mateus Carvalho
17/04/2015
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.
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.
GOSTEI 0
Thiago Santos
17/04/2015
é 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
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
GOSTEI 0
Thiago Santos
17/04/2015
é 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
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
GOSTEI 0
Thiago Santos
17/04/2015
o que é o ds?
GOSTEI 0
Mateus Carvalho
17/04/2015
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:
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.
Att
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; //ds é o nome do meu clientedataset 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
Ds é meu clientdataset
Nota: Se der um erro de mida.dll, basta acrescentar no uses dos form midaslib, que resolve o problema.
GOSTEI 0
Thiago Santos
17/04/2015
meu código coloquei assim:
caminho := ExtractFilePath(Application.ExeName) + 'nomedoarquivo.jpg';
if FileExists(caminho) then
Begin
ds.edtCamImgPrincipal;
edtCamImgPrincipal.Text := OpenPictureDialog1.FileName;
ds.post;
ds.savetofile(caminho);
End
else
Begin
ds.creatdataset;
ds.Append;
editimg.Text := OpenPictureDialog1.FileName;
ds.post;
ds.savetofile(caminho);
End;
e como adiciona a uses midaslib
pois sou novo em delphi e ai estou conhecendo agora os caminhos desta ferramenta.
Obrigado ai
caminho := ExtractFilePath(Application.ExeName) + 'nomedoarquivo.jpg';
if FileExists(caminho) then
Begin
ds.edtCamImgPrincipal;
edtCamImgPrincipal.Text := OpenPictureDialog1.FileName;
ds.post;
ds.savetofile(caminho);
End
else
Begin
ds.creatdataset;
ds.Append;
editimg.Text := OpenPictureDialog1.FileName;
ds.post;
ds.savetofile(caminho);
End;
e como adiciona a uses midaslib
pois sou novo em delphi e ai estou conhecendo agora os caminhos desta ferramenta.
Obrigado ai
GOSTEI 0
Thiago Santos
17/04/2015
olha o meu codigo ai não deu certo
caminho := ExtractFilePath(Application.ExeName) + 'nomedoarquivo.jpg';
if FileExists(caminho) then
Begin
ClientDataSet1.Edit;
edtCamImgPrincipal.Text := OpenPictureDialog1.FileName;
ClientDataSet1.Post;
ClientDataSet1.savetofile(caminho);
End
else
Begin
ClientDataSet1.CreateDataSet;
ClientDataSet1.Append;
edtCamImgPrincipal.Text := OpenPictureDialog1.FileName;
ClientDataSet1.post;
ClientDataSet1.savetofile(caminho);
End;
Valeu.....
caminho := ExtractFilePath(Application.ExeName) + 'nomedoarquivo.jpg';
if FileExists(caminho) then
Begin
ClientDataSet1.Edit;
edtCamImgPrincipal.Text := OpenPictureDialog1.FileName;
ClientDataSet1.Post;
ClientDataSet1.savetofile(caminho);
End
else
Begin
ClientDataSet1.CreateDataSet;
ClientDataSet1.Append;
edtCamImgPrincipal.Text := OpenPictureDialog1.FileName;
ClientDataSet1.post;
ClientDataSet1.savetofile(caminho);
End;
Valeu.....
GOSTEI 0
Thiago Santos
17/04/2015
ainda não consegui realizar
GOSTEI 0
Mateus Carvalho
17/04/2015
caminho := ExtractFilePath(Application.ExeName) + 'nomedoarquivo.jpg';
if FileExists(caminho) then
Begin
ClientDataSet1.loadfromfile(caminho); //Faltou essa linha
If (OpenPictureDialog1.execute()) then
begin
ClientDataSet1.Edit;
edtCamImgPrincipal.Text := OpenPictureDialog1.FileName;
ClientDataSet1.Post;
ClientDataSet1.savetofile(caminho);
image1.picture.loadfromfile(edtCamImgPrincipal.Text); // essa também
end
End
else
Begin
ClientDataSet1.CreateDataSet;
If (OpenPictureDialog1.execute()) then
begin
ClientDataSet1.Append;
edtCamImgPrincipal.Text := OpenPictureDialog1.FileName;
ClientDataSet1.Post;
ClientDataSet1.savetofile(caminho);
image1.picture.loadfromfile(edtCamImgPrincipal.Text);
end
End;
GOSTEI 0
Thiago Santos
17/04/2015
esse codigo pertence ao form configuração correto?
GOSTEI 0
Thiago Santos
17/04/2015
agora preciso que esse caminho permaneça ao sair e entrar novamente na tela de configuração e salvar para que essa imagem fique na tela do sistema principal também ao abrir e fechar
GOSTEI 0
Mateus Carvalho
17/04/2015
O caminho permanece salvo, basta otimizar o código (já postado) no evento show do from.
GOSTEI 0
Thiago Santos
17/04/2015
como que é feito isso porque no evento show do form principal não reconhece o data set do form configurar
como que eu faço isso
como que eu faço isso
GOSTEI 0
Thiago Santos
17/04/2015
boa tarde amigos até hoje não consegui realizar tal função
GOSTEI 0