Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Componente para Thumbnails

Como dice el titulo, necesito un componente free para armar un thumbnails. Tengo instalada toda la VCL de JEDI, y trae el componente JvThumbView, que sirve perfectamente, pero, me encuentro con un problema, yo necesito que cada thumbnail lo pueda seleccionar mediante un checkbox, pero estuve mirandolo y no veo que tenga esa opcion. Si alguien sabe como puedo hacer para dibujar un checkbox en cada thumbnail con este componente le estare eternamente agradecido, y sino si me pueden pasar el dato de uno que si lo admita, tambien. Tengo una aplicacion parada por este motivo, y realmente necesito solucionarlo cuanto antes, aunque sea una mano para modificar el componente, pero realmente necesito hacerlo. Muchas gracias de todas maneras.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #2  
Antiguo 14-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Lo más fácil es un TFrame, (como un panel) donde metes el jvthumbnail y un checkbox debajo, a partir de ahora, usas ese TFrame cuando necesites un Thumbnail.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 14-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Si, lo estuve analizando, creo que por algun lado mire un programita que creo era tuyo, sobre crear un calendario de forma dinamica utilizando el metodo que mencionas, pero me gustaria ver la posibilidad de poder dibujar un checkbox en el JvThumbNail, osea, partamos de una base, como hago para dibujar un checkbox en un form, es decir, crearlo y dibujarlo por codigo. Creo que es lo primero que necesito para poder estudiar como meterlo dentro del componente.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #4  
Antiguo 14-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por Lepe
Lo más fácil es un TFrame, (como un panel) donde metes el jvthumbnail y un checkbox debajo, a partir de ahora, usas ese TFrame cuando necesites un Thumbnail.

Saludos
Y llegado el caso de que termine implementandolo, ya que estuve ensayando para ver como queda, pintando los Thumbs dentro de un ScrollBox, y te digo, que el resultado queda de lujo, pero... no se me ocurre, como puedo hacer un barrido de cuales checkboxes estan checked o cuales no lo estan. Seguramente llenaria un TStringList, que me resulta muy comodo. Pero... no se como hacer lo otro. Alguna idea? Que tendria que hacer? algo como....

Código Delphi [-]
 
var thumb:TFrameThumb;
begin
 for i:=componentcount downto 1 do  //sin tomar el cero, porque no tengo component.name como cero
  begin
    if component[i] is TFrameThumb
      then begin
         if Thumb.ThumbNails.CheckBox[i].Checked=True
           then CargoEnMiTString;
      end;
  end; 
end;

(a groso modo, como para dar una idea)

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #5  
Antiguo 14-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
No me queda claro.

"Dibujar" es poner una imagen encima de otra, tan simple como hacer un cuadrado en paint, con dimensiones 16x16 pixeles y pintarlo en el canvas de tu thumbnail. Cuando el usuario entre con el ratón en esa zona concreta (lo identificas por las coordenadas x e y del evento mousemove del thumbnail) y hace clic, entonces, coges otra imagen preparada (con la marca de verificación) y la dibujas sobre la anterior.

Veo algunos detalles:
- El checkbox tapa parte de la imagen.
- El usuario no ve el checkbox porque la imagen de fondo es del mismo color que el checkbox
- Tienes que programarlo todo, incluso saber si el usuario marcó o desmarcó la casilla.

"Crear en ejecución" es totalmente distinto, el resultado es idéntico a ponerlo en tiempo de diseño, tienes el control que se llama checkbox1 y todos sus eventos y propiedades.

Si tienes en una carpeta imágenes y usas la opción de windows de imprimir imágenes, verás que tienen un checkbox también, pero fuera de la imagen, así queda a la vista del usuario. Fácil de programar y elegante (al menos para mi gusto ).

Si lo que quieres es "dibujar", yo no he trabajado mucho con ello, pero seguro que otros te dan algún apunte.

Si tienes aún mi programilla de calendario, elimina el memo, pon tu jvThumbail y el checbox debajo; creo no tendrás ningún error...ni de compilación siquiera .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 14-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por Lepe
Si tienes en una carpeta imágenes y usas la opción de windows de imprimir imágenes, verás que tienen un checkbox también, pero fuera de la imagen, así queda a la vista del usuario. Fácil de programar y elegante (al menos para mi gusto ).
Vos sabes que yo diseñe el frame para que el checkbox no me tape la imagen en lo mas minimo, esta la cargo con la propiedad FileName, que viene en el ThumbNails, de hecho ha quedado muy bonito. Pero lo unico que me resta es saber cuando esta checada o no. Ahora bien, como es eso de la opcion de windows, realmente no lo entendi. Yo las imagenes las tomo de un directorio.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #7  
Antiguo 14-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Ya veo que hemos contestado al mismo tiempo .

el código te quedaría así:
Código Delphi [-]
unit celda;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TFrCelda = class(TFrame)
    pnl1: TPanel;
    pnl2: TPanel;
    CheckBox1: TCheckBox;
   //aqui tendrás más cosas.

  private
    procedure SetSelected(const Value: Boolean);
    function GetSelected: Boolean;
    { Private declarations }
  public
    { Public declarations }
    property Selected:Boolean read GetSelected write SetSelected;
  end;

implementation

{$R *.dfm}

{ TFrCelda }

function TFrCelda.GetSelected: Boolean;
begin
  Result := checkbox1.Checked;
end;


procedure TFrCelda.SetSelected(const Value: Boolean);
begin
  Checkbox1.Checked := Value;
end;
Ahora solo tienes que preguntar por Selected, en lugar de por el Checkbox.Checked, así que tu código sería más o menos:
Código Delphi [-]
// var thumb:TFrameThumb; no hace falta esta linea 
begin
 for i:=componentcount downto 1 do  //sin tomar el cero, porque no tengo component.name como cero
  begin
    if component[i] is TFrameThumb
      then begin
         if TFrameThumb(component[i]).Selected = true
           then CargoEnMiTString;
      end;
  end; 
end;

Si por código necesitas activar el checkbox, puedes usar esto:
Código Delphi [-]
// var thumb:TFrameThumb; no hace falta esta linea 
begin
 for i:=componentcount downto 1 do  //sin tomar el cero, porque no tengo component.name como cero
  begin
    if component[i] is TFrameThumb
      then begin
        TFrameThumb(component[i]).Selected := true
      end;
  end; 
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 14-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por Lepe
Ya veo que hemos contestado al mismo tiempo .
JajJAjajAJ amigo Lepe, me estas mandando lo mismo que estaba haciendo, me die cuenta cuando revisando tu ejemplo, en el FrCelda estaba la funcion para setear la fecha. Toda la telepatia!!!

Ahora eso que me decis de la impresion de windows, es exactamente lo que quiero hacer, pero veo que la unica forma es como lo estamos haciendo... o hay otra pero ya es con el uso de un componente de pago???

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #9  
Antiguo 14-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Tengo un problema, yo creo los frames (TThumb) en run-time, y los libero cuando ya no los necesito, como para poder volver a cargarlos cuando yo quiera. Es que, hice dos formas de vista, una por filas en un ListView y el otro este Thumbnails. El procedimiento que uso es el siguiente:

Código Delphi [-]
procedure TMain.PageControl2Change(Sender: TObject);
var g,TheTop,Cant,h,j:integer;
    Thumb:TThumb;
begin
  if PageControl2.TabIndex=0
    then begin
     for j := Main.componentcount - 1 downto 0 do
        begin
       //solo la puse para ver si la clase TThumb aparecia, pero no aparece nunca    
       //   showmessage(Main.components[j].ClassName);      
         if Main.components[j] is TThumb
          then begin
          Main.components[j].Free;
          end;
        end;
    end;
  if PageControl2.TabIndex=1
    then begin
      TheTop:=0;
      h:=0; //horizontal
      Cant:=Lista.Count;
   try
      for g:=0 to Cant-1 do
        begin
          Thumb:=TThumb.Create(Main.JvThumbView1);
          Thumb.Name:='Thumb'+IntToStr(g);
          Thumb.Panel1.Caption:='# '+IntToStr(g+1);
          Thumb.dxCheckbox1.Checked:=False;
          Thumb.JvThumbnail1.FileName:=Lista.Strings[g];
          Thumb.JvThumbnail1.Title:=Resolucion(Lista.Strings[g]);
          Thumb.Left:=((h+1)-1) * Thumb.Width;
          if Thumb.Left=720
            then begin
                  TheTop:=TheTop+Thumb.Height;
                  Thumb.Left:=0;
                  h:=0;
                 end;
          Thumb.Top:=TheTop;
          Thumb.Parent:=Main.JvThumbView1;
          h:=h+1;
        end;
    finally
      Thumb.Free;
      Thumb:=nil;
      end;
    end;
