Search  
Friday, February 10, 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  Meniuri si generatoare de meniuri  Primul meniu...
 Primul meniu
 
 12/4/2009 10:04:34 AM
User is offlinedcristut
99 posts


Primul meniu
 (N/A)
Buna ziua, Poate e ciudat dar n-am folosit NICIODATA meniurile (pana acum) ci numai butoane prin formuri :( E momentul sa folosesc unul si va rog sa ma ajutati la niste probleme de care ma lovesc: 1. generez meniul + do .mpr + read events. in optiunea de Gata pun Clear Events; buun: ce trebuie sa fac sa-mi reapara meniul standard VFP ? 2. am doua paduri de meniu la care ar trebui sa se deschida un submeniu cu ANUMITE inregistrari dintr-o tabela (gen prompt field denumire dar cu un set filter inainte). Daca fac o procedura in care sa definesc popup-ul am doua probleme: popupul nu se aliniaza sub padul corespunzator si doi: el ramane activ dupa ce selectez o optiune !? 3. structura popup-urilor de care vorbeam la pct. 2 e dinamica, deci o data ele contin un set de optiuni, a doua oara pot contine altceva din tabela Probabil ca mai sunt si altele dar nici nu stiu cat nu stiu :) Multumesc
 12/4/2009 10:51:34 AM
User is offlinenae racaru
714 posts
www.rarom.ro
1st




Re: Primul meniu
 (Romania) Modified By nae racaru  on 12/4/2009 10:53:28 AM)
1. Set sysmenu to default
2. Prin comanda

Define popup nume_popup from pozitie_verticala,pozitie_orizontala

poti pozitiona popupul unde vrei
Ca sa dispara popupul la selectare

On selection popup numepopup deactivate popup numepopup

3. Definesti de fiecare data barurile popupului

Edit:
Piei drace asta e postul meu 666 :)

VFP 6 si 9 + Oracle
 12/4/2009 11:08:34 AM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A) Modified By dcristut  on 12/4/2009 11:50:17 AM)
Multumesc, dar: eu nu vreau sa-mi dispara popupul ci sa execute ceva SI sa dispara. Mai patesc ceva: desi lansez o forma modala, meniul ramane activ, deci pot da si alte comenzi, contrar a ceea ce scrie in documentatie, cred Dan
 12/4/2009 2:21:01 PM
User is offlineedyshor
1450 posts
1st




Re: Primul meniu
 (N/A)
daca ai un pic de timp la dispozitie iti recomand sa arunci un ochi aici: http://vfpx.codeplex.com/wikipage?title=OOP%20Menu%20Project
 12/4/2009 2:40:18 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A) Modified By dcristut  on 12/4/2009 2:41:38 PM)
Multumesc, am downloadat proiectul si o sa ma uit pe el. Ideea este, ca pe moment, NU imi trebuie ceva deosebit: un main.prg care sa faca niste setari + do menu.mpr + read events. In menu vreau sa lansez niste proceduri (evident:)) care sa-mi afiseze popupuri cu bar dintr-o tabela, etc... Ma lovesc de problema ca: desi am o forma modala, pot in continuare accesa meniul. Astfel, in procedura din meniu am Use Vasile + declare popup Gogu prompt field denumire + activate popup Gogu; evident ca la a doua lansare imi spune ca Vasile e deschis deja si am inceput sa fac cu nervii. A doua treaba era ca si popupul ramane activ, dupa ce selectez un bar... off ( in sensul de of of vai, vai nu de on-off)
 12/4/2009 3:32:00 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
 dcristut wrote
Multumesc, am downloadat proiectul si o sa ma uit pe el. Ideea este, ca pe moment, NU imi trebuie ceva deosebit: un main.prg care sa faca niste setari + do menu.mpr + read events. In menu vreau sa lansez niste proceduri (evident:)) care sa-mi afiseze popupuri cu bar dintr-o tabela, etc... Ma lovesc de problema ca: desi am o forma modala, pot in continuare accesa meniul. Astfel, in procedura din meniu am Use Vasile + declare popup Gogu prompt field denumire + activate popup Gogu; evident ca la a doua lansare imi spune ca Vasile e deschis deja si am inceput sa fac cu nervii. A doua treaba era ca si popupul ramane activ, dupa ce selectez un bar... off ( in sensul de of of vai, vai nu de on-off)


E normal ca popu-ul sa ramana activ dupa ce selectezi un bar, iar la a doua lansare sa-ti spuna ca exista deja, daca nu mai ai si alt cod in procedura din menu.
Codul ar fi cam asa:

Use Vasile in (select('vasile'))
declare popup Gogu prompt field denumire
On selection popup gogu Deactivate popup && asta ti s-a spus in primul raspuns pe care l-ai primit, dar nu l-ai luat in seama ...
activate popup Gogu
release popup gogu

Menu-ul apare enabled cand se lanseaza o forma modala, dar submenu-urile sunt disabled. Asta, daca nu definesti popup-urile in procedura ON SELECTION PAD.
Fara codul concret, e doar de ghicit ce ai facut acolo.

Daniel Buduru
 12/4/2009 3:58:23 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A)
Am luat in seama ce mi s-a spus in primul raspuns dar eu vreau sa fac altceva pe un bar decat sa dezactivez popup-ul. Di cate inteleg (poate gresit), popupul asta se activeaza si selectia unei optiuni il dezactiveaza, OK dar ar mai trebui sa faca si alte lucruri. Dupa cum ziceam, e prima data cand lucrez cu meniuri si SIGUR nu inteleg eu ceva esential sau modul meu vechi de lucru nu e adaptat la lucrul cu meniuri. Multumesc de sfaturi
 12/4/2009 4:06:52 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
Si e greu sa incerci codul ?
Dupa ACTIVATE POPUP popup-ul ramane vizibil, iar executia procedurii se suspenda.
Acel "altceva" pe care vrei sa il faci pe un bar decat sa dezactivezi popup-ul nu se se va intampla pana ce executia programmului nu se reia
ON SELECTION POPUP DEACTIVATE POPUP ... face ca, dupa ce s-a selectat ceva din popup, popup-ul sa fie dezactivat si executia programului sa se reia cu comanda imediat urmatoare dupa ACTIVATE POPUP.


Daniel Buduru
 12/4/2009 4:15:27 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A)
Crede-ma ca de ieri tot incerc la coduri de nu mai stiu ce-i bine si ce nu. Zici ca: definesc popupul, definesc on selection popup deactivate popup, fac activate popup si, dupa activate popup pot sa pun secventa utila de program... aha, acu incerc treaba asta si vad care va fi urmatorul obstacol dupa asta :) Multumesc
 12/4/2009 4:30:10 PM
User is offlineedyshor
1450 posts
1st




Re: Primul meniu
 (N/A)
parctic, "activate popup" il afiseaza si "deactivate popup" il ascunde,
cat e afisat nu se executa comanda (se comporta ca un form modal daca vrei)
cand dai click pe un bar, tine minte comanda setata la "on selection bar" dar nu o executa decat dupa "deactivate popup"

cred ca asta era ideea .. anyway, mai arunca un ochi aici http://tinyurl.com/vfp-menu-in-hackers-guide
 12/4/2009 4:39:00 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
Comanda ON SELECTION BAR  dezactiveaza popup-ul, dar nu e aplicabila la un  popup definit cu PROMPT FIELD ...


Daniel Buduru
 12/4/2009 5:37:15 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A) Modified By dcristut  on 12/4/2009 5:51:17 PM)
Sigur ceva inteleg eu. ia uite aici un test (VFP 9.0 SP2): daca faci Do Test, poti lansa forma MODALA test ori de cate ori vrei (selectezi optiuni de meniu). Problema am rezolvat-o cumva cu Metoda Load a formei (acum e comentata) Dan P.S. Am uploadat o arhiva cu micul exemplu dar vad ca nu merge; imi da o eroare
test.zip 
 12/4/2009 5:57:58 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
Uploadul nu functioneaza de multisor. Pune aici codul din menu.mpr.
In lipsa codului, nu se poate sti ce faci acolo si ce nu merge.

Daniel Buduru
 12/4/2009 5:59:57 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A)
Testul contine un meniu, un program, o tabela si o forma
 12/4/2009 6:02:39 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
Incearca sa descarci testul si sa-l rulezi. Pe cel descarcat de pe forum, nu pe cel pe care il ai deja in calculator.

Daniel Buduru
 12/4/2009 6:04:39 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A)
Am vazut ca fisierul trimis de mine e gol dar ce voiam sa zic este ca nu pot include in corpul mesajului toate elementele (cele 4) testului
 12/4/2009 6:06:32 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
Am zis sa pui doar codul din menu.mpr.
Dar deja am obosit sa repet de doua ori fiecare lucru ...

Daniel Buduru
 12/4/2009 6:07:53 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A)
SET SYSMENU TO SET SYSMENU AUTOMATIC DEFINE PAD _2t50yw8uh OF _MSYSMENU PROMPT "Fructe" COLOR SCHEME 3 ; KEY ALT+F, "" DEFINE PAD _2t50yw8ui OF _MSYSMENU PROMPT "Legume" COLOR SCHEME 3 ; KEY ALT+L, "" DEFINE PAD _2t50yw8uj OF _MSYSMENU PROMPT "Gata" COLOR SCHEME 3 ; KEY ALT+G, "" ON SELECTION PAD _2t50yw8uh OF _MSYSMENU Do SelMenu With 'F' ON SELECTION PAD _2t50yw8ui OF _MSYSMENU Do Selmenu With 'L' ON SELECTION PAD _2t50yw8uj OF _MSYSMENU Clear Events
 12/4/2009 6:23:45 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
Ne-am lamurit.
Menu-ul sistem - e vorba de menu bar - nu e inhibat la lansarea unui form modal.
In mod normal, fiecare pad din menu are asociat un popup, din care se aleg optiunile.
Aceste popup-uri sunt inhibate in cazul unui form modal.
Comanda lansata direct din pad, desi este posibila, nu este in ideea in care a fost facut vfp si nu functioneaza asa cum te astepti.
Fie asociezi popup-uri fiecarui pad, chiar si cu un singur bar, fie scrii cod care sa dezactiveze menu-ul sistem cand lansezi un form modal.




Daniel Buduru
 12/4/2009 6:33:01 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A) Modified By dcristut  on 12/4/2009 6:34:59 PM)
Pai tocmai asta face procedura asociata padurilor(Selmenu) : defineste un popup cu mai multe optiuni (de aia tineam eu la test.zip cu toate componentele). Nu pot (sau nu stiu eu) defini direct popupurile deoarece nu sunt formate din bare gen define bar, cu un on selection bar, etc... ci sunt rezultate dintr-o tabela (gen define popup prompt field denumire). In procedura Selmenu se deschide tabela, se defineste popupul prompt field denumire, on selection popup deactivate popup (dupa cum bine m-ai invatat) si apoi inchid tabela. Asta-i problema mea (pana acum)
 12/4/2009 6:34:19 PM
User is offlineedyshor
1450 posts
1st




Re: Primul meniu
 (N/A)
Define Popup lala from MROW(), MCOL() shortcut
Define Bar 1 of lala prompt "X1"
Define Bar 2 of lala prompt "X2"
Define Bar 3 of lala prompt "X3"
Define Bar 4 of lala prompt "close"
On Selection Bar 1 of lala wait window nowait "s-a ales 1"
On Selection Bar 2 of lala wait window nowait "s-a ales 2"
On Selection Bar 3 of lala wait window nowait "s-a ales 3"
On Selection Bar 4 of lala deactivate popup lala

Activate Popup lala
Wait Window "after"


Nu dezactiveaza popup-ul, desi ar avea mai mult sens sa fie asa ..
Iar de prompt field nu stiu nimic asa ca ma retrag :)

Later : il dezactiveaza daca mai pui un "shortcut" in "define popup .." - l-am mai folosit undeva unde se dezactiva la selectie :)
 12/4/2009 6:39:17 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A) Modified By dcristut  on 12/4/2009 6:39:55 PM)
Sa zicem ca am o tabela cu liste: denumire si apoi o mie si unu parametri (gen SCX pt.forme). fac un popup prompt field denumire ca sa selectez lista si apoi, functie de parametri, execut un report sau altul (e un exemplu). Deci procedura din padul meniului trebuie sa faca ceva de genul: Use Liste Define popup SelLista Prompt Field Denumire On selection Popup SelLista Desctivate Popup Activate Popup SelLista * vezi ce lista am selectat (apropo: ce fac daca am facut click LANGA popup) si DO PROCEDURA_LISTARE with lista_crt Use In Liste Multumesc
 12/4/2009 6:44:09 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A) Modified By Daniel Buduru  on 12/4/2009 6:48:26 PM)
 dcristut wrote
