Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Qué tiene de malo este código para cargar una imagen a access con ado ? (https://www.clubdelphi.com/foros/showthread.php?t=68955)

Master23 16-07-2010 22:53:46

Qué tiene de malo este código para cargar una imagen a access con ado ?
 
opendialog1.Execute;
adotable1.Insert;
dbimage1.LoadPicture(opendialog1.FileName);
adotable1.Post;

usé este código y delphi dice que tengo un problema en la tercera linea quiero saber como meter una imagen de esta manera gracias de antemano.

delphi.com.ar 16-07-2010 23:01:00

Cuando un programa te produce un error y haces una pregunta en el foro, es importante que nos pongas el error para poder ayudarte. Por lo que veo, al menos en Delphi 7 que es lo que tengo instalado, LoadPicture no posee un parámetro para pasarle el archivo, sinó que carga el archivo del campo que tiene asociado. Entonces la imagen se la tendrías que cargar al campo y no al componente.

Saludos!

Master23 16-07-2010 23:28:19

Cita:

Empezado por delphi.com.ar (Mensaje 370683)
Cuando un programa te produce un error y haces una pregunta en el foro, es importante que nos pongas el error para poder ayudarte. Por lo que veo, al menos en Delphi 7 que es lo que tengo instalado, LoadPicture no posee un parámetro para pasarle el archivo, sinó que carga el archivo del campo que tiene asociado. Entonces la imagen se la tendrías que cargar al campo y no al componente.

Saludos!

Exacto mira tengo una base en access y un campo tipo ole para la imagen
quiero el código para poder guardar imágenes en el campo.

delphi.com.ar 16-07-2010 23:32:52

Cita:

Empezado por Master23 (Mensaje 370686)
Exacto mira tengo una base en access y un campo tipo ole para la imagen
quiero el código para poder guardar imágenes en el campo.

Te dí una pista, la idea es que lo investigues, no es complejo, sin importar que base de datos utilices, esto tendría que funcionar:

Código Delphi [-]
adotable1.Insert;
TBlobField(adotable1.FieldByName('IMAGEN')).LoadFromFile(opendialog1.FileName);
adotable1.Post;

Otra opción podría ser, muy similar a lo que has escrito:

Código Delphi [-]
adotable1.Insert;
TBlobField(dbimage1.Field).LoadFromFile(opendialog1.FileName);
adotable1.Post;

O bien:
Código Delphi [-]
adotable1.Insert;
dbimage1.Picture.LoadFromFile(opendialog1.FileName);
adotable1.Post;
Saludos!

radenf 16-07-2010 23:35:25

Creo que tu error puede estar en que estás usando un OpenDialog y deberías utilizar un OpenPictureDialog.

Salu2

delphi.com.ar 16-07-2010 23:39:31

Cita:

Empezado por radenf (Mensaje 370688)
Creo que tu error puede estar en que estás usando un OpenDialog y deberías utilizar un OpenPictureDialog.

Lo dudo, la que el bien hace referencia el nombre del archivo. El TOpenPictureDialog no devuelve un TGraphic ni nada similar, simplemente es un TOpenDialog que fija automáticamente los filtros según los TGraphic registrados y muestra un preview del mismo. Algo mas bonito por cierto.

Saludos!

Caral 16-07-2010 23:49:44

Hola
Código Delphi [-]
uses jpeg;

var jpg: TJPEGImage;

procedure TForm1.FormCreate(Sender: TObject);
begin
 jpg := TJPEGImage.Create;        // Creamos el objeto que "entiende" al JPEG
end;

procedure TForm1.Button1Click(Sender: TObject);
var bmp: TBitmap; Stream: TStream;
Ruta: String;
begin
 if not OpenDialog1.Execute then Exit;

 bmp := TBitmap.Create;           // Creamos el objeto que "entiende" al Bitmap
 bmp.LoadFromFile(OpenDialog1.FileName);  // cargamos la imagen
 jpg.Assign(bmp);                 // signamos la imagen BMP al objeto del JPEG
 bmp.Destroy;                     // y liberamos el objeto. }

 ADOTable1.Open;                  // Abrimos la tabla
 ADOTable1.Insert;                // Insertamos una nueva tupla
 Stream := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('photo'), bmWrite); // Asignamos el BLOB a un stream
 jpg.SaveToStream(Stream);        // y guardamos la imagen como JPEG (convertido), en el stream
 Stream.Destroy;                  // liberamos.
 ADOTable1.Post;                  // Guardamos.

end;
Saludos

Master23 17-07-2010 02:00:37

¿cómo usar 3D en delphi 2010 ?
 
Lo que pasa es que quiero insertarle gráficos 3D a una aplicación en delphi 2010, que puedo hacer para poder lograrlo algún tutorial gracias de antemano.

Master23 17-07-2010 03:05:24

Cita:

Empezado por delphi.com.ar (Mensaje 370687)
Te dí una pista, la idea es que lo investigues, no es complejo, sin importar que base de datos utilices, esto tendría que funcionar:

Código Delphi [-]
adotable1.Insert;
TBlobField(adotable1.FieldByName('IMAGEN')).LoadFromFile(opendialog1.FileName);
adotable1.Post;

Otra opción podría ser, muy similar a lo que has escrito:

Código Delphi [-]
adotable1.Insert;
TBlobField(dbimage1.Field).LoadFromFile(opendialog1.FileName);
adotable1.Post;

O bien:
Código Delphi [-]
adotable1.Insert;
dbimage1.Picture.LoadFromFile(opendialog1.FileName);
adotable1.Post;
Saludos!

Opté por la ultima opción funciona correctamente pero quiero preguntarte algo
cómo puedo hacer que reconozca formatos jpg ya que solo acepta bmp y bueno cuando la imagen es muy grande no se adapta al edit que me sugieres para eso gracias de antemano.


La franja horaria es GMT +2. Ahora son las 20:50:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi