![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Guardar ICOs en BlOB y después recuperarlos
Hola a todos
![]() Resumo el problema. Tengo una base de datos donde se guardan un campo BLOB que corresponde a iconos que quiero que se muestren en un menú de diferentes aplicaciones. Posteriormente estas imágenes son leidas directamente de la base de datos con una consulta y asignando el campo obtenido a un DBImage. El problema radica en que el BLOB, que gestiono mediante una pantalla con otro DBImage solo acepta que recupere en este componentes fichero .bmp y no acepta ICOs. A mi me interesa tener ICOs para cuando los recupero en el menú mediante el componente TDBImage no se produzca ese efecto tan desagradable que es que el fondo de la imagen sea de un color diferente al fondo de la aplicación. Alguien tiene alguna pista de como se podría hacer esto. Gracias por adelantado. Saludos
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender. |
#2
|
||||
|
||||
Cita:
// Saludos |
#3
|
|||
|
|||
Sí ya había visto el procedimiento pero no me sirve, al menos según me ha parecido.
A la hora de guardar la imagen en la base de datos hago algo así: Código:
var Icono: TIcon; Stream: TMemoryStream; begin if Taula.State=dsBrowse then Taula.Edit; //Creación del objeto Icono Icono := TIcon.Create(); //Recuperación del objeto Icono Icono.LoadFromFile(opdImagen.Filename); //Creación del Stream Stream:=TMemoryStream.Create(); //Salvamos el Icono al Stream Icono.SaveToStream(Stream); //Cargamos la imagen seleccionada del Stream TaulaIMAGEN.LoadFromStream(Stream); ... end; Alguna idea? Saludos
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender. |
#4
|
||||
|
||||
Pero ¿qué es TAulaIMAGEN? ¿Un TDBImage? Pero el TDBImage no tiene este método ¿o sí? Y si es un TDBImage ¿no tendría que ser
TAulaIMAGEN.Picture.Icon.LoadFromStream? Y por cierto, ¿qué base estás usando? Por ejemplo en Paradox, a pesar de que el TDBImage puede cargar un icono, el campo Graphic no así que de poco sirve el TDBImage. // Saludos |
#5
|
|||
|
|||
TaulaImagen es un campo llamado "IMAGEN" del tipo TBlobField que pertenece a la tabla "Taula".
El método que comentas para los dbimages es correcto, funciona. Pero lo malo que tiene es que cuando haces un POST de la tabla que contiene el campo al que está enlazado el DBImage no se guarda la imagen del Icono que has recuperado sobre el DBImage. Como base de datos, perdona no me di cuenta que no lo había comentado, utilizo Interbase 6.0. Saludos
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender. |
#6
|
||||
|
||||
Desconozco si puede usarse directamente un TDBImage. Haciendo unas pruebas en FireBird he podido guardar y leer iconos pero mostrándolos en un TImage.
Para guardar un icono:
Para cargar el icono uso el evento AfterScroll de Taula:
// Saludos |
#7
|
|||
|
|||
Imagenes
Yo uso delphi 5.0 con Interbase 6.0
![]() Puse dos TDBLookUpComboBox uno para seleccionar a un cliente o persona a la que se le guardaron las imagenes El otro es para seleccionar las imagen que queremos ver Para desplegarla use un TImage Ademas use los componentes GraphicEx, QCadDraw que la verdad no recuerdo de donde los baje, pero de GraphicEx encontre la liga en estos foros Espero que les sirva, perdon por no comentarlo, si quieren el fuente pos ahi me avisan ![]()
|
#8
|
|||
|
|||
Solución intermedia encontrada
Hola a todos,
Bueno, el problema que tenía yo es que quería el fondo de los Bitmaps transparentes, para un menú, y por eso quería guardar los ICOs. Finalmente y como todo lo dicho hasta ahora es más que válido pero quizás complicarse, en mi caso para el aplicativo que desarrollo, demasiado he obtado por una solución intermedia y rápida. Código:
DBImage1.Picture.Bitmap.Transparent:=True; DBImage1.Picture.Bitmap.TransparentMode:=tmAuto; DBImage1.Picture.Bitmap.TransparentColor:=Self.DBImage1.Picture.BitMap.canvas.pixels[1,1] Gracias a todos
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender. |
#9
|
|||
|
|||
pq no revisas este hilo? http://www.clubdelphi.com/foros/show...highlight=blob
|
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|