PDA

Ver la Versión Completa : Como poner una imagen en Paradox


J3Y
28-03-2017, 17:55:21
Hola
Quisiera saber como puedo poner una imagen en Paradox

Les cuento:
Tengo una base de datos en Paradox 7, quiero introducir imágenes en JPEG o JPG, ya que quiero hacer una base de datos de unos estudiante para que cada vez que pase de estudiante aparezca su respectiva foto.

Como lo puedo hacer?



PD: Soy nuevo en este lenguaje, si me podrian explicar detalladamente se los agradecerecia. v:-)v

bitbow
28-03-2017, 22:46:30
Si tu proyecto es algo que vas a realizar de cero , te recomiendo encarecidamente que te olvides de paradox y uses otra base de datos pero claro que esa no es tu pregunta.

Normalmente cuando se manejan imagenes, se almacena solo la ruta de la imagen en la base de datos y cuando quieres visualizarlas las cargas mediante esa ruta.

Posibles procesos:
Seleccion de image->guardado de ruta
ó
Seleccion de imagen->Mover imagen a un directorio especifico (esto para tener todo organizado)->gurdado de ruta

Adicional si tu desarrollo requiere la carga de imagenes puedes codificar el archivo en Base64 y guardarlo como cadena o cargarlo directamente como binario en un campo (desconozco los tipos de datos paradox que te puedan servir para esto ultimo).

Saludos.

ecfisa
28-03-2017, 22:58:47
Hola.

Estos procedimientos te van a servir para cualquier descendiente de TDataSet:

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:

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 :)

J3Y
29-03-2017, 15:37:26
Gracias bitbow y ecfisa, queria con JPG o JPEG pero termine usando BMP, pero gracias por el aporte ^\||/