SI NO ES FACIL O NO ME EXPLICO, POR FAVOR DIGAN ALGO, LA VERDAD ME INTERESA
RESOLVER ESA SITUACION
No se ven dentro del treeview los checkbox por que? y como solucionaria esto
WITH OBJECT oChk := TCheckBox():New(Self) con
TCheckBox():New(::oParent) se ven pero en el objeto que llamo al treeview
:nTop := cxnTop
:nLeft := nLeft
:nWidth := 15
:nHeight := 20
:Create()
END
Tengo la Clase TTreeview sobrecargada
CLASS TTreeView FROM XTreeView
METHOD WMLButtonDown(wParam, lParam)
ENDCLASS
METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
LOCAL R, aState, X, I
LOCAL aRect := {}
LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
LOCAL oItem, nLeft, nRight, nTop
LOCAL nX := LOWORD( lParam )
LOCAL nY := HIWORD( lParam )
cxEsp := 56
cxBtnSize := 15
IF ( oItem := ::HitTest( nX, nY ) ) != Nil
IF ::SetFocus()
oItem:Select()
ENDIF
ENDIF
cxCant := LEN(oItem:aItems)
AADD(aRect,::GetItemRect(oItem:nIndex))
IF !LEN(aRect) > 0
RETURN .F.
ELSE
cxLeft := aRect[1,1]
nTop := aRect[1,2]
nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
ENDIF
nTop := aRect[1,2]
FOR i:= 0 To cxCant - 1
X := ::nWidth - cxLeft + cxEsp
nLeft := X + (I * cxbtnSize)
IF oItem:IsExpanded
AState := 1
ELSE
AState := 0
ENDIF
WITH OBJECT TCheckBox():New(::oparent)
:nTop := nTop
:nLeft := nLeft
:nWidth := 15
:nHeight := 20
:Create()
END
NEXT
RETURN Super:WMLButtonDown()
Para los que me puedan ayudar diganme como resolver este asunto por favor,
aqui les va un ejemplo de lo que se quiere
Saludos y muchas gracias
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Por favor, digan si se puede o no
Por favor, digan si se puede o no
Carlos,
No sé si te he entendido bien. Pero si lo que sencillamente deseas es que el
propio Treeview pinte un checkbox en los elementos del árbol, y que el
usuario tenga la opción de activar o desactivar la casilla, tal como te han
comentado en los mensajes anteriores es haciendo lo siguiente:
:lCheckBox := .T.
Tienes un ejemplo en el directorio samplestreeview de xailer.
Sería algo semejante a:
WITH OBJECT oTree := TTreeView():New( Self )
:SetBounds( 8, 8, 382, 438 )
:lCheckBox := .T.
:Create()
END
Si después en tu programa haces algo así:
oTree:AddItem( "Uno",,,, .T. )
oTree:AddItem( "Dos" )
dichos elementos del árbol tendrán un checkbox. El primero estará con
:lChecked := .T., y el segundo :lChecked := .F.
No es necesario que crees un objecto Checkbox por cada elemento. El propio
TreeView es el que los pinta.
Saludos.
"Carlos Cedeño" <carlosijc@hotmail.com> escribió en el mensaje de noticias
news:49ebc9c8$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> SI NO ES FACIL O NO ME EXPLICO, POR FAVOR DIGAN ALGO, LA VERDAD ME
> INTERESA
> RESOLVER ESA SITUACION
>
> No se ven dentro del treeview los checkbox por que? y como solucionaria
> esto
>
> WITH OBJECT oChk := TCheckBox():New(Self) con
> TCheckBox():New(::oParent) se ven pero en el objeto que llamo al treeview
> :nTop := cxnTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
>
> Tengo la Clase TTreeview sobrecargada
>
> CLASS TTreeView FROM XTreeView
> METHOD WMLButtonDown(wParam, lParam)
> ENDCLASS
>
> METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
> LOCAL R, aState, X, I
> LOCAL aRect := {}
> LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
> LOCAL oItem, nLeft, nRight, nTop
> LOCAL nX := LOWORD( lParam )
> LOCAL nY := HIWORD( lParam )
> cxEsp := 56
> cxBtnSize := 15
>
> IF ( oItem := ::HitTest( nX, nY ) ) != Nil
> IF ::SetFocus()
> oItem:Select()
> ENDIF
> ENDIF
>
> cxCant := LEN(oItem:aItems)
> AADD(aRect,::GetItemRect(oItem:nIndex))
> IF !LEN(aRect) > 0
> RETURN .F.
> ELSE
> cxLeft := aRect[1,1]
> nTop := aRect[1,2]
> nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
> ENDIF
> nTop := aRect[1,2]
> FOR i:= 0 To cxCant - 1
> X := ::nWidth - cxLeft + cxEsp
> nLeft := X + (I * cxbtnSize)
> IF oItem:IsExpanded
> AState := 1
> ELSE
> AState := 0
> ENDIF
> WITH OBJECT TCheckBox():New(::oparent)
> :nTop := nTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
> NEXT
> RETURN Super:WMLButtonDown()
>
> Para los que me puedan ayudar diganme como resolver este asunto por favor,
> aqui les va un ejemplo de lo que se quiere
>
> Saludos y muchas gracias
>
>
>
>
No sé si te he entendido bien. Pero si lo que sencillamente deseas es que el
propio Treeview pinte un checkbox en los elementos del árbol, y que el
usuario tenga la opción de activar o desactivar la casilla, tal como te han
comentado en los mensajes anteriores es haciendo lo siguiente:
:lCheckBox := .T.
Tienes un ejemplo en el directorio samplestreeview de xailer.
Sería algo semejante a:
WITH OBJECT oTree := TTreeView():New( Self )
:SetBounds( 8, 8, 382, 438 )
:lCheckBox := .T.
:Create()
END
Si después en tu programa haces algo así:
oTree:AddItem( "Uno",,,, .T. )
oTree:AddItem( "Dos" )
dichos elementos del árbol tendrán un checkbox. El primero estará con
:lChecked := .T., y el segundo :lChecked := .F.
No es necesario que crees un objecto Checkbox por cada elemento. El propio
TreeView es el que los pinta.
Saludos.
"Carlos Cedeño" <carlosijc@hotmail.com> escribió en el mensaje de noticias
news:49ebc9c8$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> SI NO ES FACIL O NO ME EXPLICO, POR FAVOR DIGAN ALGO, LA VERDAD ME
> INTERESA
> RESOLVER ESA SITUACION
>
> No se ven dentro del treeview los checkbox por que? y como solucionaria
> esto
>
> WITH OBJECT oChk := TCheckBox():New(Self) con
> TCheckBox():New(::oParent) se ven pero en el objeto que llamo al treeview
> :nTop := cxnTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
>
> Tengo la Clase TTreeview sobrecargada
>
> CLASS TTreeView FROM XTreeView
> METHOD WMLButtonDown(wParam, lParam)
> ENDCLASS
>
> METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
> LOCAL R, aState, X, I
> LOCAL aRect := {}
> LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
> LOCAL oItem, nLeft, nRight, nTop
> LOCAL nX := LOWORD( lParam )
> LOCAL nY := HIWORD( lParam )
> cxEsp := 56
> cxBtnSize := 15
>
> IF ( oItem := ::HitTest( nX, nY ) ) != Nil
> IF ::SetFocus()
> oItem:Select()
> ENDIF
> ENDIF
>
> cxCant := LEN(oItem:aItems)
> AADD(aRect,::GetItemRect(oItem:nIndex))
> IF !LEN(aRect) > 0
> RETURN .F.
> ELSE
> cxLeft := aRect[1,1]
> nTop := aRect[1,2]
> nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
> ENDIF
> nTop := aRect[1,2]
> FOR i:= 0 To cxCant - 1
> X := ::nWidth - cxLeft + cxEsp
> nLeft := X + (I * cxbtnSize)
> IF oItem:IsExpanded
> AState := 1
> ELSE
> AState := 0
> ENDIF
> WITH OBJECT TCheckBox():New(::oparent)
> :nTop := nTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
> NEXT
> RETURN Super:WMLButtonDown()
>
> Para los que me puedan ayudar diganme como resolver este asunto por favor,
> aqui les va un ejemplo de lo que se quiere
>
> Saludos y muchas gracias
>
>
>
>
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Por favor, digan si se puede o no
Pon tu ejemplo en un pequeño proyecto y subelo, o mandalo a mi mail, y te
apoyo.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
apoyo.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 620
- Registrado: Jue Mar 23, 2006 2:39 am
Por favor, digan si se puede o no
Carlos:
Perdona pero no tengo NPI de lo que quieres hacer, los checkboxes
aparecen nativamente en el Treeview, puedes ver tambien los mensajes de
Bingen donde viene un ejemplo de Tree con checks.
Saludos.
Rene Flores
http://www.ciber-tec.com
Cedeño escribió:
> SI NO ES FACIL O NO ME EXPLICO, POR FAVOR DIGAN ALGO, LA VERDAD ME INTERESA
> RESOLVER ESA SITUACION
>
> No se ven dentro del treeview los checkbox por que? y como solucionaria
> esto
>
> WITH OBJECT oChk := TCheckBox():New(Self) con
> TCheckBox():New(::oParent) se ven pero en el objeto que llamo al treeview
> :nTop := cxnTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
>
> Tengo la Clase TTreeview sobrecargada
>
> CLASS TTreeView FROM XTreeView
> METHOD WMLButtonDown(wParam, lParam)
> ENDCLASS
>
> METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
> LOCAL R, aState, X, I
> LOCAL aRect := {}
> LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
> LOCAL oItem, nLeft, nRight, nTop
> LOCAL nX := LOWORD( lParam )
> LOCAL nY := HIWORD( lParam )
> cxEsp := 56
> cxBtnSize := 15
>
> IF ( oItem := ::HitTest( nX, nY ) ) != Nil
> IF ::SetFocus()
> oItem:Select()
> ENDIF
> ENDIF
>
> cxCant := LEN(oItem:aItems)
> AADD(aRect,::GetItemRect(oItem:nIndex))
> IF !LEN(aRect) > 0
> RETURN .F.
> ELSE
> cxLeft := aRect[1,1]
> nTop := aRect[1,2]
> nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
> ENDIF
> nTop := aRect[1,2]
> FOR i:= 0 To cxCant - 1
> X := ::nWidth - cxLeft + cxEsp
> nLeft := X + (I * cxbtnSize)
> IF oItem:IsExpanded
> AState := 1
> ELSE
> AState := 0
> ENDIF
> WITH OBJECT TCheckBox():New(::oparent)
> :nTop := nTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
> NEXT
> RETURN Super:WMLButtonDown()
>
> Para los que me puedan ayudar diganme como resolver este asunto por favor,
> aqui les va un ejemplo de lo que se quiere
>
> Saludos y muchas gracias
>
>
>
>
Perdona pero no tengo NPI de lo que quieres hacer, los checkboxes
aparecen nativamente en el Treeview, puedes ver tambien los mensajes de
Bingen donde viene un ejemplo de Tree con checks.
Saludos.
Rene Flores
http://www.ciber-tec.com
Cedeño escribió:
> SI NO ES FACIL O NO ME EXPLICO, POR FAVOR DIGAN ALGO, LA VERDAD ME INTERESA
> RESOLVER ESA SITUACION
>
> No se ven dentro del treeview los checkbox por que? y como solucionaria
> esto
>
> WITH OBJECT oChk := TCheckBox():New(Self) con
> TCheckBox():New(::oParent) se ven pero en el objeto que llamo al treeview
> :nTop := cxnTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
>
> Tengo la Clase TTreeview sobrecargada
>
> CLASS TTreeView FROM XTreeView
> METHOD WMLButtonDown(wParam, lParam)
> ENDCLASS
>
> METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
> LOCAL R, aState, X, I
> LOCAL aRect := {}
> LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
> LOCAL oItem, nLeft, nRight, nTop
> LOCAL nX := LOWORD( lParam )
> LOCAL nY := HIWORD( lParam )
> cxEsp := 56
> cxBtnSize := 15
>
> IF ( oItem := ::HitTest( nX, nY ) ) != Nil
> IF ::SetFocus()
> oItem:Select()
> ENDIF
> ENDIF
>
> cxCant := LEN(oItem:aItems)
> AADD(aRect,::GetItemRect(oItem:nIndex))
> IF !LEN(aRect) > 0
> RETURN .F.
> ELSE
> cxLeft := aRect[1,1]
> nTop := aRect[1,2]
> nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
> ENDIF
> nTop := aRect[1,2]
> FOR i:= 0 To cxCant - 1
> X := ::nWidth - cxLeft + cxEsp
> nLeft := X + (I * cxbtnSize)
> IF oItem:IsExpanded
> AState := 1
> ELSE
> AState := 0
> ENDIF
> WITH OBJECT TCheckBox():New(::oparent)
> :nTop := nTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
> NEXT
> RETURN Super:WMLButtonDown()
>
> Para los que me puedan ayudar diganme como resolver este asunto por favor,
> aqui les va un ejemplo de lo que se quiere
>
> Saludos y muchas gracias
>
>
>
>
Por favor, digan si se puede o no
Me perdonan, pero creo que no me hago entender.
observen la foto.
Estoy agarrando la clase TTreeview y y en la sobrecarga quiero agregar
CheckBoxes que correspondan a las columnas Acceso, Lectura, Escritura,
Crear, Borrar Imprimir que aparecen en pantalla, se muestre una listas de
checkboxes por cada elemento de la rama clickeada, el problema esta que
fuera de la clases y depositando no sobre el mismo treeview sino sobre un
oBevel logro hacerlo solo para el elemento seleccionado., pero pienso que
sobrecargando el treeview se puede obtener exactamente la posicion donde se
encuentra la rama o elemento clickeada.
COMO DIGO DENTRO DE LA CLASES, QUE SE CREEN LOS CHECKBOXES DENTRO DEL
TREEVIEW?
Con SELF no se muestran dentro del Treeview los CheckBoxes con ::oParent, se
muestran lso checkboxes dentro de padre, generalmente dentro del Form
Este es como lo hago en la sobrecarga que no me trabaja.
WITH OBJECT oChk := TCheckBox():New(Self) con TCheckBox():New(::oParent)
se ven pero en el objeto que llamo al treeview
:nTop := cxnTop
:nLeft := nLeft
:nWidth := 15
:nHeight := 20
:Create()
END
ESTA ES LA CLASE TTREEVIEW
Tengo la Clase TTreeview sobrecargada
CLASS TTreeView FROM XTreeView
METHOD WMLButtonDown(wParam, lParam) //Aca uso el WMLButtonDown pero
creo que podria usar otro envento.
ENDCLASS
METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
LOCAL R, aState, X, I
LOCAL aRect := {}
LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
LOCAL oItem, nLeft, nRight, nTop
LOCAL nX := LOWORD( lParam ) //Aqui Recojo la posicion X del elemento
Clickeado
LOCAL nY := HIWORD( lParam ) //Aqui Recojo la posicion Y del elemento
Clickeado ESTO LO HACE BIEN, AL MENOS ES LO QUE CREO
cxEsp := 56
cxBtnSize := 15
IF ( oItem := ::HitTest( nX, nY ) ) != Nil
IF ::SetFocus()
oItem:Select()
ENDIF
ENDIF
cxCant := LEN(oItem:aItems)
AADD(aRect,::GetItemRect(oItem:nIndex))
IF !LEN(aRect) > 0
RETURN .F.
ELSE
cxLeft := aRect[1,1]
nTop := aRect[1,2]
nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
ENDIF
nTop := aRect[1,2]
FOR i:= 0 To cxCant - 1
X := ::nWidth - cxLeft + cxEsp
nLeft := X + (I * cxbtnSize)
IF oItem:IsExpanded
AState := 1
ELSE
AState := 0
ENDIF
//AQUI CREO LOS CHECKBOXES
WITH OBJECT TCheckBox():New(::oparent), como ven con el oparent, se
muestran, pero no en el TTreeview, ES AQUI EL PROBLEMA
:nTop := nTop
:nLeft := nLeft
:nWidth := 15
:nHeight := 20
:Create()
END
NEXT
RETURN Super:WMLButtonDown()
SE PERFECTAMENTE QUE PONIENDO LA PROPIEDAD lCheckbox := .T. se mostrara el
checkbox activado por cada opcion del treeview, no es para nada lo que
deseo.
OBSERVEN FOTO
Saludos y muchas gracias
--
Attached files
observen la foto.
Estoy agarrando la clase TTreeview y y en la sobrecarga quiero agregar
CheckBoxes que correspondan a las columnas Acceso, Lectura, Escritura,
Crear, Borrar Imprimir que aparecen en pantalla, se muestre una listas de
checkboxes por cada elemento de la rama clickeada, el problema esta que
fuera de la clases y depositando no sobre el mismo treeview sino sobre un
oBevel logro hacerlo solo para el elemento seleccionado., pero pienso que
sobrecargando el treeview se puede obtener exactamente la posicion donde se
encuentra la rama o elemento clickeada.
COMO DIGO DENTRO DE LA CLASES, QUE SE CREEN LOS CHECKBOXES DENTRO DEL
TREEVIEW?
Con SELF no se muestran dentro del Treeview los CheckBoxes con ::oParent, se
muestran lso checkboxes dentro de padre, generalmente dentro del Form
Este es como lo hago en la sobrecarga que no me trabaja.
WITH OBJECT oChk := TCheckBox():New(Self) con TCheckBox():New(::oParent)
se ven pero en el objeto que llamo al treeview
:nTop := cxnTop
:nLeft := nLeft
:nWidth := 15
:nHeight := 20
:Create()
END
ESTA ES LA CLASE TTREEVIEW
Tengo la Clase TTreeview sobrecargada
CLASS TTreeView FROM XTreeView
METHOD WMLButtonDown(wParam, lParam) //Aca uso el WMLButtonDown pero
creo que podria usar otro envento.
ENDCLASS
METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
LOCAL R, aState, X, I
LOCAL aRect := {}
LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
LOCAL oItem, nLeft, nRight, nTop
LOCAL nX := LOWORD( lParam ) //Aqui Recojo la posicion X del elemento
Clickeado
LOCAL nY := HIWORD( lParam ) //Aqui Recojo la posicion Y del elemento
Clickeado ESTO LO HACE BIEN, AL MENOS ES LO QUE CREO
cxEsp := 56
cxBtnSize := 15
IF ( oItem := ::HitTest( nX, nY ) ) != Nil
IF ::SetFocus()
oItem:Select()
ENDIF
ENDIF
cxCant := LEN(oItem:aItems)
AADD(aRect,::GetItemRect(oItem:nIndex))
IF !LEN(aRect) > 0
RETURN .F.
ELSE
cxLeft := aRect[1,1]
nTop := aRect[1,2]
nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
ENDIF
nTop := aRect[1,2]
FOR i:= 0 To cxCant - 1
X := ::nWidth - cxLeft + cxEsp
nLeft := X + (I * cxbtnSize)
IF oItem:IsExpanded
AState := 1
ELSE
AState := 0
ENDIF
//AQUI CREO LOS CHECKBOXES
WITH OBJECT TCheckBox():New(::oparent), como ven con el oparent, se
muestran, pero no en el TTreeview, ES AQUI EL PROBLEMA
:nTop := nTop
:nLeft := nLeft
:nWidth := 15
:nHeight := 20
:Create()
END
NEXT
RETURN Super:WMLButtonDown()
SE PERFECTAMENTE QUE PONIENDO LA PROPIEDAD lCheckbox := .T. se mostrara el
checkbox activado por cada opcion del treeview, no es para nada lo que
deseo.
OBSERVEN FOTO
Saludos y muchas gracias
--
Attached files
Por favor, digan si se puede o no
Nadie??????
"Carlos Cedeño" <carlosijc@hotmail.com> escribió en el mensaje de
noticias:49ebc9c8$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> SI NO ES FACIL O NO ME EXPLICO, POR FAVOR DIGAN ALGO, LA VERDAD ME
> INTERESA
> RESOLVER ESA SITUACION
>
> No se ven dentro del treeview los checkbox por que? y como solucionaria
> esto
>
> WITH OBJECT oChk := TCheckBox():New(Self) con
> TCheckBox():New(::oParent) se ven pero en el objeto que llamo al treeview
> :nTop := cxnTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
>
> Tengo la Clase TTreeview sobrecargada
>
> CLASS TTreeView FROM XTreeView
> METHOD WMLButtonDown(wParam, lParam)
> ENDCLASS
>
> METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
> LOCAL R, aState, X, I
> LOCAL aRect := {}
> LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
> LOCAL oItem, nLeft, nRight, nTop
> LOCAL nX := LOWORD( lParam )
> LOCAL nY := HIWORD( lParam )
> cxEsp := 56
> cxBtnSize := 15
>
> IF ( oItem := ::HitTest( nX, nY ) ) != Nil
> IF ::SetFocus()
> oItem:Select()
> ENDIF
> ENDIF
>
> cxCant := LEN(oItem:aItems)
> AADD(aRect,::GetItemRect(oItem:nIndex))
> IF !LEN(aRect) > 0
> RETURN .F.
> ELSE
> cxLeft := aRect[1,1]
> nTop := aRect[1,2]
> nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
> ENDIF
> nTop := aRect[1,2]
> FOR i:= 0 To cxCant - 1
> X := ::nWidth - cxLeft + cxEsp
> nLeft := X + (I * cxbtnSize)
> IF oItem:IsExpanded
> AState := 1
> ELSE
> AState := 0
> ENDIF
> WITH OBJECT TCheckBox():New(::oparent)
> :nTop := nTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
> NEXT
> RETURN Super:WMLButtonDown()
>
> Para los que me puedan ayudar diganme como resolver este asunto por favor,
> aqui les va un ejemplo de lo que se quiere
>
> Saludos y muchas gracias
>
>
>
>
"Carlos Cedeño" <carlosijc@hotmail.com> escribió en el mensaje de
noticias:49ebc9c8$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> SI NO ES FACIL O NO ME EXPLICO, POR FAVOR DIGAN ALGO, LA VERDAD ME
> INTERESA
> RESOLVER ESA SITUACION
>
> No se ven dentro del treeview los checkbox por que? y como solucionaria
> esto
>
> WITH OBJECT oChk := TCheckBox():New(Self) con
> TCheckBox():New(::oParent) se ven pero en el objeto que llamo al treeview
> :nTop := cxnTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
>
> Tengo la Clase TTreeview sobrecargada
>
> CLASS TTreeView FROM XTreeView
> METHOD WMLButtonDown(wParam, lParam)
> ENDCLASS
>
> METHOD WMLButtonDown(wParam, lParam ) CLASS TTreeview
> LOCAL R, aState, X, I
> LOCAL aRect := {}
> LOCAL cxLeft, cxEsp, cxbtnSize, cxCant, cdPostPaint
> LOCAL oItem, nLeft, nRight, nTop
> LOCAL nX := LOWORD( lParam )
> LOCAL nY := HIWORD( lParam )
> cxEsp := 56
> cxBtnSize := 15
>
> IF ( oItem := ::HitTest( nX, nY ) ) != Nil
> IF ::SetFocus()
> oItem:Select()
> ENDIF
> ENDIF
>
> cxCant := LEN(oItem:aItems)
> AADD(aRect,::GetItemRect(oItem:nIndex))
> IF !LEN(aRect) > 0
> RETURN .F.
> ELSE
> cxLeft := aRect[1,1]
> nTop := aRect[1,2]
> nLeft := ::nWidth - cxLeft // ::nLeft+265 // nWidth - cxLeft
> ENDIF
> nTop := aRect[1,2]
> FOR i:= 0 To cxCant - 1
> X := ::nWidth - cxLeft + cxEsp
> nLeft := X + (I * cxbtnSize)
> IF oItem:IsExpanded
> AState := 1
> ELSE
> AState := 0
> ENDIF
> WITH OBJECT TCheckBox():New(::oparent)
> :nTop := nTop
> :nLeft := nLeft
> :nWidth := 15
> :nHeight := 20
> :Create()
> END
> NEXT
> RETURN Super:WMLButtonDown()
>
> Para los que me puedan ayudar diganme como resolver este asunto por favor,
> aqui les va un ejemplo de lo que se quiere
>
> Saludos y muchas gracias
>
>
>
>
-
- Mensajes: 180
- Registrado: Lun Sep 15, 2008 2:53 pm
Por favor, digan si se puede o no
Carlos.
Yo creo todos te entendimos bien. En mi caso, no puedo ayudarte porque no
tengo conocimiento suficiente de Xailer.
En apariencia queda bueno. Pero no te estas complicando un poco ? La opcion
que te tiro José Alfonso esta buena. Yo se que para un programador es un
reto lograr "algo". Pero si por ahora los "padres de la criatura" no te
ayudaron, es porque no se puede, o es demasiado complicado.
Lamento no poder ayudarte. Porque a mi me encanta hacer rutinas complicadas
y de buena apariencia, pero en clipper, jeje.
Saludos
Juan
Yo creo todos te entendimos bien. En mi caso, no puedo ayudarte porque no
tengo conocimiento suficiente de Xailer.
En apariencia queda bueno. Pero no te estas complicando un poco ? La opcion
que te tiro José Alfonso esta buena. Yo se que para un programador es un
reto lograr "algo". Pero si por ahora los "padres de la criatura" no te
ayudaron, es porque no se puede, o es demasiado complicado.
Lamento no poder ayudarte. Porque a mi me encanta hacer rutinas complicadas
y de buena apariencia, pero en clipper, jeje.
Saludos
Juan