GPF con combobox y menu popup

GPF con combobox y menu popup

Postby quique » Wed Jul 16, 2008 6:47 am

Antonio, otro bug con combobox
Code: Select all  Expand view  RUN
proc main
local tComboBox1, oCbx, oSay, oWnd
DEFINE WINDOW oWnd FROM 116,168 TO 379,779 PIXEL TITLE  " Prueba 1"  STYLE 47120384
@ 20, 422 COMBOBOX oCbx var tComboBox1 ITEMS { "tComboBox", "ComboBox" } of oWnd SIZE 90,21 PIXEL STYLE 1419841539
oCbx:bRClicked := { | nRow, nCol | menu( nRow, nCol, oCbx ) }
@ 77, 18 SAY oSay prompt "Edad" PIXEL SIZE 44,15                 of oWnd
oSay:lWantclick := .t.
oSay:bRClicked := { | nRow, nCol | menu( nRow, nCol, oSay ) }
ACTIVATE WINDOW oWnd
return nil

static function menu( nRow, nCol, oCtrl )
   local oMenu
   menu oMenu popup
      menuItem "Opcion"
   endMenu
   activate popup oMenu at nRow, nCol of oCtrl
return nil

con click derecho en el combobox genera un GPF, en el say no hay problema ¿como puedo solucionarlo?
Saludos
Quique
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am

Postby Antonio Linares » Wed Jul 16, 2008 9:19 am

Quique,

EL GPF lo solucionas así:
Code: Select all  Expand view  RUN
METHOD DrawItem( nIdCtl, nPStruct ) CLASS TComboBox

   if ::oPopup != nil
      return nil
   endif   

return LbxDrawItem( nPStruct, ::aBitmaps, ::aItems, ::nBmpWidth, ::bDrawItem )

De todas formas el item del menu popup aún no se muestra. Posiblemente se está rutando mal el mensaje drawitem. Vamos a revisarlo.

Yo no catalogaría estos comportamientos de bugs, sino el resultado de querer llevar el API de Windows al límite de su funcionalidad :-)
regards, saludos

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

Postby Antonio Linares » Wed Jul 16, 2008 9:29 am

Quique,

Este es el código correcto para que funcione bien:
Code: Select all  Expand view  RUN
METHOD DrawItem( nIdCtl, nPStruct ) CLASS TComboBox

   if ::oPopup != nil
      return Super:DrawItem( nIdCtl, nPStruct )
   endif   

return LbxDrawItem( nPStruct, ::aBitmaps, ::aItems, ::nBmpWidth, ::bDrawItem )
regards, saludos

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

Postby quique » Wed Jul 16, 2008 2:29 pm

Gracias, funciona correctamente
Saludos
Quique
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 61 guests