Pai tocmai asta face procedura asociata padurilor(Selmenu) : defineste un popup cu mai multe optiuni (de aia tineam eu la test.zip cu toate componentele). Nu pot (sau nu stiu eu) defini direct popupurile deoarece nu sunt formate din bare gen define bar, cu un on selection bar, etc... ci sunt rezultate dintr-o tabela (gen define popup prompt field denumire). In procedura Selmenu se deschide tabela, se defineste popupul prompt field denumire, on selection popup deactivate popup (dupa cum bine m-ai invatat) si apoi inchid tabela. Asta-i problema mea (pana acum)


Un form modal inhiba popurile definite inainte de instantierea formului si nu are nici un efect asupra celor definite dupa instantiere. Daca definesti popup-urile in acea procedura apelata la on selection pad, ele vor fi redefinite la fiecare accesare a menu-ului, deci dupa instantierea formului modal, deci vor fi active.
Poti scrie o procedura care sa genereze popurile din acea tabela, si asta la instantierea menu-ului.
Ex:

ON SELECTION PAD pad1 OF _msysmenu ACTIVATE POPUP P1
define popup p1 margin relative
use tabela
scan all
define bar (recno()) of p1 prompt tabela.denumire
endscan
scan all
lccomanda=tabela.comanda
on selection bar (recno()) of p1 &lccomanda
endscan

Pui un astfel de cod in menu.mpr, imediat dupa definitia menu-ului bar.


Mai poti face si altfel:
Defineste cate un popup (submenu) pentru fiecare pad din menu. Pune acolo comanda asociata padului (do selmenu with ...)
In felul acesta, submenu-ul va fi inhibat la lansarea unui form modal.


Daniel Buduru
 12/4/2009 6:51:59 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
 dcristut wrote
...
apropo: ce fac daca am facut click LANGA popup
...
 


Vezi in help functia BAR

IF BAR()<1
    && nu s-a selectat nimic, s-a inchis cu ESC sau click alaturi
    RETURN
ENDIF

Daniel Buduru
 12/4/2009 6:56:17 PM
User is offlinedcristut
99 posts


Re: Primul meniu
 (N/A) Modified By dcristut  on 12/4/2009 6:57:16 PM)
O sa incerc varianta a doua, aia cu submeniurile, pare interesanta... dar asta va insemna sa am sub meniu o bara de popup care la selectare sa-mi afiseze un alt popup, asa-i? (o sa testez) Prima varianta nu merge pentru ca, de ex., pot defini in cursul sesiunii curente o lista noua (ca sa raman la exemplul dat) si apoi acea lista va trebui sa fie accesibila din meniu, fapt ce nu functioneaza daca definirea popupului se face la instantierea meniului (cand noua inregistrare nu exista in tabela). Nu stiam treaba aia cu Bar()<1 multzam Multumesc inca o data
 12/4/2009 7:02:54 PM
User is offlineDaniel Buduru
2141 posts
1st




Re: Primul meniu
 (N/A)
 edyshor wrote
Define Popup lala from MROW(), MCOL() shortcut
Define Bar 1 of lala prompt "X1"
Define Bar 2 of lala prompt "X2"
Define Bar 3 of lala prompt "X3"
Define Bar 4 of lala prompt "close"
On Selection Bar 1 of lala wait window nowait "s-a ales 1"
On Selection Bar 2 of lala wait window nowait "s-a ales 2"
On Selection Bar 3 of lala wait window nowait "s-a ales 3"
On Selection Bar 4 of lala deactivate popup lala

Activate Popup lala
Wait Window "after"


Nu dezactiveaza popup-ul, desi ar avea mai mult sens sa fie asa ..
Iar de prompt field nu stiu nimic asa ca ma retrag :)

Later : il dezactiveaza daca mai pui un "shortcut" in "define popup .." - l-am mai folosit undeva unde se dezactiva la selectie :)


Subiectul discutiei a fost un pic amestecat ...
ON SELECTION BAR dezactiveaza un submenu al unui menu sistem. Intrucat discutia a pornit de la menu-ul sistem, fara prea multe precizari - abia dupa postarea codului s-a vazut ca popup-urile nu erau submenu-uri - am spus ca si ON SELECTION PAD dezactiveaza menu-ul.
Desi nu au atributul SHORTCUT, popup-urie activate de _msysmenu la ON PAD se comporta la fel, se dezactiveaza la selectie.


Daniel Buduru
  Visual FoxPro  Meniuri si generatoare de meniuri  Primul meniu...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement