Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to default myGrid.columns.myobjects to my own?
Message
De
17/01/2000 09:16:31
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Classes - VCX
Divers
Thread ID:
00318908
Message ID:
00318926
Vues:
22
>I subclassed each foxpro object to my own. However, when I select mygrid, each object within the columns are the fox default ones.
>Is it possible to change it ? Maybe by modifying the grid builder, if possible ?
>
>Thanks
>Eric.


Eric,
As an addition to Marcia, this is kind of a builder run from command window after selecting grid(s) in form designer :
Lparameters lcOldClass, lcNewClass, lcClassLib, lcApplyTo, lcKeepProperty, lcParams
*
* Quick and dirty builder for grid columns(ix).controls
* gridbuild(lcOldClass, lcNewClass, lcClassLib [,lcApplyTo] [,lcKeepProperty] [,lcParams])
* Author : Cetin Basoz 
* lcOldClass = Class to change ie: header
* lcNewClass = New Class ie: myheader
* lcClassLib = vcx or prg containing definition - if prg extension is required
* lcApplyTo  = Apply to columns list ie: 1,4,5 - all assumed if empty or ignored
* lcKeepProperty - A property to keep as is if any ie: Caption
* lcParams - Params passed to new class if any - ie : lnLeft, lnTop
*
* Sample calls :
* 1)Replace all header class with myheader class (from myheaderset.prg) and keep caption property
* =gridbuild("header","myheader","myheaderset.prg",,"caption")
*
* 2)Replace all textbox class with mytextbox class (from myclasses.vcx)
* =gridbuild("textbox","mytextbox","myclasses")
*
* 3)Replace all textbox class with mytextbox class (from myclasses.vcx) in columns 1,3,5
* gridbuild("textbox","mytextbox","myclasses","1,3,5")
*
* Select one or more grids on form and call
*
If type("lcOldClass") # "C" ;
  or type("lcNewClass") # "C" ;
  or type("lcClassLib") # "C"
  Or empty("lcOldClass") ;
  or empty("lcNewClass") ;
  or empty("lcClassLib")
  Wait window nowait "Required params missing."
  Return
Endif

lcApplyTo = iif(type("lcApplyTo")#"C","0",lcApplyTo)
lcKeepProperty = iif(type("lcKeepProperty")="C",lcKeepProperty,"name")
lcParams = iif(type("lcParams")="C",","+lcParams,"")
If ratc(".prg",lcClassLib)>0
  If !upper(lcClassLib)$set("Procedure")
    Set proc to (lcClassLib) additive
  Endif
Else
  If !upper(lcClassLib)$set("classlib")
    Set classlib to  (lcClassLib) additive
  Endif
Endif
Aselobj(oGrids)
For each oGrid in oGrids
  If !oGrid.baseclass = "Grid"
    Loop
  Endif
  For each oColumn in oGrid.columns
    If lcApplyTo=="0" or inlist(oColumn.columnorder, &lcApplyTo)
      For each oControl in oColumn.controls
        If upper(oControl.class) = upper(lcOldClass)
          lcKeepName = oControl.name
          lcKeepPropValue = oControl.&lcKeepProperty
          oColumn.removeobject(lcKeepName)
          oColumn.addobject(lcKeepName,lcNewClass &lcParams)
          With eval("oColumn."+lcKeepName)
            .&lcKeepProperty = lcKeepPropValue
          Endwith
        Endif
      Endfor
    Endif
  Endfor
Endfor
Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform