1

Konu: Grid üzerinde sağ tık.

Formda kullandığım grid üzerinde sağ tık yaparak bir "shortcut" açmak istiyorum.  "Right click event" ine kod yazdığım zaman bu sadece boş satırlarda iş görüyor. record üzerinde hiçbir event'i  çalıştıramıyorum. Bu eski forumda vardı. Ama bende iş yok. İnsan arşivler. Onun için tekrar sıkılarak soruyorum.

Şimdiden Teşekküer ederim.

2

Re: Grid üzerinde sağ tık.

BINDEVENT() komutunu yardımdan incele

asagidaki ornekte gridin hangi textbox ina rightclick yaparsan yap formdaki ColRightClick method unu cagiriyor

Visual Fox Pro
* form init

FOR EACH loColumn IN THIS.Grid.Columns
BINDEVENT(loColumn.text1,"Rightclick",THIS,"ColRightClick")
ENDFOR
http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

3

Re: Grid üzerinde sağ tık.

"loColumn" degeri nin yerine ne yazılması gerektiğinide belirtirsen sevinirim. Sanırım kolon adı değil

4

Re: Grid üzerinde sağ tık.

bir şey yazmaya gerek yok o anlik tanımlanan ve kullanilan bir degisken o yuzden bu kod oylece calisir

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

5

Re: Grid üzerinde sağ tık.

Çok uğraştım ama

FOR EACH loColumn IN THISform.Grid1.Columns
BINDEVENT(loColumn.text1,"Rightclick",THIS,"ColRightClick")
ENDFOR

da "ColRightClick" i bulamıyor. acaba vfp 8 kullandığım içinmidir.

6

Re: Grid üzerinde sağ tık.

Konuyu düzeltiyorum. Gridlerdeki hiç bir method u çalıştıramıyorum. Hiçbir komutta hata vermiyor. Ama çalışmıyorda. Sanırım Soykana (affına sığınarak) gönderdiğim karikatür gerçek olmak üzere.

7

Re: Grid üzerinde sağ tık.

Gökçe Özçınar yazdı:

Çok uğraştım ama

FOR EACH loColumn IN THISform.Grid1.Columns
BINDEVENT(loColumn.text1,"Rightclick",THIS,"ColRightClick")
ENDFOR

da "ColRightClick" i bulamıyor. acaba vfp 8 kullandığım içinmidir.


burada anlatilan Grid te sag click yapinca cagirilacak method tur
ColRightClick te formda olan bir method ve burada ona gonderme yapiliyor

kısaca gridte sag click yapinca calistirmayi istedigin methodu calistirmis oluyorsun, gridteki her textbox a komut yazmaktan kurtuluyorsun ....

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

8

Re: Grid üzerinde sağ tık.

Gökçe Özçınar yazdı:

Konuyu düzeltiyorum. Gridlerdeki hiç bir method u çalıştıramıyorum. Hiçbir komutta hata vermiyor. Ama çalışmıyorda. Sanırım Soykana (affına sığınarak) gönderdiğim karikatür gerçek olmak üzere.


bana karikatur gelmedi...

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

9

Re: Grid üzerinde sağ tık.

Public oForm
oForm = Createobject('myForm')
oForm.Show()

Define Class myForm As Form
    DataSession = 2
    Add Object myGrid As Grid With RecordSource = 'customer'

    Procedure Load
        Use _samples+'data\customer'
    Endproc

    Procedure myGrid.Init
        Local ix
        With This
            For ix=1 To .ColumnCount
                Bindevent(.Columns(m.ix).Text1,'RightClick',This,'RightClick')
            Endfor
        Endwith
    ENDPROC
   
    PROCEDURE myGrid.RightClick
    WAIT WINDOW NOWAIT TRANSFORM(EVALUATE(this.recordsource+'.'+varread()))
    endproc
Enddefine

10

Re: Grid üzerinde sağ tık.

Eğer grid içinde herhangi bir değişiklik yaptırmayacaksan AllowCellSelection = .F. yap ondan sonra grid içindeki Event'leri kullanabilirsin.