FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problemas de pintado
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Sun Jul 29, 2007 08:45 PM
Antonio,

he estado haciendo unas pruebas con la clase outlook, usando el ejemplo de samples (testoutl.prg) y cuando esta ejecutándose, le superpongo alguna ventana y hago varios movimientos arrastrando la ventana, y empieza a pintarse mal la barra, y a veces tambien el interior de toutlook.


http://img295.imageshack.us/img295/1549 ... adofg3.jpg

Que puede ser ese problema? Estoy aprendiendo algo respecto de crear controles y este problema no se a que se le puede atribuir.


Shot at 2007-07-29
Primero me paso al cambiar el tipo de botones de toutlook y pensé que seria algo que hacia mal, pero volví al ejemplo sin modificar y tiene el mismo problema. Algun consejo?

Un saludo,

Carlos,
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas de pintado
Posted: Sun Jul 29, 2007 10:40 PM

Carlos,

Prueba a cambiar estos dos métodos en la clase TWindow de esta manera:

METHOD DispBegin() VIRTUAL
METHOD DispEnd() VIRTUAL

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Tue Jul 31, 2007 10:46 AM

Lo hice, de hecho es una de las primeras cosas que probé, lo acabo de repetir para ver si se corrige, pero no, sigo teniendo problemas.
Ojo que es un problema solo con Fivewin, ya que no he tenido el mismo inconveniente co notros programas, como para descartar cuastiones de drivers o gráfica.
Ya puestos en el tema, aprovecho para preguntar: ¿Que se supone que debe hacer una window/control al recibir el método ERASEBKGND, o mejor dicho, que parte del pintado pongo en uno u otro lugar? Es que estoy haciendo unos botones con el fondo degradado (el background, se supone), un texto y eventualmente un icono ( los datos del boton propiamente dicho ). Hay algún criterio para separar el pintado entre los dos mensajes?
Un saludo,

Carlos.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Fri Aug 24, 2007 07:40 PM

Perdona Antonio que insista, pero no se ha resuelto con quitar el buffer de pintado. Es de destacar que ocurre cuando las ventanas superpuestas son de otra aplicación. Siendo de la misma no hay problemas. Alguna pista?

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas de pintado
Posted: Fri Aug 24, 2007 07:53 PM

Carlos,

Que versión de FWH estás usando ?

>
¿Que se supone que debe hacer una window/control al recibir el método ERASEBKGND, o mejor dicho, que parte del pintado pongo en uno u otro lugar? Es que estoy haciendo unos botones con el fondo degradado (el background, se supone), un texto y eventualmente un icono ( los datos del boton propiamente dicho ). Hay algún criterio para separar el pintado entre los dos mensajes?
>

Lo ideal es no hacer nada en EraseBkGnd() (solo devolver 0) y hacer todo el proceso de pintado desde el método Paint(). Asi se evitan los "parpadeos"

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Sat Aug 25, 2007 08:09 AM
Antonio,

Uso FWH 707.

Respecto del WM_ERASEBKGND, efectivamente es como tu dices. Le estaba buscando la vuelta por ahí, a ver si podía llegar a ser eso, pero no, he cambiado a INLINE 0, INLINE 1 y INLINE NIL, pero no hay caso, sigue fallando el pintado cuando la ventana no es la ventana activa.

¿Se te ocurre algo por donde buscarle? El error es evidente en el msgitem de msgbar, por hablar de un control sencillo. El sample de toutlook te puede servir como banco de pruebas.

Perdona que insista, pero tengo casi terminado unos controles como los de office pero tienen ese problema y preferiría resolver esa cuestión antes de usarlos.



La imagen es una versión del demo de FSDI de José Luis Sanchez usando un Outlook2. Tengo con ella el problema de pintado, por eso la insistencia.

Un saludo,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas de pintado
Posted: Sat Aug 25, 2007 08:15 AM

Carlos,

Puedes enviarme algún ejemplo, con fuentes, para que lo probemos aqui ? gracias

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Sat Aug 25, 2007 09:42 AM
Usa el ejemplo de toutlook de Fivewin del directorio samples, creo que eso demuestra el comportamiento del que hablamos en el msgbar.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas de pintado
Posted: Sat Aug 25, 2007 10:06 AM
Carlos,

Estamos probando samples\TestOutL.prg y pasando la calculadora de Windows por encima y se ve bien:
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Sat Aug 25, 2007 10:27 AM

pásala por la barra de mensajes, no por el outlook. Acabo de probarlo y puedo reproducir el error. Alguna direccion donde enviarte el exe?

Acabo de notar una diferencia: no tienes activado los temas de XP? En mi ejemplo los botones se dibujan con los temas.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 189
Joined: Wed Apr 05, 2006 09:48 PM
Problemas de pintado
Posted: Sat Aug 25, 2007 11:13 AM

Hola Carlos

Muy bonita la barra izquierda , podrias poner el codigo de comoo la has creado ?

un saludo

Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Sun Aug 26, 2007 08:33 AM
Frafive,

¿Como te llamas?

Lo que ves es un OutLook2003. Se usa igual que outlook de Fivewin, con algunos pequeños detalles,
 #include "outlook.ch"
// DEFINE FONT oFont NAME "Arial" SIZE 0, -12
oFont = TFont():New( GetDefaultFontName(), 0, GetDefaultFontHeight(),, )

 @ 0, 0 OUTLOOK2 oOut ;
    SIZE oApp():oSplit:nLeft, oPDlg:nHeight()-oApp():oWndMain:oMsgBar:nHeight ;
    PIXEL ;
    FONT oFont ;
    OF oPDlg 

 DEFINE GROUP OF OUTLOOK oOut PROMPT "Clientes" ;
      RESOURCE "EBLOCK2"

    DEFINE LABEL OF OUTLOOK oOut ;
      PROMPT "Primera etiqueta"

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "ECUENTAS" ;
      PROMPT "Outgoing messages" ;
      ACTION msginfo("Your code ..." )

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "ESALIR" ;
      PROMPT "Exit from the application" ;
      ACTION oApp():oDlg:End()

    DEFINE LABEL OF OUTLOOK oOut ;
      PROMPT "Segunda etiqueta"

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "CONFIG7" ;
      PROMPT "Third control" ;
		ACTION ClrMain()

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "EUNIDAD" ;
      PROMPT "Fourth control"

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "EUSUARIO" ;
      PROMPT "This is the the fifth control"

  DEFINE GROUP OF OUTLOOK oOut PROMPT "Empresa" ;
      RESOURCE "BTN10A"

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "CONFIG3" ;
      PROMPT "First button on second group bar"

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "CONFIG7" ; 
      PROMPT "Second button on second group bar"

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "B16USER" ;
      PROMPT "Third button"

  DEFINE GROUP OF OUTLOOK oOut PROMPT "Agentes" ;
      RESOURCE "BTN13A"

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "EBLOCK3" ;
      PROMPT "First button"

    DEFINE BITMAP OF OUTLOOK oOut ;
      RESOURCE "EBLOCK3" ;
      PROMPT "Second button"


El código de los controles todavía no está completo, falta el splitter que determina cuantos botones del pie están activos y visibles, y el boton/menú de los que están inactivos/invisibles. Además, como ves, estoy revisando el código porque tengo problemas de pintado similares a los de MsgItem/MsgBar.

Si quieres algo similar te recomiendo los de canal five.

Un saludo,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas de pintado
Posted: Sun Aug 26, 2007 10:24 AM

Carlos,

En nuestras pruebas aqui, esta funcionando bien, con y sin temas. Necesitamos que nos envies un ejemplo que podamos construir y que reproduzca el error para poder ayudarte, gracias

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Mon Aug 27, 2007 11:52 AM
Antonio,

Hoy ya volví al trabajo, se me terminaron las vacaciones :-), pero me da la oportunidad de probar el asunto en varios ordenadores.
He usado el testmsg3.prg del samples para generar esta imagen. Eso ya es de otro ordenador, y el sample es bastante simple.

El comportamiento es bastante particular. Uso para superponer la misma ventana de DOS desde la que he regenerado el EXE.
Al principio funciona bien, pero luego de activar alternativamente una y otra comienza el fallo, que te he marcado con un círculo rojo.
El fallo no es permanente, hay que insistirle. ¿Sabes de algún software que filme la actividad de la pantalla? Sería la mejor manera de mostrarte el problema.

Un saludo,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas de pintado
Posted: Mon Aug 27, 2007 11:57 AM

el punto es encontrar el porqué, ya que me ocurre lo mismo cuando dibujo controles. Contra más elaborado el control el defecto se nota más, y solo aparece en el repintado de ventanas no activas. Algo cambiará en los mensajes o en la prioridad del proceso repintado que no permite que los controles ownerdraw se terminen de repintar o algo así.

Un saludo,

Carlos.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"