Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Cod, sintaxa si comenzi  Open last item ...
 Open last item menu
 
 4/28/2011 6:45:29 PM
User is offlineDumitru
172 posts
5th


Open last item menu
 (N/A)
Dupa executia procedurii sau formei din "frunza" unui meniu vreau ca pop-urile meniului sa ramana deschise pana la ultima selectie.
Nu stiu cum fac asta fara a introduce cod in fiecare procedura, functie sau forma apelata.
Multumesc

VFP7 si meniul este in _SCREEN
(Zicea cineva aici ca daca meniul este prea stufos zapacesti utilizatorii, eu am reusit) :)
 4/28/2011 7:51:20 PM
User is offlinedanilea
212 posts
4th


Re: Open last item menu
 (N/A)
Hristos a Inviat,
Eu am procedat astfel:
1.Am o clasa proprie Clasa_Form. In Clasa_Form.Load am pus codul:
PUSH MENU _MSYSMENU
DO salvez_meniu IN uti_proc
2.In Clasa_Form.Unload am pus codul:
DO restaurez_meniu IN uti_proc
3.In Uti_proc am pus codul:
*
Procedure SALVEZ_MENIU
&& Salvez ultimul meniu activ
m_popup=""
m_bar =0
m_prompt =""
m_popup = Popup()
m_bar = Bar()
m_prompt = Prompt()
Return
Endproc

*
Procedure RESTAUREZ_MENIU
&& Restaurez ultimul meniu activ
POP MENU _msysmenu
IF !EMPTY(m_popup).and.m_bar>0
ACTIVATE POPUP (m_popup) Bar (m_bar)
ENDIF
Return
 4/29/2011 1:09:54 AM
User is offlineDumitru
172 posts
5th


Re: Open last item menu
 (N/A) Modified By Dumitru  on 4/29/2011 1:16:40 AM)
Adevarat a inviat!
Multumesc, e buna ideea, intre timp am gasit si eu o solutie.
Am inlocuit (de exemplu)
ON BAR 1 OF padName DO FORM form1
cu
ON BAR 1 OF padName DO actionMenu with "DO FORM form1", "DA-4"
si am facut

PROCEDURE actionMenu
PARAMETERS sCda, sKeys
_SCREEN.sKeys = sKeys
&sCda
ENDPROC

Meniul se gaseste intr-o tabela si mi-a fost usor sa adaug campul sKeys care contine tastele care trebuie apasate pentru a se activa popup-ul.
In "DA-4" :
- 'DA' sunt Keystroke ("\- 4 - numarul de KEYBOARD "{DNARROW}" pentru a ajunge la item

Dupa intoarcerea din form1 intr-o bucla infinita am

CLEAR TYPEAHEAD
m.P_Tree = _SCREEN.sKeys
IF !EMPTY(m.P_Tree)
    m.poz = AT("-", m.P_Tree)
   IF m.poz>1
      m.str1 = LEFT(m.P_tree, m.poz-1)
      m.no1 = VAL(SUBSTR(m.P_Tree, m.poz+1))
   ELSE
      IF m.poz=0
        m.str1 = m.P_Tree
        m.no1 = 0
      ELSE
        m.str1 = ""
        m.no1= 0
      ENDIF
   ENDIF
   FOR I=1 TO LEN(m.str1)
      mtasta = SUBSTR(m.str1,i,1)
      KEYBOARD tasta
   ENDFOR
   FOR i=1 TO m.no1
      KEYBOARD "{DNARROW}"
   ENDFOR
ENDIF
_SCREEN.sKeys = ""
ACTIVATE MENU menu1


Revenind la ideea ta, in PROCEDURE restaurez_meniu ai
ACTIVATE POPUP (m_popup) Bar (m_bar)
Daca pop-ul este intr-un tree de pop-uri, devin vizibile si pop-urile parinte ?
Te intreb pentru ca mi se pare mai eleganta metoda ta.

[offtopic]
Scuze moderatorilor pentru ca nu am postat in sectiunea "Meniuri si generatoare de meniuri"
 4/29/2011 1:17:35 PM
User is offlineIrinel Leica
126 posts
5th


Re: Open last item menu
 (N/A)
 danilea wrote
Hristos a Inviat,
Eu am procedat astfel:
1.Am o clasa proprie Clasa_Form. In Clasa_Form.Load am pus codul:
PUSH MENU _MSYSMENU
DO salvez_meniu IN uti_proc
2.In Clasa_Form.Unload am pus codul:
DO restaurez_meniu IN uti_proc
3.In Uti_proc am pus codul:
*
Procedure SALVEZ_MENIU
&& Salvez ultimul meniu activ
m_popup=""
m_bar =0
m_prompt =""
m_popup = Popup()
m_bar = Bar()
m_prompt = Prompt()
Return
Endproc

*
Procedure RESTAUREZ_MENIU
&& Restaurez ultimul meniu activ
POP MENU _msysmenu
IF !EMPTY(m_popup).and.m_bar>0
ACTIVATE POPUP (m_popup) Bar (m_bar)
ENDIF
Return
Intr-o aplicatie am exact secventa de cod pentru revenirea la meniul anterior descrisa mai sus ( difernta consta in dezactivarea meniului cu SET SKIP ...), numai ca intimpin o problema ciudata si anume la restaurare meniul se activeaza cu o unitate mai putin atit popupul cit si barul meniului. Parametri se transmit bine dar totusi nu vrea sa revina la meniul care ar trebui, aveti ceva ideii de unde ar putea fi.
 4/29/2011 7:16:22 PM
User is offlineDumitru
172 posts
5th


Re: Open last item menu
 (N/A)
Probabil de la SET SKIP OF MENU daca item-ul care activa ultimul popup nu mai poate fi activ
 5/2/2011 2:03:17 PM
User is offlineIrinel Leica
126 posts
5th


Re: Open last item menu
 (N/A)
 Dumitru Echim wrote
Probabil de la SET SKIP OF MENU daca item-ul care activa ultimul popup nu mai poate fi activ
Am incercat si fara comanda aceasta, tot asa imi face.
 5/2/2011 3:36:47 PM
User is offlineDumitru
172 posts
5th


Re: Open last item menu
 (N/A) Modified By Dumitru  on 5/2/2011 3:37:46 PM)
Procedure SALVEZ_MENIU
&& Salvez ultimul meniu activ
m_popup=""
m_bar =0
m_prompt =""
m_popup = Popup()
m_bar = Bar()
m_prompt = Prompt()
WAIT WINDOW "Popup:"+m_popup+" BAR:"+ ALLTRIM(STR(m_bar,10)) + " PROMPT:"+ m_prompt
Return
Endproc
Asa o sa vezi daca m_popup si m_bar retin valorile care trebuie pentru popup() su bar()

In RESTAUREZ_MENU
faci acelasi lucru inainte de ACTIVATE POPUP (m_popup) BAR (m_bar)
 5/3/2011 12:08:08 PM
User is offlineIrinel Leica
126 posts
5th


Re: Open last item menu
 (N/A) Modified By Irinel Leica  on 5/3/2011 12:08:34 PM)
De verificat am verificat (am scris si mai sus si parametri se transmit ok) dar nu-mi pot da seama de ce comanda procedeaza astfel, unde as mai putea cauta motivul?
 5/4/2011 10:32:24 PM
User is offlineDumitru
172 posts
5th


Re: Open last item menu
 (N/A)
La ACTIVATE POPUP (m_popup) BAR (m_bar), cu m.popup, m.bar verificate el activeaza alt popup (parintele lui) ?
Ciudat
  Visual FoxPro  Cod, sintaxa si comenzi  Open last item ...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement