Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Grids and Headers
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Classes - VCX
Divers
Thread ID:
00203839
Message ID:
00204090
Vues:
30
Markus,

>one quick question: How do you actually know the header is resized/moved and not clicked?

This is the code I use in my header class:
define class hdrSeeker as Header

Name = "hdrSeeker"
mcArrowName = ""    && name of the arrow used for all headers of the grid
mlAscending = .f.   && flag for sort order
mlColumnMoved = .f. && flag indicating column was moved
mnColumnOrder = 0   && original column order
mlColumnSized = .f. && flag indicating column was resized
mnColumnWidth = 0   && original size of column
mcTag = ""          && name of the index tag

procedure Init( pcTag )
local lcName

this.mcTag = iif( ! empty( pcTag ), pcTag, "" )
this.FontBold = ! empty( this.mcTag )

lcName = this.parent.parent.Name + "lblHeaderArrow"
this.mcArrowName = "this.parent.parent.parent." + lcName

if ( type( (this.mcArrowName) ) == "U" )
   * arrow doesn't exist yet so create it
   lcGrid = FullName( this.parent.parent )
   lcGrid = "thisform" + substr( lcGrid, at( '.', lcGrid ) )
   this.parent.parent.parent.AddObject( (lcName), "lblHeaderArrow", lcGrid )
endif

if ( ! empty( this.mcTag ) )
   this.parent.Width = this.parent.Width + 5
endif

endproc

procedure Click()
local loArrow

loArrow = evaluate( this.mcArrowName )

if ( ! empty( this.mcTag ) and ! this.mlColumnMoved and ! this.mlColumnSized )
   * sortable column that was clicked
   this.mlAscending = ! this.mlAscending
   this.parent.parent.Reorder( this.mcTag, this.mlAscending )
   loArrow.mcColumnName = this.parent.Name
endif

loArrow.SetPosition() && update position
endproc

procedure MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord

with this
   * initialize items that will be tested in MouseUp
   .mnColumnOrder = this.parent.ColumnOrder
   .mnColumnWidth = this.parent.Width
endwith
endproc

procedure MouseUp
LPARAMETERS nButton, nShift, nXCoord, nYCoord

with this
   * check to see if this was a resize or move
   .mlColumnMoved = ( this.parent.ColumnOrder != .mnColumnOrder )
   .mlColumnSized = ( this.parent.Width != .mnColumnWidth )
endwith
endproc

enddefine
df (was a 10 time MVP)

df FoxPro website
FoxPro Wiki site online, editable knowledgebase
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform