ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: detecter le click de la souris sur le header d'une colonne d'un grille   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

mer. 24 janvier 2018, 18h06
ybenam
Algérie Algérie

atoutfox.public.association

Re: detecter le click de la souris sur le header d'une colonne d'un grille

Bonjour
tu peux utiliser la toute puissante fonction bindevent() pour ce faire.
tu peux cliquer sur n'importe quel header pour avoir sa réaction (ici canger sa couleur et déclencher un messagebox).
tu peux en dehors de cet exercice,cliquer sur un header pour faire un "set order to..field...ascending..descending" par ex...

Public oform
oform=Newobject("ytest")
oform.Show
Return
*
Define Class ytest As Form
  Height = 373
  Width = 924
  AutoCenter = .T.
  Caption = "Click on any column.header to retrieve a reaction !"
  Name = "Form1"

  Add Object grid1 As Grid With ;
    Anchor = 15, ;
    Height = 385, ;
    Left = 0, ;
    Top = 0, ;
    Width = 937, ;
    Name = "Grid1"

  Procedure mym
    Lparameters nButton, nShift, nXCoord, nYCoord
    *--- aevent create an array laEvents
    Aevents( myArray, 0)
    *--- reference the calling object
    loObject = myArray[1]
    Local m.xBackcolor
    m.xBackcolor=loObject.BackColor
    loObject.BackColor=255
    Messagebox("the header ["+loObject.Caption+"] was cliqued!",0+32+4096,'',1500)
    loObject.BackColor=m.xBackcolor
  Endproc

  Procedure Load
    Sele * From Home(1)+"samples\data\customer" Into Cursor ycurs
    Locate
  Endproc

  Procedure grid1.Init
    With This
      .Themes=.F.   &&oonly for header.backColor in method mym
      .RecordSource="ycurs"
      .RecordSourceType=1
      .GridLines=0
      .DeleteMark=.F.
      .SetAll("fontbold",.T.,"header")
      .SetAll("fontsize",12,"header")
      .SetAll("mousepointer",15,"header")
      .SetAll("DynamicBackColor","IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255), RGB(205,255,220))""Column")
      .AutoFit()
      Locate
      .Refresh
      For i=1 To .ColumnCount
        Bindevent(.Columns(i).header1,"mousedown",Thisform,"mym")
      Endfor
    Endwith
  Endproc

Enddefine
*
*-- EndDefine: ytest


Permalink : http://www.atoutfox.org/nntp.asp?ID=0000018816
18 785 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2018.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0