Ver Mensaje Individual
  #3  
Antiguo 28-03-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Estos procedimientos te van a servir para cualquier descendiente de TDataSet:
Código Delphi [-]
uses JPeg;

procedure JpgToBlobField( Jpg: TJPEGImage; DataSet: TDataSet; const FieldName: string );
var
  Stream : TStream;
begin
  Stream := TMemoryStream.Create;
  try
    Jpg.SaveToStream( Stream );
    Stream.Seek( 0, soFromBeginning );
    DataSet.Edit;
    TBlobField( DataSet.FieldByName(FieldName) ).LoadFromStream( Stream );
    DataSet.Post;
  finally
    Stream.Free;
  end;
end;

procedure BlobFieldToJpg( DataSet: TDataSet; const FieldName: string; Jpg: TJPEGImage );
var
  Stream : TStream;
begin
  Stream := TMemoryStream.Create;
  try
    TBlobField( DataSet.FieldByName(FieldName) ).SaveToStream( Stream );
    Stream.Seek( 0, soFromBeginning );
    Jpg.LoadFromStream( Stream );
  finally
    Stream.Free;
  end;
end;

Ejemplos de uso:
Código Delphi [-]
procedure TForm1.btnSaveImageClick( Sender: TObject );
var
  Jpg: TJPEGImage;
  pd : TOpenPictureDialog;
begin
  pd := TOpenPictureDialog.Create( nil );
  try
    pd.Filter  := 'JPG Files (*.JPG) | *.JPG';
    pd.Options := [ofFileMustExist];
    if pd.Execute then
    begin
      Jpg := TJPEGImage.Create;
      try
        Jpg.LoadFromFile( pd.FileName );
        JpgToBlobField( Jpg, tuDataSet, 'IMAGEN' );
      finally
        Jpg.Free;
      end;
    end;
  finally
    pd.Free;
  end;
end;

procedure TForm1.btShowImageClick( Sender: TObject );
var
  Jpg: TJPEGImage;
begin
  Jpg := TJPEGImage.Create;
  try
    BlobFieldToJpg( tuDataSet, 'IMAGEN', Jpg );
    Image1.Picture := nil;
    Image1.Picture.Assign( Jpg );
  finally
    Jpg.Free;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita