Inserir foto em formulário de funcionários

Delphi

27/06/2004

Olá Pessoal,

Estou bolando um formulário de cadastro de funcionário e neste formulário eu gostaria de acrescentar a foto do funcionário, mas não estou sabendo como, já coloquei um dbimagem ,mas não sei que comando fazer para inserir a foto, por favor se alguém souber informar fico muito agradecido.

Atenciosamente,

Fabiano Ferreira


Ferreirafabiano

Ferreirafabiano

Curtidas 0

Respostas

Mariocanel

Mariocanel

27/06/2004

coloque as units jpeg e Clipbrd na clausula usis
adiciona um OpenPictureDialog1(dialogs)
e este códigono onclique de um botao qualquer, ah o dtsrc é um dataset que está ligado a uma tabela valewu..............

var jpg : TJPegImage;
begin
if (DtSrc.State = dsInsert) or (DtSrc.State = dsEdit) then
begin
if OpenPictureDialog1.Execute then
begin
jpg := TJpegImage.Create;
jpg.LoadFromFile(OpenPictureDialog1.FileName);
clipboard.Assign(jpg);
DBImage1.PasteFromClipboard;
jpg.Free;
end;
end
else
ShowMessage(´Tabela não está no modo de inclusão/edição´);
end;


GOSTEI 0
Ferreirafabiano

Ferreirafabiano

27/06/2004

Valeu pela dica, mas eu só não entendi a parte do dataset, pois eu estou trabalhando com o bde, e o dataset é um Clientdatset; datasetprovider??

Fabiano Ferreira


GOSTEI 0
Misael

Misael

27/06/2004

Fabiano qual é o banco de dados que vc esta utilizando e quais componentes para acessar-los???


GOSTEI 0
Bon Jovi

Bon Jovi

27/06/2004

O exemplo funciona, mas usar clipboard nao vai matar algo que o usuário por acaso tenha colocado na área de transferência?

Costumo usar desse jeito:

procedure TForm1.EscolheImagem(Imagem: TDBImage);
var
  oJPEG: TJPEGImage;
  oDialogo: TOpenPictureDialog;
begin
  if not Assigned(Imagem) then
    Exit;

  if (not Assigned(Imagem.DataSource)) or (Imagem.DataField = ´´) then
    Exit;

  if not Assigned(Imagem.DataSource.DataSet) then
    Exit;

  if not (Imagem.DataSource.DataSet.Active) then
    Exit;
      
  oDialogo := TOpenPictureDialog.Create(nil);
  try
    oDialogo.Options := [ofOverwritePrompt, ofHideReadOnly, ofEnableSizing];
    oJPEG := TJPEGImage.Create;
    try
      if oDialogo.Execute then
      begin
        oJPEG.LoadFromFile(oDialogo.FileName);
        if not (Imagem.DataSource.DataSet.State in dsEditModes) then
          Imagem.DataSource.DataSet.Edit;
        Imagem.Picture.Graphic.Assign(oJPEG);
      end;
    finally
      FreeAndNil(oJPEG);
    end;
  finally
    FreeAndNil(oDialogo);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EscolheImagem(DBImage1);
end;



GOSTEI 0
Bon Jovi

Bon Jovi

27/06/2004

Melhorando pra aceitar ler BMP convertendo pra JPEG:

procedure TForm1.EscolheImagem(Imagem: TDBImage);
var
  oJPEG: TJPEGImage;
  oDialogo: TOpenPictureDialog;
  oPicture: TPicture;
begin
  if not Assigned(Imagem) then
    Exit;

  if (not Assigned(Imagem.DataSource)) or (Imagem.DataField = ´´) then
    Exit;

  if not Assigned(Imagem.DataSource.DataSet) then
    Exit;

  if not (Imagem.DataSource.DataSet.Active) then
    Exit;
      
  oDialogo := TOpenPictureDialog.Create(nil);
  try
    oDialogo.Options := [ofOverwritePrompt, ofHideReadOnly, ofEnableSizing];
    oDialogo.Filter := ´Imagens (*.jpg;*.jpeg;*.bmp)|*.jpg;*.jpeg;*.bmp´;
    oPicture := TPicture.Create;
    try
      oJPEG := TJPEGImage.Create;
      try
        if oDialogo.Execute then
        begin
          oPicture.LoadFromFile(oDialogo.FileName);
          oJPEG.Assign(oPicture.Graphic);
          if not (Imagem.DataSource.DataSet.State in dsEditModes) then
            Imagem.DataSource.DataSet.Edit;
          Imagem.Picture.Graphic.Assign(oJPEG);
        end;
      finally
        FreeAndNil(oJPEG);
      end;
    finally
      FreeAndNil(oPicture);
    end;
  finally
    FreeAndNil(oDialogo);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EscolheImagem(DBImage1);
end;



GOSTEI 0
POSTAR