GARANTIR DESCONTO

Fórum Inserir imagem. #411335

09/01/2012

0

Pessoal estou com um problema ao qual não acho solução.

Gostaria que no clique de um botão abrisse alguma página para que seja escolhida uma imagem da pasta
e assim, ao escolher a imagem a mesma seria carregada no componente TImage do meu Form.

Me corrijam caso esteja errado, mas só sei fazer isso usando LoadFromFile, porem, deste jeito o
usuário não pode inserir a imagem que ele quer.

Atenciosamente,

Flavio D. Silva
Flavio Silva

Flavio Silva

Responder

Posts

10/01/2012

Wesley Yamazack

Olá Flavio, para resolver este teu problema vamos fazer o seguinte.

Coloque no seu formulário um OpenDialog1, Image e Button.

No evento onClick do Button, você implementa da seguinte forma :

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Image1.Picture.LoadFromFile(OpenDialog1.FileName);
  end;
end;


Observação, se for imagem em Jpg, você tem que dar uses em jpeg.

Veja se isso te ajuda.

Att,

Wesley Yamazack
www.lithic.com.br
Responder

Gostei + 0

10/01/2012

Flavio Silva

Já me ajudou muito cara, mas agora tenho outra dúvida...

Como a partir deste processo consigo buscar o caminho da imagem para poder armazenar no banco o caminho???
Ex: Campo Caminho --> C:\imagens\botão.jpeg

Porque para gravar está imagem estou armazenando no campo o caminho da imagem (String). Não estou armazenando a imagem em si. Deixando assim o banco mais leve.

Desde já agradeço a atenção.

Att,

Flavio D. Silva.
Responder

Gostei + 0

10/01/2012

Wesley Yamazack

Olá, faça o seguinte, cria uma variável private, para armazenar o caminho da imagem.

Da seguinte maneira :

type
  TForm1 = class(TForm)
    BtnNovoNome: TButton;
    LblEdtNovoNome: TLabeledEdit;
    LblEdtNomeAtual: TLabeledEdit;
    BtnNomeAtual: TButton;
    procedure BtnNovoNomeClick(Sender: TObject);
    procedure BtnNomeAtualClick(Sender: TObject);
  private
    xCaminhoTemporario: String; //OLHA A VARIÁVEL AQUI!!!!!!!!!!!!!!
    function LoadComputerName: string;
    function PostComputerName(pNewName: string): Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;



Agora no seu código basta modificar e fazer da seguinte forma :

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
xCaminhoTemporaria := (OpenDialog1.FileName;
end;
end;


Ao final você terá que fazer o seguinte pra salvar no BD.

if xCaminhoTemporaria  <>  then //estou fazendo assim pois pode ser que não exista imagem.
   CDSCliente.FieldByName(imagem).asstring := xCaminhoTemporaria; 


Desta forma resolve?

Um abraço,

Wesley Yamazack
www.lithic.com.br
Responder

Gostei + 0

10/01/2012

Wesley Yamazack

Olá, faça o seguinte, cria uma variável private, para armazenar o caminho da imagem.

Da seguinte maneira :

type
  TForm1 = class(TForm)
    BtnNovoNome: TButton;
    LblEdtNovoNome: TLabeledEdit;
    LblEdtNomeAtual: TLabeledEdit;
    BtnNomeAtual: TButton;
    procedure BtnNovoNomeClick(Sender: TObject);
    procedure BtnNomeAtualClick(Sender: TObject);
  private
    xCaminhoTemporario: String; //OLHA A VARIÁVEL AQUI!!!!!!!!!!!!!!
    function LoadComputerName: string;
    function PostComputerName(pNewName: string): Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;



Agora no seu código basta modificar e fazer da seguinte forma :

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
xCaminhoTemporaria := (OpenDialog1.FileName;
end;
end;


Ao final você terá que fazer o seguinte pra salvar no BD.

if xCaminhoTemporaria  <>  then //estou fazendo assim pois pode ser que não exista imagem.
   CDSCliente.FieldByName(imagem).asstring := xCaminhoTemporaria; 


Desta forma resolve?

Um abraço,

Wesley Yamazack
www.lithic.com.br
Responder

Gostei + 0

10/01/2012

Flavio Silva

Man, era isso mesmo... valeu mesmo pela ajuda...

Atenciosamente,

Flavio D. Silva.
Responder

Gostei + 0

10/01/2012

Wesley Yamazack

Blz Flavio , se já esta certo, fecha o tópico por favor,blz? Obrigado.

Att,

Wesley Yamazack
www.lithic.com.br
Responder

Gostei + 0

13/01/2012

Flavio Silva

Tem um problema man, nao consigo fechar os tópicos finalizados... antes eu conseguia...

Como prossegir?

Att,

Flavio D. Silva
Responder

Gostei + 0

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

Aceitar