1 Son düzenleyen, ugurlu2001 (04.10.2011 14:45:09)

Konu: Grid SetALL hk.

Kodun üzerinde oynadım ama bir noktadan sonra kolayına kaçıp kodun sahibine sormaya karar verdim smile

Yapmak istediğim ise şu; Gridin sadece belirli sürunlarına göre renklendirme yapmak istiyorum.

Üstat, şimdiden çok teşekkür ediyorum smile

Visual Fox Pro
* Author : Cetin BASOZ

* url : http://www.fox4um.com/topic/1746/grid-satirlarini-renklendirmek-ve-grid-initini-calistirmak/
 
Public oForm
oForm = Createobject('myForm')
oForm.Show
 
Define Class myForm As Form
  DataSession = 2
  Height=400
  Width=400
 
  Add Object myGrid As Grid With ;
    RecordSource='Orders',  Height=400,  Width=400,Anchor=15, ReadOnly=.T.
 
  Procedure Load
    Use (_samples+'data\orders')
  Endproc
 
  Procedure Init
    This.myGrid.SetAll('DynamicBackColor', '(thisform.ColorMe(Orders.Emp_id, .F.))')
    This.myGrid.SetAll('DynamicForeColor', '(thisform.ColorMe(Orders.Emp_id, .T.))')
  Endproc
 
  Procedure ColorMe(tcValue, tlForeColor)
    Local lnBackColor, lnForeColor
    lnBackColor = Bitand( Val(Sys(2007,m.tcValue,1,1)), 0x00FFFFFF )
    If !m.tlForeColor
      Return m.lnBackColor
    Endif
 
    Local lnRed, lnGreen, lnBlue,lnAlpha
    lnRed = Bitand(Bitrshift(m.lnBackColor,0),0xFF)
    lnGreen = Bitand(Bitrshift(m.lnBackColor,8),0xFF)
    lnBlue = Bitand(Bitrshift(m.lnBackColor,16),0xFF)
    lnAlpha = (Max(m.lnRed,m.lnGreen,m.lnBlue)+Min(m.lnRed,m.lnGreen,m.lnBlue))/2
 
    Return Iif(m.lnAlpha < 0x80, 0xFFFFFF, 0)
  Endproc
Enddefine

Aşağıdaki satırı denedim ama sonuç yok ! Sadece o hücreye ait renklendirme yapmak istiyorum!

Visual Fox Pro
.Columns(9).SetAll('DynamicBackColor','(ThisForm.MakeColorForGrid(ALLTRIM(STR(CrsTablo.FieldbyNumber)), .F.))')

.Columns(9).SetAll('DynamicForeColor','(ThisForm.MakeColorForGrid(ALLTRIM(STR(CrsTablo.FieldbyNumber)), .T.))')
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

2

Re: Grid SetALL hk.

Visual Fox Pro
Public oForm

oForm = Createobject('myForm')
oForm.Show
 
Define Class myForm As Form
  DataSession = 2
  Height=400
  Width=400
 
  Add Object myGrid As Grid With ;
    RecordSource='Orders',  Height=400,  Width=400,Anchor=15, ReadOnly=.T.
 
  Procedure Load
    Use (_samples+'data\orders')
  Endproc
 
  Procedure Init
    This.myGrid.Columns(2).DynamicBackColor = '(thisform.ColorMe(Orders.Emp_id, .F.))'
    This.myGrid.Columns(2).DynamicForeColor = '(thisform.ColorMe(Orders.Emp_id, .T.))'
  Endproc
 
  Procedure ColorMe(tcValue, tlForeColor)
    Local lnBackColor, lnForeColor
    lnBackColor = Bitand( Val(Sys(2007,m.tcValue,1,1)), 0x00FFFFFF )
    If !m.tlForeColor
      Return m.lnBackColor
    Endif
 
    Local lnRed, lnGreen, lnBlue,lnAlpha
    lnRed = Bitand(Bitrshift(m.lnBackColor,0),0xFF)
    lnGreen = Bitand(Bitrshift(m.lnBackColor,8),0xFF)
    lnBlue = Bitand(Bitrshift(m.lnBackColor,16),0xFF)
    lnAlpha = (Max(m.lnRed,m.lnGreen,m.lnBlue)+Min(m.lnRed,m.lnGreen,m.lnBlue))/2
 
    Return Iif(m.lnAlpha < 0x80, 0xFFFFFF, 0)
  Endproc
Enddefine

3 Son düzenleyen, ugurlu2001 (04.10.2011 15:11:40)

Re: Grid SetALL hk.

Üstat çok teşekkür ediyorum Beceremediğim tam olarak buydu smile
Allah aklına ve sağlığına zeval vermesin ...

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü