Error de pintado Treeview

Error de pintado Treeview

Postby cuatecatl82 » Sun Aug 17, 2014 10:14 pm

Saludos al foro buenas tardes:

Estoy trabajando un Tree desde un arreglo, lo tengo armado y lo puedo mostrar con bitmaps de 24*24, necesito que cada Item haga una funcion que ya previamente lo he definido desde oitem:Add(), pero no ejecuta nada, además de que presenta errores de pintado al subir y bajar el scroll y al cerrar(-) o abrir(+) los Items :

El fallo en el dibujado lo hace tambien con bitmaps de 16*16 con y sin establecer fuente..

Image

Quisiera saber tambien si es posible usar 2 tipos de fuente, uno para el Item Padre y el otro para los SubItem y como aplicarlo ya que actualmente solo aplica fuente para todo el texto.

Code: Select all  Expand view
# Include "FiveWin.ch"
     
FUNCTION Main()
  ExploDsk()
RETURN Nil


   
FUNCTION ExploDsk()
   
LOCAL oLogo,oCur,oSel,oIco,oDlg,oBtn1,oBtn2,oTree,oFont1,oFont2,oImageList

    DEFINE FONT        oFont1        NAME     "TAHOMA"    BOLD SIZE 00, 18
    DEFINE FONT        oFont2        NAME     "TAHOMA"         SIZE 00, 16
    DEFINE CURSOR      oCur          RESOURCE "FLECHA"
    DEFINE CURSOR      oSel          RESOURCE "MANO"
    DEFINE ICON        oIco          RESOURCE "00"
    DEFINE DIALOG      oDlg          RESOURCE "LISTADO"  TITLE "Listado de Discos" ICON oIco TRANSPARENT
 
   oImageList := TImageList():New(24,24)            
 
   oImageList:Add(TBitmap():DEFINE("VIR1",,oDlg), TBitmap():DEFINE("VIR2",,oDlg))
   oImageList:Add(TBitmap():DEFINE("FLO1",,oDlg), TBitmap():DEFINE("FLO2",,oDlg))
   oImageList:Add(TBitmap():DEFINE("PAR1",,oDlg), TBitmap():DEFINE("PAR2",,oDlg))
   oImageList:Add(TBitmap():DEFINE("HDD1",,oDlg), TBitmap():DEFINE("HDD2",,oDlg))
   oImageList:Add(TBitmap():DEFINE("DVD1",,oDlg), TBitmap():DEFINE("DVD2",,oDlg))
   oImageList:Add(TBitmap():DEFINE("RAM1",,oDlg), TBitmap():DEFINE("RAM2",,oDlg))  
   oImageList:Add(TBitmap():DEFINE("NET1",,oDlg), TBitmap():DEFINE("NET2",,oDlg))
   oImageList:Add(TBitmap():DEFINE("USB1",,oDlg), TBitmap():DEFINE("USB2",,oDlg))
   
   
   
                                   
   oTree:= TTreeView():REDEFINE(100, oDlg, 0, , .F. ,"" )
   oTree:oFont:= oFont2
   oTree:bChanged := {|oTree,oItem| oItem:= oTree:GetSelected(), ;
      IF( oItem # nil .and. ValType( oItem:cargo ) == "B", Eval( oItem:cargo ), nil ) }

   oDlg:lHelpIcon:= .F.
   
   ACTIVATE DIALOG     oDlg          CENTERED   ON INIT(Self, Carga(oTree,oImageList))

RETURN Nil


STATIC FUNCTION Carga(oTree,oImageList)

LOCAL oItem:= oTree
LOCAL oSubItem, item, oParent, i
LOCAL aData:= {{"Unidades Virtuales",      0, 0},;
                 {"Disco 3 1.44 Mb",       1, 1},;
                   {"Volumen 15151441",    2, 2, "Hola 01"},;
                   {"Volumen 84515158",    2, 2, "Hola 02"},;
                   {"Volumen 77722582",    2, 2, "Hola 03"},;
                   {"Volumen 15151441",    2, 2, "Hola 04"},;
                   {"Volumen 84515158",    2, 2, "Hola 05"},;
                   {"Volumen 77722582",    2, 2, "Hola 06"},;
                 {"Discos Duros",          1, 3},;
                   {"Volumen 1",           2, 3},;
                   {"Particion 1",         3, 2, "Hola 07"},;
                   {"Particion 2",         3, 2, "Hola 08"},;
                   {"Particion 3",         3, 2, "Hola 09"},;
                   {"Volumen 2",           2, 3},;
                   {"Particion 1",         3, 2, "Hola 10"},;
                   {"Particion 2",         3, 2, "Hola 11"},;
                 {"Disco CD-DVD RAM",      1, 4},;
                   {"Volumen 15151441",    2, 2, "Hola 12"},;
                   {"Volumen 45481278",    2, 2, "Hola 13"},;
                   {"Volumen 89612255",    2, 2, "Hola 14"},;
                 {"Unidades Virtuales RAM",1, 5},;
                   {"Volumen 15151441",    2, 2, "Hola 15"},;
                   {"Volumen 45481278",    2, 2, "Hola 16"},;
                   {"Volumen 89612255",    2, 2, "Hola 17"},;
                 {"Unidades de Red",       1, 6},;
                   {"Volumen 45481278",    2, 2, "Hola 18"},;
                 {"Discos USB",            1, 7},;
                   {"Volumen 1",           2, 2, "Hola 19"},;
                   {"Volumen 2",           2, 2, "Hola 20"}}

     
FOR each item in aData
      IF item[2] > 0
        IF item[2] > oSubItem:Cargo["level"]
           oItem = oSubItem
        ELSEIF item[2] == oSubItem:Cargo["level"]
            oItem = oSubItem:oParent
        ELSE
           oParent = oSubItem:oParent
           FOR i = oSubItem:Cargo["level"] TO item[2] + 1 step -1
              oParent = oParent:oParent
           NEXT
           oItem = oParent
        ENDIF
      ENDIF
      oSubItem:= oItem:Add(item[1], item[3], {|| MSGInfo(item[4]) })
      oSubItem:Cargo:= { "level" => item[2] }
NEXT

oTree:SetImageList(oImageList)
oTree:Expand()

RETURN Nil

Image

No entiendo porque no hace nada al seleccionar el item, les dejo el exe y la fuente para que prueben lo que comento..

https://www.mediafire.com/?vyjay69clj33ptg

Saludos y Gracias por leer mi solicitud.
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Error de pintado Treeview

Postby Antonio Linares » Mon Aug 18, 2014 1:57 pm

Victor,

Prueba esto para ver si asi se repinta bien al expandir las ramas:

oTree:bExpanded = { || oTree:Refresh() }

Para ejecutar la acción de cada item, estas usando algo asi ?

oTree:bChanged = { || MsgInfo( oTree:GetSelected():cPrompt ) }
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Error de pintado Treeview

Postby Antonio Linares » Mon Aug 18, 2014 2:07 pm

Victor,

Puedes enviarme tu email actual a alinares@fivetechsoft.com, gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Error de pintado Treeview

Postby cuatecatl82 » Mon Aug 18, 2014 3:06 pm

Maestro ya le envie mi email..

Code: Select all  Expand view
oTree:bExpanded = { || oTree:Refresh() }


Me genera error:
Error BASE/1005 Message not found: TTREEVIEW:_BEXPANDED


La unica forma que encontre de repintar el Treeview es refrescando el dialogo
Code: Select all  Expand view
oTree:OnClick = { | nRow, nCol | oDlg:Refresh() }

pero no me gusta porque todos los controles parpadean..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Error de pintado Treeview

Postby Antonio Linares » Mon Aug 18, 2014 9:21 pm

Victor,

Y si pruebas asi:

oTree:OnClick = { | nRow, nCol | oTree:Refresh() }
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Error de pintado Treeview

Postby cuatecatl82 » Mon Aug 18, 2014 9:37 pm

No lo refresca o actualiza..

Como poder asignarle la funcion de refresco como cualquier otro control..?
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Error de pintado Treeview

Postby Antonio Linares » Mon Aug 18, 2014 9:43 pm

Victor,

Si revisas samples/classtree.prg verás que usamos:

oTree:bExpanded = { | hItem | MsgInfo( oTree:GetItem( hItem ):cPrompt ) }

Luego tu aplicación debería aceptar esa DATA salvo que estés usando una versión antigua de FWH.

Desde ahi podrias hacer oTree:SysRefresh()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Error de pintado Treeview

Postby cuatecatl82 » Mon Aug 18, 2014 10:48 pm

No pues ahi me quede, no tengo esa linea en samples/classtree.prg, sigo probando porque ahora me estoy liando con el scroll que tampoco actualiza al desplazarse, en el METHOD VScroll( nWParam, nLParam ) VIRTUAL, no hay dada que pueda definir ahi..
y a la vez que sigo buscando como ejecutar mi bloque de cógido ya que no lo esta ejecutando..

Ups...me ahogo en un vaso de agua jejeje,
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Error de pintado Treeview

Postby Antonio Linares » Mon Aug 18, 2014 11:14 pm

Victor,

Que versión de FWH usas ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Error de pintado Treeview

Postby cuatecatl82 » Tue Aug 19, 2014 12:03 am

11.11 bastante atrasado..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Error de pintado Treeview

Postby Antonio Linares » Tue Aug 19, 2014 12:38 am

Por eso que no encontraba esa DATA
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Error de pintado Treeview

Postby cuatecatl82 » Tue Aug 19, 2014 1:50 am

El error de pintado es bastante grande por lo que parece, no se si en versiones recientes este solucionado,

Acabo de probar poniendo items largos y al mover el scrolls vertical y horizontal pasa esto..

Image

Que lio...!! :shock: :shock: :shock: :cry: :cry: :cry:
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Error de pintado Treeview

Postby Antonio Linares » Tue Aug 19, 2014 2:44 am

Victor,

Puedes proporcionarme un PRG de ejemplo para probarlo aqui ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Error de pintado Treeview

Postby cuatecatl82 » Tue Aug 19, 2014 3:18 am

Aqui en ejemplo en exe y prg

https://www.mediafire.com/?6jbqv6l623equ0k
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Error de pintado Treeview

Postby Antonio Linares » Tue Aug 19, 2014 9:34 am

Victor,

Acabo de construirlo con FWH 14.07 y funciona correctamente :-)

Puedes descargar mi EXE para probarlo desde aqui:
https://bitbucket.org/fivetech/fivewin-contributions/downloads/explorar.zip
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42052
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 79 guests