Thumbnails - como fazer ?
Alguém sabe como eu faço para que meu sistema mostre as fotos como se fossem thumbnails?
Estou utilizando Delphi 7.
Att.
Estou utilizando Delphi 7.
Att.
Marcos.gandin
Curtidas 0
Respostas
Aloizio Castro
08/05/2007
Alguém sabe como eu faço para que meu sistema mostre as fotos como se fossem thumbnails?
Estou utilizando Delphi 7.
Att.
Isto onde?? DBGrid?? Listar todas as fotos de uma pasta no Form?!?
GOSTEI 0
Marcos.gandin
08/05/2007
Eu preciso mostrar essas fotos em um Form, eu pensei em colocar um ScrollBox e dentro desse ScrollBox eu poderia mostrar as fotos que estão dentro de uma pasta salva no meu computador.
GOSTEI 0
Aloizio Castro
08/05/2007
Eu preciso mostrar essas fotos em um Form, eu pensei em colocar um ScrollBox e dentro desse ScrollBox eu poderia mostrar as fotos que estão dentro de uma pasta salva no meu computador.
Pow, acho q tenho um codigo aqui, vou procurar e jah posto!! :wink:
GOSTEI 0
Marcos.gandin
08/05/2007
Valeu amigo...
Se puder me ajudar eu te agradeço muito.
Um abraço...
Se puder me ajudar eu te agradeço muito.
Um abraço...
GOSTEI 0
Aloizio Castro
08/05/2007
Valeu amigo...
Se puder me ajudar eu te agradeço muito.
Um abraço...
procedure CreateThumbs(Diretorio: String; ThumbSize: Word; Owner: TWinControl); var i: Word; Img: TImage; Ext: String; Arqs: TStrings; wTop, wLeft: Word; Obj: TObject; begin //-- Listar arquivos do diretorio Diretorio := IfThen(RightStr(Diretorio,1) <> ´\´ , Diretorio + ´\´ , Diretorio); Arqs := TShell.ListaArq(Diretorio); //-- Posição dos componentes wTop := 8; wLeft := 8; //-- Destruir componentes de thumbs antigo if Owner.ComponentCount > 0 then begin for i := Owner.ComponentCount-1 downto 0 do begin if (Owner.Components[i] is TImage) then if (Owner.Components[i] as TImage).Tag = 785 then begin Obj := Owner.Components[i]; FreeAndNil(Obj); end; end; end; //-- Exibir imagens if Arqs.Count > 0 then begin for i := 0 to Arqs.Count -1 do begin Ext := UpperCase(ExtractFileExt(Arqs[i])); if (Ext = ´.BMP´) or (Ext = ´.JPG´) or (Ext = ´.WMF´) or (Ext = ´.JPEG´) then begin Img := TImage.Create(Owner); Img.Parent := Owner; Img.Stretch := True; Img.Proportional := True; Img.Center := True; Img.Tag := 785; Img.Picture.LoadFromFile(Diretorio + Arqs[i]); Img.SetBounds(wLeft,wTop,ThumbSize,ThumbSize); //-- Pular linha qdo ultrapassar o width do scrollbox wLeft := ThumbSize + 8 + wLeft; if wLeft > Owner.Width then begin wLeft := 8; wTop := ThumbSize + 8 + wTop; end end; end; end; end; end.
Para listar o arquivo, use a função abaixo:
TShell = class
public
class function ListaArq(Caminho: string;Filtro : String = ´*.*´): TStrings;
end;
implementation
{ TShell }
class function TShell.ListaArq(Caminho, Filtro: String): TStrings;
var
SR : TSearchRec;
I : integer;
begin
Result := TStringList.create;
I := FindFirst(Caminho+Filtro, faAnyFile, SR);
while I = 0 do
begin
if (SR.Attr and faDirectory) <> faDirectory then
Result.Add(SR.Name);
I := FindNext(SR);
end;
end;Use da seguinte maneira:
procedure TForm1.BitBtn1Click(Sender: TObject); begin CreateThumbs(´D:\Nosredna\Meus documentos\Minhas imagens´,50,ScrollBox1); end;
Aqui funcionou perfeitamaente!!
Teste aew, abraços :wink:
GOSTEI 0
Marcos.gandin
08/05/2007
Poxa _anderson_...
Vou testar aqui...
Muito obrigado mesmo meu amigo!!!
Att.
Vou testar aqui...
Muito obrigado mesmo meu amigo!!!
Att.
GOSTEI 0
Marcos.gandin
08/05/2007
Anderson...
Eu preciso declarar alguma coisa no Uses ?
Eu preciso declarar alguma coisa no Uses ?
GOSTEI 0
Aloizio Castro
08/05/2007
Anderson...
Eu preciso declarar alguma coisa no Uses ?
Para usar .JPG, declare Jpeg;
Para usar o RightStr declare StrUtils.
GOSTEI 0
Marcos.gandin
08/05/2007
Valeu Anderson...
Agora funcionou...mas abusando um pouco mais da sua boa vontade, será que tem como quando eu der um duplo-clique na foto abrir ela no seu tamanho original ou então num tamanho pré-determinado em um outro Form ?
Aceito sugestões...
Agora funcionou...mas abusando um pouco mais da sua boa vontade, será que tem como quando eu der um duplo-clique na foto abrir ela no seu tamanho original ou então num tamanho pré-determinado em um outro Form ?
Aceito sugestões...
GOSTEI 0
Titanius
08/05/2007
Só mais uma coisa.. a biblioteca JEDI, tem um componente que faz o que você quer... muito bom, quando precisei usei ela...
[]s
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Mas essa biblioteca faz os thumbnails ou faz com que eu dê um duplo clique a foto fique no tamanho original?
É que eu já consegui fazer os thumbnails com o exemplo que o Adriano me passou, o que eu preciso agora é só fazer com que a foto fique do tamanho original.
Aonde eu consigo essa bilioteca?
Att.
É que eu já consegui fazer os thumbnails com o exemplo que o Adriano me passou, o que eu preciso agora é só fazer com que a foto fique do tamanho original.
Aonde eu consigo essa bilioteca?
Att.
GOSTEI 0
Titanius
08/05/2007
http://jvcl.sourceforge.net/
Seguinte, ela te mostra o tumb.. mas a parte do tamanho original não, mas isso você mesmo pode fazer, com um Form, e um TImage... dando duplo clique, abre este form mostrando esta imagem...
[]s
Seguinte, ela te mostra o tumb.. mas a parte do tamanho original não, mas isso você mesmo pode fazer, com um Form, e um TImage... dando duplo clique, abre este form mostrando esta imagem...
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Valeu Fellipe...
Na verdade eu não tinha pensando nessa possibilidade...mas como eu vou saber qual foto vai abrir uma vez que vou colocar o código no evento OnDblClick do componente ScrollBox ?
Att.
Na verdade eu não tinha pensando nessa possibilidade...mas como eu vou saber qual foto vai abrir uma vez que vou colocar o código no evento OnDblClick do componente ScrollBox ?
Att.
GOSTEI 0
Titanius
08/05/2007
Valeu Fellipe...
Na verdade eu não tinha pensando nessa possibilidade...mas como eu vou saber qual foto vai abrir uma vez que vou colocar o código no evento OnDblClick do componente ScrollBox ?
Att.
Bem, no tal componente do JEDI, você tem condicoes de saber qual o arquivo está selecionado, agora como você fez, eu não sei.. você poderá verificar onde foi clicado, e se tem alguma imagem, pra aih descobrir o caminho dela pra exibir... mas aconselho a voce a dar uma olhada neste componente... :wink:
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Felipe...
Essa biblioteca Jedi é Free ?
Essa biblioteca Jedi é Free ?
GOSTEI 0
Titanius
08/05/2007
Ela é Open-Source, vai com fonte e tudo... é muita coisa que tem nela.... muita mesmo, se te falar que parei de contar nos 200 componentes você não acredita...
[]s
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
E a instalação é simples?
Tem um tutorial explicando como eu faço a instalação?
Att.
Tem um tutorial explicando como eu faço a instalação?
Att.
GOSTEI 0
Titanius
08/05/2007
Ele tem um instalador próprio...
Se for baixar, baixe a versão FULL... com JCL+JVCL...
Primeiro você instala o JCL e depois o JVCL... todos dois tem instalador próprio...
[]s
Se for baixar, baixe a versão FULL... com JCL+JVCL...
Primeiro você instala o JCL e depois o JVCL... todos dois tem instalador próprio...
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Baixei o arquivo JVCL330CompleteJCL198-Build2530.zip, era o que tinha mais donwloads baixados.
Ao descompactar ele criou as pastas JCL e JVCL e dentro delas pude ver que tem muita coisa mesmo.
Então, agora, é só executar o arquivo install.bat que se encontra dentro destas pastas que ele vai fazer o resto da instalação, é isso ?
E no Delphi eu vou precisar fazer alguma alteração ou é só abrir o Delphi e começar a utilizar esses componentes?
Att.
Ao descompactar ele criou as pastas JCL e JVCL e dentro delas pude ver que tem muita coisa mesmo.
Então, agora, é só executar o arquivo install.bat que se encontra dentro destas pastas que ele vai fazer o resto da instalação, é isso ?
E no Delphi eu vou precisar fazer alguma alteração ou é só abrir o Delphi e começar a utilizar esses componentes?
Att.
GOSTEI 0
Titanius
08/05/2007
Baixei o arquivo JVCL330CompleteJCL198-Build2530.zip, era o que tinha mais donwloads baixados.
Ao descompactar ele criou as pastas JCL e JVCL e dentro delas pude ver que tem muita coisa mesmo.
Então, agora, é só executar o arquivo install.bat que se encontra dentro destas pastas que ele vai fazer o resto da instalação, é isso ?
E no Delphi eu vou precisar fazer alguma alteração ou é só abrir o Delphi e começar a utilizar esses componentes?
Att.
Isso mesmo... execute o install.bat de cada um, e vai lhe mostrar quais versoes de delphi você tem instalado, deixe marcado em qual versao deseja instalar e pronto... faz isso nos dois e prontinho... nao precisa mexer em nada no delphi, normalmente o JEDI configura ele sem problemas...
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Valeu Felipe...
Você realmente tem me ajudado com as suas dicas.
Mais uma vez te agradeço.
Um abraço...
Você realmente tem me ajudado com as suas dicas.
Mais uma vez te agradeço.
Um abraço...
GOSTEI 0
Titanius
08/05/2007
Tranquilo.. :wink:
Precisando estamos aih.
[]s
Precisando estamos aih.
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Felipe...acho que preciso de mais uma ajuda sua.
Eu baixei o arquivo JVCL331CompleteJCL199-Build2551.zip, descompactei e realmente foram criadas as duas pastas: jcl e jvcl e dentro delas todos os componentes, exemplos, etc...enfim, tudo certo até então.
Eu instalei a jcl sem problemas, mas quando eu tento instalar a jvcl, logo no início dá um erro:
C:\Jedi\jvcl\Common\jvcl.inc(36) Error: ´END´ expected but identifier ´ALERT_jedi_inc_incompatible´ found
e não tem jeito de prosseguir com a instalação.
O estranho é que em casa eu instalei e deu tudo certo mas aqui eu faço a mesma coisa e não consigo.
Detalhe: em casa eu tenho Windows XP e aqui na empresa eu tenho Windows Server 2003...será que a biblioteca não roda nesse ambiente?
Att.
Eu baixei o arquivo JVCL331CompleteJCL199-Build2551.zip, descompactei e realmente foram criadas as duas pastas: jcl e jvcl e dentro delas todos os componentes, exemplos, etc...enfim, tudo certo até então.
Eu instalei a jcl sem problemas, mas quando eu tento instalar a jvcl, logo no início dá um erro:
C:\Jedi\jvcl\Common\jvcl.inc(36) Error: ´END´ expected but identifier ´ALERT_jedi_inc_incompatible´ found
e não tem jeito de prosseguir com a instalação.
O estranho é que em casa eu instalei e deu tudo certo mas aqui eu faço a mesma coisa e não consigo.
Detalhe: em casa eu tenho Windows XP e aqui na empresa eu tenho Windows Server 2003...será que a biblioteca não roda nesse ambiente?
Att.
GOSTEI 0
Titanius
08/05/2007
Olá MArcos, acredito que você esteja em uma dessas opções:
1) Já tenha alguma versão antiga do JEDI.
Se for o caso, desinstalei totalmente, inclusive excluindo os arquivos gerados por ele.
2) Arquivo Corrompido.
Descompacte novamente...
3) Caminho do JCL no JVCL inválido.
Na instalação tem uma parte que mostra o caminho do JCL, veja se está de acordo com o seu.
[]s
1) Já tenha alguma versão antiga do JEDI.
Se for o caso, desinstalei totalmente, inclusive excluindo os arquivos gerados por ele.
2) Arquivo Corrompido.
Descompacte novamente...
3) Caminho do JCL no JVCL inválido.
Na instalação tem uma parte que mostra o caminho do JCL, veja se está de acordo com o seu.
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Tentei as 3 opções e não deu certo.
Ele insiste em dizer que o arquivo jvcl.inc que está dentro de c:\Jedi\jvcl\commom\ tem aquela linha com erro.
Eu editei esse aquivo e realmente na linha 36 está a linha ALERT_jedi_inc_incompatible
Tentei baixar o arquivo .zip novamente e aconteceu o mesmo.
Por acaso no seu arquivo jvcl.inc também contém essa linha ?
Att.
Ele insiste em dizer que o arquivo jvcl.inc que está dentro de c:\Jedi\jvcl\commom\ tem aquela linha com erro.
Eu editei esse aquivo e realmente na linha 36 está a linha ALERT_jedi_inc_incompatible
Tentei baixar o arquivo .zip novamente e aconteceu o mesmo.
Por acaso no seu arquivo jvcl.inc também contém essa linha ?
Att.
GOSTEI 0
Titanius
08/05/2007
O meu tambem contem esta linha... muito estranho.. em qual versao do delphi voce está tentando instalar?
[]s
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Então Felipe...eu estou tentando instalar no Delphi 7 que é o mesmo que eu tenho instalado em casa.
Só que em casa deu certo, mas aqui não...
Poxa...achei tão legal a bibioteca e queria usá-la aqui também.
Só que em casa deu certo, mas aqui não...
Poxa...achei tão legal a bibioteca e queria usá-la aqui também.
GOSTEI 0
Titanius
08/05/2007
Certo, mas o erro aparece quando está compilando o install.bat ou quando está instalando a biblioteca...
poderia fornecer o erro do jeito que mostra ai?
[]s
poderia fornecer o erro do jeito que mostra ai?
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Felipe, eu dou um duplo clique no install.bat da pasta jcl, clico no botão install e esse ele instala perfeitamente.
Depois eu dou um duplo clique no install.bat da pasta jvcl e vou clicando no botão next até aparecer o botão install...eu clico no botão install e ele começa a compilar as Packages, só que logo no início ele dá o erro:
[b:94933ff5ec]JVCL 3.31.0.0
[Generating: Packages]
Generating packages for D7
Loaded template.dof
Loaded template.dpk
Loaded template.rc
[Compiling: Packages]
[Compiling: Jv3rdD7R.bpl]
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
C:\Lib\Jedi\jvcl\Common\jvcl.inc(36) Error: ´END´ expected but identifier ´ALERT_jedi_inc_incompatible´ found[/b:94933ff5ec]
É esse erro aí que dá...
Depois eu dou um duplo clique no install.bat da pasta jvcl e vou clicando no botão next até aparecer o botão install...eu clico no botão install e ele começa a compilar as Packages, só que logo no início ele dá o erro:
[b:94933ff5ec]JVCL 3.31.0.0
[Generating: Packages]
Generating packages for D7
Loaded template.dof
Loaded template.dpk
Loaded template.rc
[Compiling: Packages]
[Compiling: Jv3rdD7R.bpl]
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
C:\Lib\Jedi\jvcl\Common\jvcl.inc(36) Error: ´END´ expected but identifier ´ALERT_jedi_inc_incompatible´ found[/b:94933ff5ec]
É esse erro aí que dá...
GOSTEI 0
Titanius
08/05/2007
Seguinte, vamos tentar esta nova:
Procure na sua máquina pelo arquivo: [b:6e4583a86d]jedi.inc[/b:6e4583a86d]
Na máquina inteira...
Com certeza você irá localizar alguns...
Os arquivos que [b:6e4583a86d]não[/b:6e4583a86d] estiverem na pasta: JCL e JVCL que você descompactou, você renomeia eles pra qualquer outro nome diferente... e tenta instalar novamente... vai ter que reinstalar o JCL também... ou seja, os únicos arquivos jedi.inc que deverão existir no seu computador, [b:6e4583a86d]obrigatoriamente e exclusivamente[/b:6e4583a86d] deverão estar nas pastas JCL e JVCL que você descompactou.
[]s
Procure na sua máquina pelo arquivo: [b:6e4583a86d]jedi.inc[/b:6e4583a86d]
Na máquina inteira...
Com certeza você irá localizar alguns...
Os arquivos que [b:6e4583a86d]não[/b:6e4583a86d] estiverem na pasta: JCL e JVCL que você descompactou, você renomeia eles pra qualquer outro nome diferente... e tenta instalar novamente... vai ter que reinstalar o JCL também... ou seja, os únicos arquivos jedi.inc que deverão existir no seu computador, [b:6e4583a86d]obrigatoriamente e exclusivamente[/b:6e4583a86d] deverão estar nas pastas JCL e JVCL que você descompactou.
[]s
GOSTEI 0
Marcos.gandin
08/05/2007
Felipe...
Segui a sua orientação e consegui instalar...só que ainda estou com um problema em uma package.
Quando você clica no item de menu Project e deopis clica em Options... abre-se a tela Default Project Options. Na aba Packages tem o item:
JVCL Multimedia and Image Components.
Essa é a única package que não consigo selecionar, pois quando eu seleciono ela dá o seguinte erro:
Cannot load package ´JvMMD7R.´ It contains unit ´VFW´, witch is also contained is package ´GLScene7´
E agora??? O que eu faço ???
Att.
Segui a sua orientação e consegui instalar...só que ainda estou com um problema em uma package.
Quando você clica no item de menu Project e deopis clica em Options... abre-se a tela Default Project Options. Na aba Packages tem o item:
JVCL Multimedia and Image Components.
Essa é a única package que não consigo selecionar, pois quando eu seleciono ela dá o seguinte erro:
Cannot load package ´JvMMD7R.´ It contains unit ´VFW´, witch is also contained is package ´GLScene7´
E agora??? O que eu faço ???
Att.
GOSTEI 0