Slide de fotos
Como faço um slide de fotos usando uma pasta com o OpenPictureDialog, isso de forma automática? Visualizando uma a uma até a última, num loop?
Agradeço a ajuda,
Fred
Frederico Brigatte***
Respostas
Leonardo Xavier
29/11/2010
Como faço um slide de fotos usando uma pasta com o OpenPictureDialog, isso de forma automática? Visualizando uma a uma até a última, num loop?
Agradeço a ajuda,
Fred
Frederico, primeiramente boa noite, mais uma vez.
Bom podemos colocar suas fotos todas em um vetor e depois exibi-las em um componemte Timage, de modo randomico (aleatório) ou simplesmente fazer eles "virarem" em sequencia, mas o fato é que teremos que armazenar o caminho de cada uma delas a menos que suas fotos tenham uma sequancia no nome dos arquivos de suas fotos: EX: DC001.jpeg, DC002.jpeg,DC003.jpeg,...e assim por diante, se suas fotos estiverem com esta formatação no nome doa rquivo teremos mais facilicade de "fabricar" a função passar imagem. Definido o modo de armazenamento de suas fotos em vetor, poderemos entao passar para a próxima fase que será justamente a trasação de suas imagens. Defina ai o que você quer utilizar se é vetor com o caminho de todas a imgens ou uma sequencia no nome das fotos na "pasta de origem". Aguardo.
bom encontrei isso aqui vai economizar tempo.
https://www.devmedia.com.br/post-896-Dicas-Criando-slides-no-Delphi.html
Frederico Brigatte***
29/11/2010
Como faço um slide de fotos usando uma pasta com o OpenPictureDialog, isso de forma automática? Visualizando uma a uma até a última, num loop?
Agradeço a ajuda,
Fred
Frederico, primeiramente boa noite, mais uma vez.
Bom podemos colocar suas fotos todas em um vetor e depois exibi-las em um componemte Timage, de modo randomico (aleatório) ou simplesmente fazer eles "virarem" em sequencia, mas o fato é que teremos que armazenar o caminho de cada uma delas a menos que suas fotos tenham uma sequancia no nome dos arquivos de suas fotos: EX: DC001.jpeg, DC002.jpeg,DC003.jpeg,...e assim por diante, se suas fotos estiverem com esta formatação no nome doa rquivo teremos mais facilicade de "fabricar" a função passar imagem. Definido o modo de armazenamento de suas fotos em vetor, poderemos entao passar para a próxima fase que será justamente a trasação de suas imagens. Defina ai o que você quer utilizar se é vetor com o caminho de todas a imgens ou uma sequencia no nome das fotos na "pasta de origem". Aguardo.
Já está. O caminho seria: F:\Fotos\Fotos Tucano T-27, ou outro qualquer.
Arquivos em jpg
Leonardo Xavier
29/11/2010
Frederico Brigatte***
29/11/2010
Ok, tiro deixo como Fotos a pasta. Digamos que tem umas 50.
Frederico Brigatte***
29/11/2010
Ok, tiro deixo como Fotos a pasta. Digamos que tem umas 50.
Vou deixar a pasta com nome de Fotos. Agradeço por enquanto.
Frederico Brigatte***
29/11/2010
Ok, tiro deixo como Fotos a pasta. Digamos que tem umas 50.
Vou deixar a pasta com nome de Fotos. Agradeço por enquanto.
Bom dia, fiz uma rotina aqui mas não estou conseguindo.
Leonardo Xavier
29/11/2010
Wilson Junior
29/11/2010
Frederico Brigatte***
29/11/2010
Acho melhor trabalhar com vetor mesmo. Estou tendo dificuldade em dar um tempo em cada foto. O que fiz não está funcionando. Poderia fazer um exemplo simples para eu incrementar?
Frederico Brigatte***
29/11/2010
Acho melhor trabalhar com vetor mesmo. Estou tendo dificuldade em dar um tempo em cada foto. O que fiz não está funcionando. Poderia fazer um exemplo simples para eu incrementar?
Fiz assim:
procedure TForm1.Button4Click(Sender: TObject);
var
FileName : String;
SR: TSearchRec;
I: integer;
Total : Integer;
begin
FileName := DirectoryListBox1.Directory + '\*.jpg';
I := FindFirst(FileName , faAnyFile, SR);
while I = 0 do
begin
combobox1.Items.Add(sr.Name);
foto.Picture.LoadFromFile(sr.Name);
foto.Visible := True;
I := FindNext(SR);
end;
Total:= Combobox1.Items.Count;
Label1.Caption := IntToStr(Total);
end;
Esse procedimento lista os arquivos em uma combobox de um diretório x. Tem um TImage no laço, que ao preencher a combo, deveria mostrar no TImage, só que mostra sempre a última. Queria que mostrasse uma a uma até a última com um tempo. Trabalhar com vetor não seria melhor? Com vetor não sei.
Frederico Brigatte***
29/11/2010
Acho melhor trabalhar com vetor mesmo. Estou tendo dificuldade em dar um tempo em cada foto. O que fiz não está funcionando. Poderia fazer um exemplo simples para eu incrementar?
Fiz assim:
procedure TForm1.Button4Click(Sender: TObject);
var
FileName : String;
SR: TSearchRec;
I: integer;
Total : Integer;
begin
FileName := DirectoryListBox1.Directory + '\*.jpg';
I := FindFirst(FileName , faAnyFile, SR);
while I = 0 do
begin
combobox1.Items.Add(sr.Name);
foto.Picture.LoadFromFile(sr.Name);
foto.Visible := True;
I := FindNext(SR);
end;
Total:= Combobox1.Items.Count;
Label1.Caption := IntToStr(Total);
end;
Esse procedimento lista os arquivos em uma combobox de um diretório x. Tem um TImage no laço, que ao preencher a combo, deveria mostrar no TImage, só que mostra sempre a última. Queria que mostrasse uma a uma até a última com um tempo. Trabalhar com vetor não seria melhor? Com vetor não sei.
Agora fiz desse jeito:
procedure TForm1.Button5Click(Sender: TObject);
var
Cont, x : Integer;
begin
x := strToInt(Label1.Caption); // Aqui são quantos arquivos tem na combo
for Cont := 0 to x do // Esse for é para ir varrendo a combo um a um até o fim
begin
combobox1.ItemIndex := Cont;
foto.Visible := True;
foto.Picture.LoadFromFile(combobox1.Text); // Aqui é pra mostrar no TImage. Só que não mostra.
foto.Visible := True;
Timer1.Enabled := True;
end;
end;
Leonardo Xavier
29/11/2010
Frederico Brigatte***
29/11/2010
Ok, fico no aguardo. Se tiver alguma idéia melhor que essa, pode ser, ok?
Leonardo Xavier
29/11/2010
https://www.devmedia.com.br/post-18659-Slides-de-fotos-em-Delphi.html
Frederico Brigatte***
29/11/2010
https://www.devmedia.com.br/post-18659-Slides-de-fotos-em-Delphi.html
Vou dar uma olhada. Vc não usa o Timer?
Frederico Brigatte***
29/11/2010
https://www.devmedia.com.br/post-18659-Slides-de-fotos-em-Delphi.html
Vou dar uma olhada. Vc não usa o Timer?
Vi lá que vc usa Sleep. Perfeito, exatamente isso. Da pra fazer uma animação nas fotos, tipo transição? Essa é pra encerrar.
Leonardo Xavier
29/11/2010
https://www.devmedia.com.br/post-18659-Slides-de-fotos-em-Delphi.html
Vou dar uma olhada. Vc não usa o Timer?
Vi lá que vc usa Sleep. Perfeito, exatamente isso. Da pra fazer uma animação nas fotos, tipo transição? Essa é pra encerrar.
Sim com certeza, posso fazer isso mas preciso de tempo que nao tenho agora... Mas prometo fazer esta opção se nao der esta semana no final de semana eu faço.
Frederico Brigatte***
29/11/2010
https://www.devmedia.com.br/post-18659-Slides-de-fotos-em-Delphi.html
Vou dar uma olhada. Vc não usa o Timer?
Vi lá que vc usa Sleep. Perfeito, exatamente isso. Da pra fazer uma animação nas fotos, tipo transição? Essa é pra encerrar.
Sim com certeza, posso fazer isso mas preciso de tempo que nao tenho agora... Mas prometo fazer esta opção se nao der esta semana no final de semana eu faço.
Ok, fico no aguardo. Mas poderia dizer mais ou menos como fazer, que tento aqui. Pode ser?
Leonardo Xavier
29/11/2010
Frederico Brigatte***
29/11/2010
Como ficaria nesse exemplo?
procedure TForm1.Button1Click(Sender: TObject); begin form2.BringToFront; form1.Hide; AnimateWindow(form2.Handle,2000,AW_CENTER); form2.show; end; {Abaixo estão outras formas de animações: AW_BLEND //Somente no Windows 2000 AW_CENTER //Abre o formulário do meio pra fora AW_HOR_POSITIVE //Abre o formulário na horizontal, da direita para a esquerda AW_HOR_NEGATIVE//Abre o formulário na horizontal, da esquerda para a direita AW_VER_POSITIVE//Abre o formulário na vertical, de cima para baixo AW_VER_NEGATIVE}//Abre o formulário na vertical, de baixo para cima
Leonardo Xavier
29/11/2010
Como ficaria nesse exemplo?
procedure TForm1.Button1Click(Sender: TObject); begin form2.BringToFront; form1.Hide; AnimateWindow(form2.Handle,2000,AW_CENTER); form2.show; end; {Abaixo estão outras formas de animações: AW_BLEND //Somente no Windows 2000 AW_CENTER //Abre o formulário do meio pra fora AW_HOR_POSITIVE //Abre o formulário na horizontal, da direita para a esquerda AW_HOR_NEGATIVE//Abre o formulário na horizontal, da esquerda para a direita AW_VER_POSITIVE//Abre o formulário na vertical, de cima para baixo AW_VER_NEGATIVE}//Abre o formulário na vertical, de baixo para cima
Agora nao tenho tempo, mas prometo para vc que vou melhorar o ja postado anteriormente no maximo na semana que vem vc ja veja os efeitos que vc quer. Mas até la fique fazendo testes, vai que vc consiga antes de mim.
Frederico Brigatte***
29/11/2010
Como ficaria nesse exemplo?
procedure TForm1.Button1Click(Sender: TObject); begin form2.BringToFront; form1.Hide; AnimateWindow(form2.Handle,2000,AW_CENTER); form2.show; end; {Abaixo estão outras formas de animações: AW_BLEND //Somente no Windows 2000 AW_CENTER //Abre o formulário do meio pra fora AW_HOR_POSITIVE //Abre o formulário na horizontal, da direita para a esquerda AW_HOR_NEGATIVE//Abre o formulário na horizontal, da esquerda para a direita AW_VER_POSITIVE//Abre o formulário na vertical, de cima para baixo AW_VER_NEGATIVE}//Abre o formulário na vertical, de baixo para cima
Agora nao tenho tempo, mas prometo para vc que vou melhorar o ja postado anteriormente no maximo na semana que vem vc ja veja os efeitos que vc quer. Mas até la fique fazendo testes, vai que vc consiga antes de mim.
Ok, combinado. Quero aleatório, tudo bem?
Frederico Brigatte***
29/11/2010
Como ficaria nesse exemplo?
procedure TForm1.Button1Click(Sender: TObject); begin form2.BringToFront; form1.Hide; AnimateWindow(form2.Handle,2000,AW_CENTER); form2.show; end; {Abaixo estão outras formas de animações: AW_BLEND //Somente no Windows 2000 AW_CENTER //Abre o formulário do meio pra fora AW_HOR_POSITIVE //Abre o formulário na horizontal, da direita para a esquerda AW_HOR_NEGATIVE//Abre o formulário na horizontal, da esquerda para a direita AW_VER_POSITIVE//Abre o formulário na vertical, de cima para baixo AW_VER_NEGATIVE}//Abre o formulário na vertical, de baixo para cima
Agora nao tenho tempo, mas prometo para vc que vou melhorar o ja postado anteriormente no maximo na semana que vem vc ja veja os efeitos que vc quer. Mas até la fique fazendo testes, vai que vc consiga antes de mim.
Ok, combinado. Quero aleatório, tudo bem?
Amigão, até tentei, mas não tenho nem idéia de como fazer isso, rs, tá difícil. Consegui de um jeito aqui que tem que adicionar um form e o Image dentro de um Panel e ai usar esse código ai, mas só sei usar um efeito. Queria que fosse em um form só e efeitos aleatórios.
Abraços. Fico no aguardo. Faz no seu tempo.
Frederico Brigatte***
29/11/2010
Como ficaria nesse exemplo?
procedure TForm1.Button1Click(Sender: TObject); begin form2.BringToFront; form1.Hide; AnimateWindow(form2.Handle,2000,AW_CENTER); form2.show; end; {Abaixo estão outras formas de animações: AW_BLEND //Somente no Windows 2000 AW_CENTER //Abre o formulário do meio pra fora AW_HOR_POSITIVE //Abre o formulário na horizontal, da direita para a esquerda AW_HOR_NEGATIVE//Abre o formulário na horizontal, da esquerda para a direita AW_VER_POSITIVE//Abre o formulário na vertical, de cima para baixo AW_VER_NEGATIVE}//Abre o formulário na vertical, de baixo para cima
Agora nao tenho tempo, mas prometo para vc que vou melhorar o ja postado anteriormente no maximo na semana que vem vc ja veja os efeitos que vc quer. Mas até la fique fazendo testes, vai que vc consiga antes de mim.
Ok, combinado. Quero aleatório, tudo bem?
Amigão, até tentei, mas não tenho nem idéia de como fazer isso, rs, tá difícil. Consegui de um jeito aqui que tem que adicionar um form e o Image dentro de um Panel e ai usar esse código ai, mas só sei usar um efeito. Queria que fosse em um form só e efeitos aleatórios.
Abraços. Fico no aguardo. Faz no seu tempo.
Achei um componente que faz isso, chama-se PicShow. Estou tentando adaptar a rotina com esse componente só que não mostra a próxima foto. O link do site é http://www.delphiarea.com/products/delphi-components/picshow/
Tem um demo lá.
Frederico Brigatte***
29/11/2010
Como ficaria nesse exemplo?
procedure TForm1.Button1Click(Sender: TObject); begin form2.BringToFront; form1.Hide; AnimateWindow(form2.Handle,2000,AW_CENTER); form2.show; end; {Abaixo estão outras formas de animações: AW_BLEND //Somente no Windows 2000 AW_CENTER //Abre o formulário do meio pra fora AW_HOR_POSITIVE //Abre o formulário na horizontal, da direita para a esquerda AW_HOR_NEGATIVE//Abre o formulário na horizontal, da esquerda para a direita AW_VER_POSITIVE//Abre o formulário na vertical, de cima para baixo AW_VER_NEGATIVE}//Abre o formulário na vertical, de baixo para cima
Agora nao tenho tempo, mas prometo para vc que vou melhorar o ja postado anteriormente no maximo na semana que vem vc ja veja os efeitos que vc quer. Mas até la fique fazendo testes, vai que vc consiga antes de mim.
Ok, combinado. Quero aleatório, tudo bem?
Amigão, até tentei, mas não tenho nem idéia de como fazer isso, rs, tá difícil. Consegui de um jeito aqui que tem que adicionar um form e o Image dentro de um Panel e ai usar esse código ai, mas só sei usar um efeito. Queria que fosse em um form só e efeitos aleatórios.
Abraços. Fico no aguardo. Faz no seu tempo.
Achei um componente que faz isso, chama-se PicShow. Estou tentando adaptar a rotina com esse componente só que não mostra a próxima foto. O link do site é http://www.delphiarea.com/products/delphi-components/picshow/
Tem um demo lá.
Oi, sei que estão todos ocupados, mas estou precisando muito disso, estou com o projeto parado, agradeço a ajuda de todos, estou tentando aqui mas tá difícil mesmo porque é a primeira vez que trabalho com imagens. Obrigado por hora.
Frederico Brigatte***
29/11/2010
Como ficaria nesse exemplo?
procedure TForm1.Button1Click(Sender: TObject); begin form2.BringToFront; form1.Hide; AnimateWindow(form2.Handle,2000,AW_CENTER); form2.show; end; {Abaixo estão outras formas de animações: AW_BLEND //Somente no Windows 2000 AW_CENTER //Abre o formulário do meio pra fora AW_HOR_POSITIVE //Abre o formulário na horizontal, da direita para a esquerda AW_HOR_NEGATIVE//Abre o formulário na horizontal, da esquerda para a direita AW_VER_POSITIVE//Abre o formulário na vertical, de cima para baixo AW_VER_NEGATIVE}//Abre o formulário na vertical, de baixo para cima
Agora nao tenho tempo, mas prometo para vc que vou melhorar o ja postado anteriormente no maximo na semana que vem vc ja veja os efeitos que vc quer. Mas até la fique fazendo testes, vai que vc consiga antes de mim.
Ok, combinado. Quero aleatório, tudo bem?
Amigão, até tentei, mas não tenho nem idéia de como fazer isso, rs, tá difícil. Consegui de um jeito aqui que tem que adicionar um form e o Image dentro de um Panel e ai usar esse código ai, mas só sei usar um efeito. Queria que fosse em um form só e efeitos aleatórios.
Abraços. Fico no aguardo. Faz no seu tempo.
Achei um componente que faz isso, chama-se PicShow. Estou tentando adaptar a rotina com esse componente só que não mostra a próxima foto. O link do site é http://www.delphiarea.com/products/delphi-components/picshow/
Tem um demo lá.
Oi, sei que estão todos ocupados, mas estou precisando muito disso, estou com o projeto parado, agradeço a ajuda de todos, estou tentando aqui mas tá difícil mesmo porque é a primeira vez que trabalho com imagens. Obrigado por hora.
No aguardo.
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Obrigado por hora.
Frederico Brigatte***
29/11/2010
Obrigado por hora.
Esqueceram de mim? Estou precisando da ajuda de vocês.
:o)
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Leonardo, vc esqueceu de mim, rs.
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Leonardo Xavier
29/11/2010
Cara to vendo o teu chamado aqui, e assim eu tenho trabalhado muito aqui em outros sistemas, e nao tive tempo para der continuidade para você. Com toda certeza isso que vc quer vc tera que utilizar theads para processar suas imagens sem travar seu sistema. ou tente colocar uma imagem para passar por cima de sua jpg em tenpo de execuçao, pode ser que resolva por hora. mas tenha um pouco mais de paciencia pois o fórum tem muitos chamados, mas nao se preocupe se depender de mim vc nao ficara sem assistencia. Abraços
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Leonardo Xavier
29/11/2010
Leonardo Xavier
29/11/2010
Bom acabei de perceber que eu estava re-inventando a roda...rsrs ja tem um componente pronto para este tipo de coisa, pena que nao tinha achado ele antes, vai ai o link dele. E seu problema estará resolvido. Abraços
http://www.delphiarea.com/products/delphi-components/picshow/
Frederico Brigatte***
29/11/2010
Baixei esse componente. Muito legal mesmo, só que queria fazer um exemplo mais simples, o que vem com ele é muito complicado de entender. Queria usar no exemplo que você fez. Tentei mudar o TImage para o PicShow mas mostra sempre a última foto. Agradeço pelo retorno.
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Leonardo Xavier
29/11/2010
Tive olhando o Picshow neste fim de semana para te traser uma soluçao, bom é possivel sim fazer ele funcionar com o exemplo que eu fiz. Mas para que o picshou funcione no meu exemplo, você terá que passar alguns parametros para o pichow (que na verdade o picshow carrega a imagem dentro de um componente Panel) e assim manipulando o canvas de uma maneira muito eficiente. O picshow trablaha com um pacth que é o caminho dos arquivos de fotos, o que você terá que fazer para poder visualizar suas fotos. Outa coisa o picshow terá que utilizar tres procedures do demo, a serem inseridas no meu exemplo nao tive tempo suficiente para fazer isso mas sinta-se a vontade para faze-lo. as procedures são pach, Nextimage, loadimage. Estas voê terá que copiar do exemplo e colar no código do meu exemplo para que ele funcione, troque o componente Timage picshow, e apenas ligue o pach do pichow com o caminho que você ja tem no filelistbox. espero que você com esta dica consiga resolver seu problema. Abraços
Frederico Brigatte***
29/11/2010
É só colar essas procedures pach, Nextimage, loadimage do demo no seu exemplo e trocar o componente TImage pelo PicShow? Somente isso pelo que entendi? Essa parte do parâmetro não entendi direito, poderia explicar melhor? Tem como fazer no exemplo, caso tenha um tempo, essa parte não domino muito. Vou tentar fazer aqui, mas agradeceria se fizesse. Ah e um bom Natal pra você e sua família.
Att, Fred.
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Frederico Brigatte***
29/11/2010
Ainda aguardo uma resposta do solicitado.