Rafa, el mousedown toma control al presionar un botón del  mouse , probaste
usar click y doubleclick ??

Pablo Sigüenza

-----Mensaje original-----
De: [email protected] [mailto:[email protected]] En nombre de Rafael Copquin
Enviado el: jueves, 12 de septiembre de 2013 14:59
Para: GUFA List Member
Asunto: [GUFA] eventos dblclick y mousedown en grids

Puse el siguiente código en una grilla:

** init event

Local oColumn As Column, oControl
For Each oColumn In This.Columns
     For Each oControl In oColumn.Controls
         If Pemstatus(oControl,'MouseDown',5)
             Bindevent(oControl,'MouseDown',This,'MouseDown')
         EndIf
     endfor
EndFor

** mousedown event

LPARAMETERS nButton, nShift, nXCoord, nYCoord

Local nWhere, nRelRow, nRelCol,cBackColor,cForeColor,nCol

This.GridHitTest(nXCoord,nYCoord,@nWhere,@nRelRow,@nRelCol)

Do case
    Case nWhere = 3        && celda

     nCol = this.columncount - Abs(m.nRelCol)
     nCol = Iif(nCol=0,1,nCol)                    && nCol sería 0 si 
hubiera solamente una columna en la grid

     cBackColor = 'this.column'+Alltrim(Str(nCol))+'.text1.backcolor = ' 
+Transform(Rgb(255,0,0))      && rojo
     cForeColor = 'this.column'+Alltrim(Str(nCol))+'.text1.forecolor = ' 
+Transform(Rgb(255,255,255)) && blanco

     &cBackColor
     &cForeColor

    Otherwise
endcase

Este código hace que cada vez que se da click en cualquier celda, ésta se
torna roja con letras blancas. Sin el código de arriba, al dar click, la
celda queda "transparente" y no cambia de color.

Sin embargo, si tengo algún código en el evento dblclick del textbox de la
columna, ese código no se dispara.
Es como si el mousedown matara al doubleclick

¿Cómo puedo hacer para que funcionen los dos?

Rafael Copquin


Responder a