1

Konu: Shortcut menü sadece 1x çalışıyor

Merhabalar

Aylardır bir sorun yaşıyorum. Daha doğrusu: benim makinemde sorun yok, ama tüm müşterilerde bu sorun var.
Bir grid üzerinde sağ-klik yaparak ve DEFINE POPUP ile yaratığım shortcut-menü'yü çağırıyorum. Sub-menüler içeren birşey.
Sorunsuz açılıyor, sorusuz çalışıyor.
Ama:  İkinci kes sağ-klik bir tepki vermiyor. Form'u kapatıp tekrar açmak lazım.

İşin "güzel" tarafı: benim makinemde böyle bir sorun yok ve bu nedenle bir süredir bulanık suda balık avlar gibi "onu-dene-bunu-dene" yöntemi ile bir yerlere varmaya çalışdım. Denemeler sürüyor smile

Bu denemelerin birsi daha basit bir shortcut menü'yü Vfp'nun IDE 'si ile yaratmak ve onu DO Test.MPR  ile çağırmak idi. Bu durumda sorun ortadan kalkıyor. Ama çok fazla şey değiştirmem gerekiyor ve bu nedenle bu çözüm en son seçenek olarak ortada duruyor.

Grid'in RightClick() event'ında Thisform.babs_ole_rightclick()  isimli bir method çağrıyorum (nedeni: birkaç grid aynı rightclick menüsünü kullandıklar için)



Thisform.babs_ole_rightclick():

Visual Fox Pro
LPARAMETERS COL, ROW

LOCAL cWith, nId_Nr, nGesendet, nKnr_id_nr, nAntw, cTxt, cUnvan, oText
LOCAL cDonem, lExtern, lDoNotReload, nSql, cSql, nRow
LOCAL sMenu, sSil, sMutabakatGeldi, sFaksIleGeldi, sEpostaIleGeldi, sTelefonIleGeldi
 
DEACTIVATE POPUP  sMenu, sSil, sMutabakatGeldi, sFaksIleGeldi, sEpostaIleGeldi, sTelefonIleGeldi
RELEASE    POPUPS sMenu, sSil, sMutabakatGeldi, sFaksIleGeldi, sEpostaIleGeldi, sTelefonIleGeldi  EXTENDED
 
WITH THISFORM.PgFrame.Pg01
  cDonem = .cmbJahr.VALUE + "-" + .cmbMonat.VALUE
ENDWITH
 
STORE 0 TO nId_Nr, nKnr_id_nr, nGesendet, nAntw
 
DEFINE POPUP sMenu SHORTCUT RELATIVE FROM MROW(),MCOL()
DEFINE BAR 1 OF sMenu PROMPT "Sil"
DEFINE BAR 2 OF sMenu PROMPT "Mutabakat geldi"
DEFINE BAR 3 OF sMenu PROMPT "Seç"
ON BAR 1 OF sMenu ACTIVATE POPUP sSil
ON BAR 2 OF sMenu ACTIVATE POPUP sMutabakatGeldi
ON BAR 3 OF sMenu ACTIVATE POPUP sSelect
 
DEFINE POPUP sSil SHORTCUT RELATIVE
DEFINE BAR 1 OF sSil PROMPT "Sadece satırı sil"
DEFINE BAR 2 OF sSil PROMPT "Satırı ve satıcıyı sil"
DEFINE BAR 3 OF sSil PROMPT "Tüm satırları sil"
ON SELECTION BAR 1 OF sSil nAntw = 10 + BAR()
ON SELECTION BAR 2 OF sSil nAntw = 10 + BAR()
ON SELECTION BAR 3 OF sSil nAntw = 10 + BAR()
 
DEFINE POPUP sMutabakatGeldi SHORTCUT RELATIVE
DEFINE BAR 1 OF sMutabakatGeldi PROMPT "Faks ile"
DEFINE BAR 2 OF sMutabakatGeldi PROMPT "Eposta ile"
DEFINE BAR 3 OF sMutabakatGeldi PROMPT "Telefon ile"
DEFINE BAR 4 OF sMutabakatGeldi PROMPT "Sıfırla"
ON BAR 1 OF sMutabakatGeldi ACTIVATE POPUP sFaksIleGeldi
ON BAR 2 OF sMutabakatGeldi ACTIVATE POPUP sEpostaIleGeldi
ON BAR 3 OF sMutabakatGeldi ACTIVATE POPUP sTelefonIleGeldi
ON SELECTION BAR 4 OF sMutabakatGeldi nAntw = 20 + BAR()
 
 
DEFINE POPUP sFaksIleGeldi SHORTCUT RELATIVE
DEFINE BAR 1 OF sFaksIleGeldi PROMPT "Mutabıkız"
DEFINE BAR 2 OF sFaksIleGeldi PROMPT "Mutabık değiliz"
ON SELECTION BAR 1 OF sFaksIleGeldi nAntw = 30 + BAR()
ON SELECTION BAR 2 OF sFaksIleGeldi nAntw = 30 + BAR()
 
DEFINE POPUP sEpostaIleGeldi SHORTCUT RELATIVE
DEFINE BAR 1 OF sEpostaIleGeldi PROMPT "Mutabıkız"
DEFINE BAR 2 OF sEpostaIleGeldi PROMPT "Mutabık değiliz"
ON SELECTION BAR 1 OF sEpostaIleGeldi nAntw = 40 + BAR()
ON SELECTION BAR 2 OF sEpostaIleGeldi nAntw = 40 + BAR()
 
DEFINE POPUP sTelefonIleGeldi SHORTCUT RELATIVE
DEFINE BAR 1 OF sTelefonIleGeldi PROMPT "Mutabıkız"
DEFINE BAR 2 OF sTelefonIleGeldi PROMPT "Mutabık değiliz"
ON SELECTION BAR 1 OF sTelefonIleGeldi nAntw = 50 + BAR()
ON SELECTION BAR 2 OF sTelefonIleGeldi nAntw = 50 + BAR()
 
DEFINE POPUP sSelect SHORTCUT RELATIVE
DEFINE BAR 1 OF sSelect PROMPT "Gönderilmeyenleri seç"
DEFINE BAR 2 OF sSelect PROMPT "Cevap vermeyenleri seç"
ON SELECTION BAR 1 OF sSelect nAntw = 60 + BAR()
ON SELECTION BAR 2 OF sSelect nAntw = 60 + BAR()
 
*-------------------
ACTIVATE POPUP sMenu
 
Burdan itibaren nAntw isimli değişken analiz ediliyor ve gereken method'lar çağrılıyor.

Hatamı veya çözümü gören varmı?

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

2

Re: Shortcut menü sadece 1x çalışıyor

Bulanik suya bir olta da benden smile

m.Antw orada local degisken. nAntw = ... yerine do SomeFunction with ( 20 + Bar() ) gibi denesen -hatta Bar() bile fazla, neden 21, 22, ... degil de 20 + bar()- ?

Ben de bunun benzerini yapiyorum ve asla .mpr kullanmiyorum ve gayet guzel calisiyor her yerde (musterilerin OS cesitliligi malum). Asagidaki kod FoxyClasses Grids.vcx'in MultiSelectGrid.TextBoxShortcutMenu kodu mesela:

Visual Fox Pro
Lparameters toObj

Local loGrid
loGrid = this
DEFINE POPUP shortcut SHORTCUT RELATIVE FROM MROW(),MCOL()
DEFINE BAR 1 OF shortcut PROMPT "Filter on this value"
DEFINE BAR 2 OF shortcut PROMPT "Filter excluding this value"
DEFINE BAR 3 OF shortcut PROMPT "Filter on selected"
DEFINE BAR 4 OF shortcut PROMPT "Filter on not selected"
DEFINE BAR 5 OF shortcut PROMPT "Clear Filter"
DEFINE BAR 6 OF shortcut PROMPT "Select all"
DEFINE BAR 7 OF shortcut PROMPT "Unselect all"
DEFINE BAR 8 OF shortcut PROMPT "Revert selection"
ON BAR 1 OF shortcut ACTIVATE POPUP filteronth
ON BAR 2 OF shortcut ACTIVATE POPUP filterexcl
 
ON SELECTION BAR 3 OF shortcut loGrid.FilterSelection(.T.)
ON SELECTION BAR 4 OF shortcut loGrid.FilterSelection()
ON SELECTION BAR 5 OF shortcut loGrid.ClearFilter()
ON SELECTION BAR 6 OF shortcut toObj.Keypress(asc('+'),0)
ON SELECTION BAR 7 OF shortcut toObj.Keypress(asc('-'),0)
ON SELECTION BAR 8 OF shortcut toObj.Keypress(asc('*'),0)
 
DEFINE POPUP filteronth SHORTCUT RELATIVE
DEFINE BAR 1 OF filteronth PROMPT "Starts with"
DEFINE BAR 2 OF filteronth PROMPT "Exact value"
ON SELECTION BAR 1 OF filteronth loGrid.FilterOnValue(toObj)
ON SELECTION BAR 2 OF filteronth loGrid.FilterOnValue(toObj,.T.)
 
DEFINE POPUP filterexcl SHORTCUT RELATIVE
DEFINE BAR 1 OF filterexcl PROMPT "Starts with"
DEFINE BAR 2 OF filterexcl PROMPT "Exact value"
ON SELECTION BAR 1 OF filterexcl loGrid.FilterOnValue(toObj,.F.,.T.)
ON SELECTION BAR 2 OF filterexcl loGrid.FilterOnValue(toObj,.T.,.T.)
 
ACTIVATE POPUP shortcut

3 Son düzenleyen, Mehmet K (13.08.2014 12:26:52)

Re: Shortcut menü sadece 1x çalışıyor

Merhaba Çetin

Denemem biraz uzun sürebilir. Çünkü dediğim gibi benim makinede bir sorun yok. İlgin için teşekkürler.

cetinbasoz yazdı:

(...)hatta Bar() bile fazla, neden 21, 22, ... degil de 20 + bar()- ?


Çünkü sub-menüler zaman içinde yer değiştirebiliyorlar  ... renumbering ile uğraşmak istemediğim için.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

4

Re: Shortcut menü sadece 1x çalışıyor

Ben de yer degistirseler bile unique ID'leri olur diye oyle soylemistim halbuki smile

5

Re: Shortcut menü sadece 1x çalışıyor

Çetin:
1. Harikasın
2. Senden korkulur
Ama bu çok silik kalıyor. Lisan değiştirelim: god damn you're really bad
smile

Düzeldi!  \o/

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.