Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-12-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por Angel.Matilla Ver Mensaje
Tengo un formulario hecho en BCB 6 con un TImage que cargo a partir de una tabla de Firebird. Hasta ahí, ningún problema. Si la ficha tiene foto, la muestra. El problema viene cuando avanzo en la tabla; en este caso, si la nueva ficha no tiene foto que mostrar, el formulario no me limpia el TImage. Tengo puesto este código para cargar la imagen en el formulario:
Código:
TImage *Imagen = static_cast<TImage>(Source);
Imagen->Picture->Assign(NULL);
Imagen->Picture->Assign(qryTemp->FieldByName("Foto"));
y el query se carga a partir de una vista en FB y esto se ejecuta bien. ¿Qué puedo estar haciendo mal?
Ese código debería limpiar el TImage, si es un Bitmap también debe limpiar así:
Código:
Imagen->Picture->Bitmap->Assign(NULL);
Dependiendo de si tienes un bucle que no permita leer los mensajes de Windows, quizás debas añadir:
Código:
Imagen->Update();

Saludos.
Responder Con Cita
  #2  
Antiguo 19-12-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
Yo también lo había hecho siempre así y siempre me había funcionado.
Cita:
Empezado por escafandra Ver Mensaje
Código:
Imagen->Picture->Bitmap->Assign(NULL);
¡Da lo mismo lo que ponga! Con Bitmap->, con ->Update()... No lo limpia.
Responder Con Cita
  #3  
Antiguo 19-12-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por Angel.Matilla Ver Mensaje
Yo también lo había hecho siempre así y siempre me había funcionado.

¡Da lo mismo lo que ponga! Con Bitmap->, con ->Update()... No lo limpia.
¿Si minimizas la ventana y la restauras, o si la mueves fuera del área del monitor, se borra?

Pienso que es un problema de "repintado".

Prueba este código que obliga a un repintado total:
Código PHP:
void ReDrawWindow(HWND hWnd)
{
  
TRect cr;
  ::
GetClientRect(hWnd, &cr);
  
InvalidateRect(hWnd, &crtrue);
  
SendMessage(hWndWM_NCPAINT00);
  
RedrawWindow(hWnd, &cr0RDW_FRAME|RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW|RDW_ALLCHILDREN);


Saludos.
Responder Con Cita
  #4  
Antiguo 20-12-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

El código del primer mensaje debería borrar la imágen sin problemas, sería interesante verlo dentro del contexto ¿ Existe algún condicional previo al código ? por ejemplo:
Código PHP:
void __fastcall TForm1::qryTempAfterScroll(TDataSet *DataSet)
{
  if ( !
qryTemp->FieldByName("FOTO")->IsNull ) {
    
Image1->Picture NULL;
    
Image1->Picture->AssignqryTemp->FieldByName("FOTO") );
  }

provocaría precisamente ese comportamiento.

Pero por otro lado, el moldeo:
Código:
TImage *Imagen = static_cast<TImage>(Source);
me hace pensar que el código está en un evento del propio TImage ¿ en cuál ?

Tal vez con mas datos nos sea posible ver el motivo de ese extraño proceder.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 20-12-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
Hola ecfisa. Gracias.
Cita:
Empezado por ecfisa Ver Mensaje
El código del primer mensaje debería borrar la imágen sin problemas, sería interesante verlo dentro del contexto ¿ Existe algún condicional previo al código ? por ejemplo:
No, tal como está escrito el código no hay ningún condicional del estilo del que sugieres. Pero tienes razón en que sería así como se comportaría si existiera.
Cita:
Empezado por ecfisa Ver Mensaje
Pero por otro lado, el moldeo:
Código:
TImage *Imagen = static_cast<TImage>(Source);
me hace pensar que el código está en un evento del propio TImage ¿ en cuál ?
No, no está declarado en un evento del propio TImage
Cita:
Empezado por ecfisa Ver Mensaje
Tal vez con mas datos nos sea posible ver el motivo de ese extraño proceder.
En el adjunto hay dos ficheros de texto (Ficha y Función). En el primero está la llamada al segundo.
Archivos Adjuntos
Tipo de Archivo: rar Funciones.rar (2,2 KB, 5 visitas)
Responder Con Cita
  #6  
Antiguo 20-12-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
¿Has comprobado con el debugger que el código pasa por donde quieres?


Saludos.
Responder Con Cita
  #7  
Antiguo 20-12-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
¿Has comprobado con el debugger que el código pasa por donde quieres?
Sí lo hace.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
limpiar un tImage Luli Gráficos 5 19-11-2016 04:53:06
Girar un Timage con respecto a otro Timage Tuvan Gráficos 1 05-11-2016 21:30:50
¿Como limpiar un Componente Timage? soma25 C++ Builder 5 14-03-2012 08:51:39
¿Como limpiar un Timage? Nelly Varios 2 26-10-2007 19:03:02
como combinar 2 Timage en un tercer Timage JefeNet Gráficos 10 02-09-2004 16:51:35


La franja horaria es GMT +2. Ahora son las 01:50:21.


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