Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Miss

Imagem

Recommended Posts

Opa!!Pessoal alguem saberia me explicar como posso fazer pra pegar todas as imagens de uma determinada pasta digamos da pasta : C:\Documents and Settings\user\Meus documentos\Minhas imagense passar uma por uma na tela ... tipoo clika no botao proximo ele mostra a proxima imagem???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque uma opção para selecionar a pasta desejada, depois carregue as imasgens em um StringList por exemplo, no caso somente o caminho das imagens, adicione um TImage, e ao clicar no botão você pega e da um LoadFromFile para o TImgage carregar a imagem, pegando o endereço pelo StringList.

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra.. perdao ... mais nunca trabalhei com esse stringlist...como eu faria pra carregar pra esse stringList.... seria um componente?? de qual palheta??beleza;.... desde ja agradeço tehkra.. perdao ... mais nunca trabalhei com esse stringlist...como eu faria pra carregar pra esse stringList.... seria um componente?? de qual palheta??beleza;.... desde ja agradeço teh

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra.... da uma olhada faz o favor:

private  Count: Integer;var  Form1: TForm1;  var Lista: TStringList;

 

procedure TForm1.Button1Click(Sender: TObject);beginif OpenDialog1.Execute then	begin	Lista:= TStringList.Create;	Lista.Add(OpenDialog1.FileName);	end;end;procedure TForm1.Button2Click(Sender: TObject);beginInc(Count);	Image1.Picture.LoadFromFile(Lista.Strings[Count]);end;

 

 

Erro: List index out of bounds(1) // indice da linha fora do limite...

 

oke eu fiz de errado?

ps: Setei a propriedade do OpenDialog pra selecionar multiplas imagens

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte, altere o seu componente OpenDialog pelo OpenPictureDialog, e faz o seguinte;

 

procedure TForm1.BitBtn1Click(Sender: TObject);beginif OpenPictureDialog1.Execute then	begin	Lista:=TStringList.Create;	Lista.AddStrings(OpenPictureDialog1.Files);	Count:=0;	end;end;procedure TForm1.BitBtn2Click(Sender: TObject);beginLabel1.Caption:=Lista.Strings[Count];Image1.Picture.LoadFromFile(Label1.Caption);if count = Lista.Count - 1 then	count:=0else	Inc(Count);end;

No caso somente adicionei um label para mostrar a imagem que esta aparecendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra fiz dessa forma... mais qdo abre o OpenDialogPicture... e qdo seleciono uma imagem ele me da o seguinte erro:Unknown picture file extensionr(.jpg)??Com imagem bmp funciona legalOke sera?ps: naum teria como carregar as imagens do caminho C:\Documents and Settings\LOJA\Meus documentos\Minhas imagens,, automatico ... sem precisar usar o openDialog?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Declare jpeg no uses do formulário.

Para pegar as fotos sem precisar usar o diálogo, você terá de criar uma função que busque todos as imagens desta pasta e carregue no seu stringList.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops! pois eh kra... a questao do JPG eu resolvi da forma q você flw... o problema eh a funcao....eu ja tinha pensado no q você disse.... mais naum tenho a menor ideia de como fazer essa funcao... andei dando uma pesquisada no forum e naum tive mto sucesso...você saberia me dizer como fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Barbadinha para você:

 

 

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ExtDlgs, StdCtrls, Buttons, ExtCtrls, jpeg;type  TForm1 = class(TForm)	Image1: TImage;	BitBtn1: TBitBtn;	BitBtn2: TBitBtn;	lblCaminho: TLabel;	lblTamanho: TLabel;	procedure BitBtn1Click(Sender: TObject);	procedure BitBtn2Click(Sender: TObject);  private	{ Private declarations }	Lista: TStringList;	Count: Integer;	procedure BuscaListaArquivosPasta(pasta: string; lista: TStringList);  public	{ Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BuscaListaArquivosPasta(pasta: string; lista: TStringList);var	x: integer;	SearchRec: TSearchRec;	intControl: integer;	ext: string;beginlista.Clear;intControl:=FindFirst(pasta + '\*.*', faArchive, SearchRec);if intControl = 0 then	begin	while (intControl = 0) do		begin		ext:=ExtractFileExt(SearchRec.Name);		if ((ext = '.jpg') or (ext = '.jpeg') or (ext = '.bmp') or (ext = '.ico') or (ext = '.emf') or (ext = '.wmf')) then		   lista.Add(pasta + '\' + SearchRec.Name);		intControl:=FindNext(SearchRec);		end;	FindClose(SearchRec);	end;for x:=lista.Count - 1 downto 0 do	if ((lista.Strings[x] = '.') or (lista.Strings[x] = '..')) then		lista.Delete(x);end;procedure TForm1.BitBtn1Click(Sender: TObject);beginLista:=TStringList.Create;BuscaListaArquivosPasta(GetEnvironmentVariable('USERPROFILE') + '\Meus Documentos\Minhas Figuras',Lista);Count:=0;end;procedure TForm1.BitBtn2Click(Sender: TObject);beginlblCaminho.Caption:=Lista.Strings[Count];Image1.Picture.LoadFromFile(lblCaminho.Caption);lblTamanho.Caption:='Tamanho: ' + IntToStr(Image1.Picture.Graphic.Width) + ' X ' + IntToStr(Image1.Picture.Graphic.Height);if count = Lista.Count - 1 then	count:=0else	Inc(Count);end;end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Marcio... :D

 

Eu d novo ressucitando esse topico .. hehehe

 

kra... eu tinha feito como você me ensinou... mais agora senti a nescessidade de um botao "Back"... eu fiz assim:

 

procedure TfrmVisualizador.btnNextClick(Sender: TObject);beginstb.Panels[0].Text:= Lista.Strings[Count];Image.Picture.LoadFromFile(stb.Panels[0].Text);If count = Lista.Count - 1 then	begin	count:= 0;	end	else	Inc(Count);end;
procedure TfrmVisualizador.btnBackClick(Sender: TObject);beginif (Count = 0) or (Count = 1) then	begin	Count:= Lista.Count - 1;	end;	stb.Panels[0].Text:= Lista.Strings[Count -2];	Image.Picture.LoadFromFile(stb.Panels[0].Text);	Inc(Count);end;
soh q as vezes ele da erro de fora do indice da lista...

poderia me da uma essa maozinha?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa verificar, que quando ele chegar no primeiro pelo Back e clicar novamente, o valor vai ficar -1, mas você precisa criar um controle para ele voltar para o último da listagem, ou então dizer que não têm mais registros...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.