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 28-02-2014
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 20
NEG1414 Va por buen camino
Muchas gracias por contestarme scafandra... He entendido perfectamente tu explicacion y me resigno...
Responder Con Cita
  #2  
Antiguo 28-02-2014
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 20
NEG1414 Va por buen camino
Soy un poco cabezon y aun me surge una duda el procedimiento paint(); creo que redibuja siempre en segundo plano( la zona rayada debajo de la zona amarilla) si esto es asi y el proceso es:

Primero zona rayada (Paint() segundo plano)
Activo Repintar : zona amarilla (Primer plano)
Guardo area Panel (¿¿¿amarilla??)
Visualizo Panel (Paint() zona Rayada segundo plano)
Oculto Panel(Paint() zona rayada segundo plano)
Repinto Arepanel

Al repintar el area del panel en teoria amarilla en primer plano por que repinta rayado (o puede se incluso transparente)
Responder Con Cita
  #3  
Antiguo 28-02-2014
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
El problema es que tú no puedes controlar cuando el sistema va a hacer efectivo el Paint puesto que funciona con un mensaje en la cola y se ejecutará cuando le toque, incluso otra APP que se te ponga encima va a provocar el repintado y tu zona amarilla desaparecerá. Esto hace que ocurran efectos aparentemente caprichosos.

Sólo puede funcionar si es la respuesta a WM_PAINT la que te repinta la zona amarilla. Cuando el evento Paint repinta un canvas que tiene guardado, entonces lo hará correctamente, eso es lo que hace un TImage (Tiene un TBitmap que repintará en el canvas). Puedes realizar esto, heredar tu componente de un TImage o que tu componente lo contenga. Las últimas opciones son más sencillas.

Saludos.
Responder Con Cita
  #4  
Antiguo 01-03-2014
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 20
NEG1414 Va por buen camino
Muchas gracias escafandra ahora lo entiendo.
Responder Con Cita
  #5  
Antiguo 05-03-2014
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 20
NEG1414 Va por buen camino
Buenas...

Siento ser un pesado.. pero mis limites no me permiten prescindir de vuestra ayuda...
He decidido seguir los consejos de escafandra y modificar el componente (Tprueba) para que herede de un TImage... pero me surge un problema, al inicializar el Tpanel me salta el error :

Cannot convert TPrueba* const´to TWinControl*

En la linea
Código:
 
Panel->Parent  = this;
Supongo que al "convertir" el componente (TPrueba) en un componente "TImage" no puede heredar nada de el un componente TWincontrol como TPanel....

Tiene alguna Solucion o solo me queda incluir un Timage en el componente TPrueba original que hereda de TCustomControl (me complicaria un poco mi aplicacion)...

Espero haberme explicado bien... Gracias
Responder Con Cita
  #6  
Antiguo 06-03-2014
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
En el caso de que necesites usar un componente cuyo Parent sea tu control, éste debe ser un TWinControl. Para conseguirlo tienes derivar de TWinControl y sobre éste colocas un TImage alineado a alClient. Al parent de tu TPanel la asignas tu control.


Saludos.
Responder Con Cita
  #7  
Antiguo 06-03-2014
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 20
NEG1414 Va por buen camino
Buenas...

Definitivamente desisto, lo dejo... he hecho heredar TPrueba1 de un TWincontrol... he colocado un TImage que sera donde se muestre el dibujo que hago mediante Canvas...

Cita:
__fastcall TPrueba::TPrueba(TComponent* Owner)
: TWinControll(Owner)
{
Panel = new TPanel(this);
Panel->Parent = this;

Imagen = new TImage(this)
Imagen->Parent = this...
.......................
....................
Todo correcto...pero a la hora de mostrar el Tpanel...este aparece en segundo Plano Debajo del Timage (no se ve)

gracias por vuestro tiempo.
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
Dibujar Elipse y Parábola pixel a pixel Deiv Gráficos 9 28-11-2016 10:19:41
Como obtener el color de un pixel ilichhernandez Gráficos 11 02-11-2006 15:40:00
Guardar y recuperar noipa Varios 3 07-02-2006 14:46:21
pasar imagen pixel a pixel gulder Gráficos 7 26-06-2005 02:10:45
¿ Cual es la mejor forma de implementar una Pizarra con Sockets? pixel a pixel ? sase Internet 1 22-10-2003 16:23:50


La franja horaria es GMT +2. Ahora son las 07:38:43.


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