1

Konu: Grid'e procedure ekleme

Design Time'da oluşturulmuş olan bir gride örneğin header1.click() fonksiyonu nasıl eklenir. Bir command buttonun click'inde bunu yazarak bu gride metod yazılabilir mi.
Kısacası grid1.header1.click() metodunu duruma göre değişik olacak şekilde müdahale edebilir miyim.

2

Re: Grid'e procedure ekleme

Nasil yapacagin biraz elindeki versiyona bagli. VFP9'da ornegin BindEvent() var.

3

Re: Grid'e procedure ekleme

VFP9 kullanıyorum hocam. BindEvent() nasıl kullanacağım. Command.click de kodların içinde gridteki header'in click metodunu nasıl yazabilirim.

4

Re: Grid'e procedure ekleme

Header'ı Class yapsan ve kodunu da class'a yazsan

/o---------------------o\
     www.haser.com
\o---------------------o/

5

Re: Grid'e procedure ekleme

Tarkan'in soyledigi gibi kodu zaten biliyorsun, header class kullan. Yine de BindEvent() ornegi:

Visual Fox Pro
Public oForm

oForm = Createobject('myForm')
oForm.Show()
 
Define Class myForm As Form
  DataSession = 2
  Add Object myGrid As Grid With RecordSource = 'customer', Left = 100
 
  Procedure Load
    Use _samples+'data\customer'
  Endproc
 
  Procedure myGrid.Init
    Local ix
    For ix=1 To This.ColumnCount
      Bindevent(This.Columns(m.ix).Header1,'Click',Thisform,'HeaderClick')
    Endfor
  Endproc
 
  Procedure HeaderClick
    Amouseobj(aMo,1)
    Local nWhere,nRelRow, nRelCol, lnColOrder, ix, lcControl
    This.myGrid.GridHitTest(aMo[3],aMo[4],@nWhere,@nRelRow, @nRelCol)
    With This.myGrid
      lnColOrder = .LeftColumn-1+m.nRelCol
      For ix = 1 To .ColumnCount
        If .Columns(m.ix).ColumnOrder = m.lnColOrder
          lcControl = .Columns(m.ix).ControlSource
        Endif
      Endfor
    Endwith
    Set Message To m.lcControl
  Endproc
Enddefine

6 Son düzenleyen, ozcan (25.07.2008 13:56:12)

Re: Grid'e procedure ekleme

Oluşturulan header1 class'ini var olan grid'de kullanmaya/monte etmeye basit/sade bir örnek rica edebilir miyim.

7

Re: Grid'e procedure ekleme

Visual Fox Pro
Public oForm

oForm  = Createobject('myForm')
oForm.Show()
 
Define Class myForm As Form
  DataSession = 2
  Add Object myGrid As Grid
 
  Procedure Load
    Use (_samples+'data\customer')
  Endproc
 
  Procedure Init
    With This.myGrid
      For ix=1 To .ColumnCount
        .Columns(m.ix).RemoveObject('Header1')
        .Columns(m.ix).Newobject('myHeader', 'myHeader')
      Endfor
    Endwith
  Endproc
Enddefine
 
Define Class myHeader As Header
  Procedure Init
    This.Caption = This.Parent.ControlSource
  Endproc
  Procedure Click
    Wait Window Timeout 2 Transform(Evaluate(This.Parent.ControlSource))
  Endproc
Enddefine

VFP9 kullandigina gore Memberclass*  propertylerini de incele.

8

Re: Grid'e procedure ekleme

Burada header degistiren MultiSelectGrid class var.

http://www.universalthread.com/Report.a … 6E725A3731