end;

Mi unico problema, es que no se como liberar los Thumbs creados, ya que me salta "component Thumb0 already exists".
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #10  
Antiguo 14-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Usa un TObjectList, es lo más cómodo.
Declara en la ventana el TObjectList;
Código Delphi [-]
uses contnrs;

Form1 = class(TForm);
....

private
   Lista: TObjectList;


Cuando necesites destruir todos los Thumb:
Código Delphi [-]
  FreeAndNil(Lista); // no importa que lo llames varias veces
// no obtendrás Violaciones de acceso a memoria ni nada.

Cuando necesites crear un Thumb:
Código Delphi [-]
if not Assigned(Lista) then
  Lista := TObjectList.Create(True);
Lista.Add(Thumb) ; // este es el Thumbnail que acabas de crear
// lo añadimos a la lista.

Mira la ayuda de TObjectlist o busca por el foro.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 14-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Lo que pasa es que la Lista, ya viene cargada de otro lado, y no me da ningun problema, en la lista solo estan cargado PATHs de imagenes de un directorio.
El problema lo tengo a la hora de liberar el componente TThumb creado, cuando ya no lo necesito, ya que si, vuelvo a crearlo sin liberarlo me salta error de que ya esta creado.

Es esta parte:

Código Delphi [-]
 for j := Main.componentcount - 1 downto 0 do
        begin
        //lo puse para ver si aparecia TThumb, pero no aparece nunca
        // showmessage(Main.components[j].ClassName);
         if Main.components[j] is TThumb
          then begin
          Main.components[j].Free;
          end;

No se como liberarlo.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #12  
Antiguo 14-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Ya lo solucione, no me daba cuenta que contaba los componentes en otro lado, y debia hacerlo en el lugar donde los estaba creando:

Código Delphi [-]
Main.JvThumbView1.Componetscount

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #13  
Antiguo 15-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
No has entendido por donde yo iba....

Hacer ese bucle puede ser costoso, de hecho, hará tantos ciclos como componentes tengas. Como usas "Main.Component".... significa que recorrerá todos los componentes de la ventana, todos los tabsheets, todos los botones, etc e irá preguntando si es un thumb o no.

Yo lo que hago es guardar solo los thumbs (los componentes que quiero) en una lista propia, cuando hago un "FreeAndNil(Lista)", realmente estoy liberando de memoria todos los thumbs de un solo golpe... y no tengo que recorrer todos los componentes del Form.

Es más eficiente e incluso un poco más claro el código. Eso si, debes mirar la ayuda de las cosas que uso para entenderlo .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #14  
Antiguo 09-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
Problema con JvthumbView

no tiene nada que ver pero tenias llena la bandeja de entrada de mensajes privados
-----
Saludos buen día, disculpe que lo meste, este me he fijado en el foro y parece que tiene experiencia en el manejo de este componente de JEDI DSL, has de cuenta estoy haciendo una aplicación pero el componente nosé si tenga una especia de bug, es decir cuando cargo dos imágenes de un directorio 'c:\x' no hay problema las imágenes son 2480 x 3507 formato jpg tamaño aproximado de 150 kb a 300 kb pero cuando pones muchas me aparece el error EOutOfResources 'Espacio de almacenamiento insuficiente para procesar este comando', no se si hays o escuchado de esta experiencia, alguna idea para solucionarlo, lo que pasa es que las imágenes que se procesan son de tamaño similar pero intente algo de las excepciones pero no me funcionó tal vez no lo implemente incluso con el except on EOutOfResources y pues no auxilio es de vital importancia para mi, o algún componente similar?
Responder Con Cita
  #15  
Antiguo 09-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por mrnovice Ver Mensaje
no tiene nada que ver pero tenias llena la bandeja de entrada de mensajes privados
-----
Saludos buen día, disculpe que lo meste, este me he fijado en el foro y parece que tiene experiencia en el manejo de este componente de JEDI DSL, has de cuenta estoy haciendo una aplicación pero el componente nosé si tenga una especia de bug, es decir cuando cargo dos imágenes de un directorio 'c:\x' no hay problema las imágenes son 2480 x 3507 formato jpg tamaño aproximado de 150 kb a 300 kb pero cuando pones muchas me aparece el error EOutOfResources 'Espacio de almacenamiento insuficiente para procesar este comando', no se si hays o escuchado de esta experiencia, alguna idea para solucionarlo, lo que pasa es que las imágenes que se procesan son de tamaño similar pero intente algo de las excepciones pero no me funcionó tal vez no lo implemente incluso con el except on EOutOfResources y pues no auxilio es de vital importancia para mi, o algún componente similar?
A mi me pasaba exactamente lo mismo, y evite esa excepción chequeando que la imágen sea un archivo válido y no este corrupto antes de cargarla en un jvThumb. Para hacer esto, busca las Vampire Image Library, que una vez me recomendo dec aqui en el foro, y desde entonces no he dejado de usarlas.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #16  
Antiguo 09-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
JvThumbview

Cita:
Empezado por mamu Ver Mensaje
A mi me pasaba exactamente lo mismo, y evite esa excepción chequeando que la imágen sea un archivo válido y no este corrupto antes de cargarla en un jvThumb. Para hacer esto, busca las Vampire Image Library, que una vez me recomendo dec aqui en el foro, y desde entonces no he dejado de usarlas.

Saludos
Saludos, gracias por la pronta respuesta en serio gracias es bueno saber que no soy el único con este problema, me sentía algo frustrado, El VCL de Vampyre Imaging Library afortunadamente lo tengo voy a buscar esa función luego te digo cómo me fue, saludos, <no se si parte del problema te aparecio 'Floating point division by zero'? supongo que va de la mano con EOutOfResources, saludos buen día. >Ya estoy viendo el post que hiciste acerca el de point divion by zero, lo estoy checando, hay disculpa
Espero hacer funcionar esto jejeje aunque sea a golpes al monitor jajaj a veces pasa XD

Última edición por mrnovice fecha: 09-04-2008 a las 21:55:44.
Responder Con Cita
  #17  
Antiguo 10-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
Talking hola, disculpa

Cita:
Empezado por mamu Ver Mensaje
A mi me pasaba exactamente lo mismo, y evite esa excepción chequeando que la imágen sea un archivo válido y no este corrupto antes de cargarla en un jvThumb. Para hacer esto, busca las Vampire Image Library, que una vez me recomendo dec aqui en el foro, y desde entonces no he dejado de usarlas.

Saludos
ya estuve analizando Vampyre Imagin Library pero , cual fue la funciòn que usaste, fue acaso testImage?, ahhhh! ya quiero resolverlos saludos y gracias nuevamente

Última edición por mrnovice fecha: 14-04-2008 a las 17:06:03. Razón: El TImage32 es para una libreria Graphics32 una sincera disculpa
Responder Con Cita
  #18  
Antiguo 10-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por mrnovice Ver Mensaje
ya estuve analizando Vampyre Imagin Library pero vi que es un Timage32 y un Timage, no habra problemas de compatibilidad, cual fue la funciòn que usaste, fue acaso testImage?, ahhhh! ya quiero resolverlos saludos y gracias nuevamente
Exactamente, la funcion es TestImage, pero ojo, cada vez que compares, tenes que liberar uno a uno (free) la componente imagen que uses, sino, el error se arrastra. En la documentación no encontré nada sobre esto, de hecho, cuando solo comparaba una imagen para ver si era válida, el free daba lo mismo, pero no pasa cuando son muchas. De todas maneras es el componente más rapido que probé.

Busca "Jpg/BMP a máxima velocidad", y fijate en el post que una vez inicie que hay info muy buena, e incluso arme una parodia de cronometrar el tiempo de ejecucion (en tiempo real) para divertir a los amigos foristas. Ahi mismo hablamos sobre las V.I.L.

Un saludo.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #19  
Antiguo 11-04-2008
Avatar de mrnovice
mrnovice mrnovice is offline
Miembro
 
Registrado: oct 2006
Posts: 163
Poder: 18
mrnovice Va por buen camino
Angry Saludos

Cita:
Empezado por mamu Ver Mensaje
Exactamente, la funcion es TestImage, pero ojo, cada vez que compares, tenes que liberar uno a uno (free) la componente imagen que uses, sino, el error se arrastra. En la documentación no encontré nada sobre esto, de hecho, cuando solo comparaba una imagen para ver si era válida, el free daba lo mismo, pero no pasa cuando son muchas. De todas maneras es el componente más rapido que probé.

Busca "Jpg/BMP a máxima velocidad", y fijate en el post que una vez inicie que hay info muy buena, e incluso arme una parodia de cronometrar el tiempo de ejecucion (en tiempo real) para divertir a los amigos foristas. Ahi mismo hablamos sobre las V.I.L.

Un saludo.
Te agradezco mucho la atención lo leí muy rapido y probe el código de las resoluciones y si funciona lo que no me funcionó es la idea se puede saber que he estado haciendo mal?
please
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  img:TImageData;
begin
  If OpenPictureDialog1.Execute then
    Begin
      Imaging.InitImage(Img);
      Imaging.LoadImageFromFile(OpenPictureDialog1.FileName,img);
      if Imaging.TestImage(Img) then
        begin
          //es verdero
          jvthumbview1.AddFromFile(OpenPictureDialog1.FileName);
          Imaging.FreeImage(Img);
        end;
    End;
end;
estuve agregando de manera manual las imágenes pero a la 5 me truena con esa excepción que ya me trae de cabeza omg!!!! jeje no queria poner la carita pero esa excepción ya!!!!, voy a seguir intentando pero estoy seguro de que me falta algo.... gracias
Saludos.
Responder Con Cita
  #20  
Antiguo 11-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
El problema es que no estas controlando la excepción, para evitar esto, primero tenés que analizar si la imagen es válida y de ser así cargarla, ya que si lo haces al revéz, la excepción genera un error por estar cargando de antemano un imagen corrupta. Probé el código y si libero cuando una imagen esta corrupta (renombre un exe a jpg y probé!!! ) ya no tengo la excepción. La idea, es que, cuando una imagen sea corrupta, cargues otra que diga error en JvThumb, queda muy bien y das un aviso de que archivo está mal.


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var  img:TImageData;
begin  
   If OpenPictureDialog1.Execute 
  then Begin      
   Imaging.InitImage(Img);      
   Imaging.LoadImageFromFile(OpenPictureDialog1.FileName,img);      
     if Imaging.TestImage(Img)   
        then begin //Si es válida la cargo          
         jvthumbview1.AddFromFile(OpenPictureDialog1.FileName);  
     end          
     else begin    
        Imaging.FreeImage(Img); //esta corrupto, libero    
        jvthumbview1.AddFromFile('C:\imageError.bmp');  
     end; 
  End;
end
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;

Última edición por MaMu fecha: 11-04-2008 a las 20:42:00.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Diseño e implementación de Thumbnails MaMu Gráficos 4 18-04-2007 20:25:37
Componente para gráficos Besto Gráficos 1 11-10-2006 20:53:23
Componente para Filtrar ADO, Para D5 olbeup OOP 5 14-09-2005 17:40:01
componente para norma19 para delphi7 raulmm26 Varios 3 07-02-2005 12:31:11
Como puedo ver imagenes en Thumbnails? marcoev Gráficos 1 29-05-2003 21:06:36


La franja horaria es GMT +2. Ahora son las 18:21:03.


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