Search  
Tuesday, May 22, 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  Shortcut menu...
 Shortcut menu
 
 8/18/2006 12:37:34 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Shortcut menu
 (Romania)

Nu pricep ceva, domnilor. Poate ma ajuta cineva.

Incerc sa-mi extind clasele din framework, adaugand la toate controalele care permit editarea textului un shortcut menu de genul Copy, Paste, Select All, etc. Executarea menului e simpla - in .RightClick am un DO EditShortcutMenu.mpr.

Am atasat meniul in acest mesaj. Merge bine, dar face ceva curios: Daca fac right click pe un textbox, desi clipboardul este gol (sunt sigur in privinta asta), optiunea Paste este activa. Daca o selectez, nu face nimic. In schimb, optiunea Paste din meniul Edit (ala din bara de meniuri) este inactiva.

Care-i diferenta? de ce una merge bine si cealalta nu? Stie cineva?


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 8/18/2006 1:02:23 PM
User is offlineAdrian Gerlan
581 posts
1st




Re: Shortcut menu
 (Romania)
La mine apare meniul paste activ in amandoua partile, cu toate ca ?EMPTY(_CLIPTEXT) = .t.
Poate ar trebui sa folosesti skip for EMPTY(_CLIPTEXT)=.t. in definitia meniului.




AdiG
 8/18/2006 1:29:23 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Shortcut menu
 (Romania)
Nu - ar trebui sa fie gestionat de VFP. Restarteaza Foxu' si mai incearca meniul o data....
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 8/21/2006 11:41:35 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Shortcut menu
 (Romania) Modified By Grigore Dolghin  on 8/21/2006 11:45:18 AM)

Se pare ca e un bug. Daca shortcut meniul este definit in Init-ul formului, merge bine:

PUBLIC oform1
oform1
=NEWOBJECT("form1")
oform1.Show
RETURN

DEFINE CLASS
form1 AS form
   Top
= 0
   
Left = 0
   
Height = 201
   
Width = 312
   
DoCreate = .T.
   
Caption = "Form1"

ADD OBJECT edit1 AS editbox WITH ;
   
Height = 80, ;
   
Left = 26, ;
   
Top = 14, ;
   
Width = 259, ;
   
Value = 'Shortcut works properly here' + chr(13) + ;
   
'But the shortcut is not display on cursor position'

ADD OBJECT
edit2 AS editbox WITH ;
   
Height = 80, ;
   
Left = 26, ;
   
Top = 106, ;
   
Width = 259, ;
   
Value = 'Shortcut does not work properly here' + chr(13) + ;
   
'The shortcut is display on cursor position'

PROCEDURE DefinePopup
   
DEFINE POPUP FoxShortcutMenu SHORTCUT RELATIVE FROM MROW(),MCOL()
   
DEFINE BAR _med_undo OF foxshortcutmenu PROMPT "\<Undo" ;
      
KEY CTRL+Z, "Ctrl+Z"
   
DEFINE BAR _med_redo OF foxshortcutmenu PROMPT "Re\<do" ;
      
KEY CTRL+R, "Ctrl+R"
   
DEFINE BAR _med_sp100 OF foxshortcutmenu PROMPT "\-"
   
DEFINE BAR _med_cut OF foxshortcutmenu PROMPT "Cu\<t" ;
      
KEY CTRL+X, "Ctrl+X"
   
DEFINE BAR _med_copy OF foxshortcutmenu PROMPT "\<Copy" ;
      
KEY CTRL+C, "Ctrl+C"
   
DEFINE BAR _med_paste OF foxshortcutmenu PROMPT "\<Paste" ;
      
KEY CTRL+V, "Ctrl+V"
   
DEFINE BAR _med_pstlk OF foxshortcutmenu PROMPT "Paste \<Special..."
   
DEFINE BAR _med_clear OF foxshortcutmenu PROMPT "Cle\<ar"
   
DEFINE BAR _med_sp200 OF foxshortcutmenu PROMPT "\-"
   
DEFINE BAR _med_slcta OF foxshortcutmenu PROMPT "Se\<lect All" ;
      
KEY CTRL+A, "Ctrl+A"
   
DEFINE BAR _med_sp300 OF foxshortcutmenu PROMPT "\-"
   
DEFINE BAR _med_find OF foxshortcutmenu PROMPT "\<Find..." ;
      
KEY CTRL+F, "Ctrl+F"
   
DEFINE BAR _med_repl OF foxshortcutmenu PROMPT "R\<eplace..." ;
      
KEY CTRL+L, "Ctrl+L"
ENDPROC

PROCEDURE Unload
   Release popup
FoxShortcutMenu
ENDPROC

Procedure Init
   ThisForm
.DefinePopup()
EndProc

PROCEDURE
edit1.RightClick
   Move Popup
FoxShortcutMenu to Mrow(0), Mcol(0) && <<---------<<
   
ACTIVATE POPUP FoxShortcutMenu && at mrow(), mcol()
ENDPROC

PROCEDURE
edit2.RightClick
   ThisForm
.DefinePopup() && re-define the popup
   
ACTIVATE POPUP FoxShortcutMenu
ENDPROC

ENDDEFINE


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 8/21/2006 1:01:44 PM
User is offlineDorin Vasilescu
1366 posts
1st




Re: Shortcut menu
 (Romania)
Eu am facut altfel
In RightClick() :
DO txt_shortcut_menu with this

iar in definitiile bar-urilor don MPR ceva de genul:
LPARAMETERS oRef
...
DEFINE BAR _med_cut OF shortcut PROMPT "Cu\<t" ;
    KEY CTRL+X, "Ctrl+X" ;
    PICTRES _med_cut ;
    MESSAGE "Sterge si memoreaza selectia" ;
    SKIP FOR oRef.SelLength = 0
...


 8/21/2006 1:36:50 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Shortcut menu
 (Romania)

Din pacate nu se potriveste cu abordarea din FW. Transmiterea unei referinte in meniu are dezavantajul ca nu mai poti folosi generatorul de meniuri, chestie la care tin in mod deosebit. Concret, daca incep o aplicatie in fw, o duc pana la stadiu si hotarasc sa nu mai folosesc decat Visual FoxPro din punctul acela incolo, aplicatia trebuie sa fie capabila sa functioneze si asa (in scenariul de mai sus - trebuie sa fiu capabil sa fac meniuri cu Menu Designerul si sa mearga bine).


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 8/21/2006 2:53:04 PM
User is offlineTibisan
269 posts
4th


Re: Shortcut menu
 (Romania)

nu stiu daca va multumeste solutia gasita de mine, dar fac o incercare. precizez ca am schimbat fontul formularului (pentru ca numai cu Small Fonts merge figura), am facut edit1 un pic mai inalt, pentru a se vedea ca efectul este valabil ptr orice inaltime, si am pus un 1.5 in formula modificata, pe care sa nu ma intrebati de unde l-am luat.... un trial&error mic....

PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN

DEFINE CLASS form1 AS form
   Top = 0
   Left = 0
   Height = 601
   Width = 312
   DoCreate = .T.
   Caption = "Form1"
   Themes = 0
   FontName = "Small Fonts"
   FontSize = 9

ADD OBJECT edit1 AS editbox WITH ;
   Height = 380, ;
   Left = 26, ;
   Top = 14, ;
   Width = 259, ;
   Value = 'Shortcut works properly here' + chr(13) + ;
   'But the shortcut is not display on cursor position'

ADD OBJECT edit2 AS editbox WITH ;
   Height = 80, ;
   Left = 26, ;
   Top = 406, ;
   Width = 259, ;
   Value = 'Shortcut does not work properly here' + chr(13) + ;
   'The shortcut is display on cursor position'

PROCEDURE DefinePopup
   DEFINE POPUP FoxShortcutMenu SHORTCUT RELATIVE FROM MROW(),MCOL()
   DEFINE BAR _med_undo OF foxshortcutmenu PROMPT "\<Undo" ;
      KEY CTRL+Z, "Ctrl+Z"
   DEFINE BAR _med_redo OF foxshortcutmenu PROMPT "Re\<do" ;
      KEY CTRL+R, "Ctrl+R"
   DEFINE BAR _med_sp100 OF foxshortcutmenu PROMPT "\-"
   DEFINE BAR _med_cut OF foxshortcutmenu PROMPT "Cu\<t" ;
      KEY CTRL+X, "Ctrl+X" PICTRES _med_cut
   DEFINE BAR _med_copy OF foxshortcutmenu PROMPT "\<Copy" ;
      KEY CTRL+C, "Ctrl+C" PICTRES _med_copy
   DEFINE BAR _med_paste OF foxshortcutmenu PROMPT "\<Paste" ;
      KEY CTRL+V, "Ctrl+V" PICTRES _med_paste
   DEFINE BAR _med_pstlk OF foxshortcutmenu PROMPT "Paste \<Special..."
   DEFINE BAR _med_clear OF foxshortcutmenu PROMPT "Cle\<ar"
   DEFINE BAR _med_sp200 OF foxshortcutmenu PROMPT "\-"
   DEFINE BAR _med_slcta OF foxshortcutmenu PROMPT "Se\<lect All" ;
      KEY CTRL+A, "Ctrl+A"
   DEFINE BAR _med_sp300 OF foxshortcutmenu PROMPT "\-"
   DEFINE BAR _med_find OF foxshortcutmenu PROMPT "\<Find..." ;
      KEY CTRL+F, "Ctrl+F"
   DEFINE BAR _med_repl OF foxshortcutmenu PROMPT "R\<eplace..." ;
      KEY CTRL+L, "Ctrl+L"
ENDPROC

PROCEDURE Unload
   Release popup FoxShortcutMenu
ENDPROC

Procedure Init
   ThisForm.DefinePopup()
EndProc

PROCEDURE edit1.RightClick
   Move Popup FoxShortcutMenu to (Mrow(ThisForm.Name, 0) - 1.5 * ;
     FONTMETRIC(4, ThisForm.FontName, ThisForm.FontSize) * ;
     (Mrow(ThisForm.Name, 0) / FONTMETRIC(1, ThisForm.FontName, ThisForm.FontSize))), ;
  Mcol(ThisForm.Name, 0) && <<---------<<
   ACTIVATE POPUP FoxShortcutMenu && at mrow(), mcol()
ENDPROC

PROCEDURE edit2.RightClick
   ThisForm.DefinePopup() && re-define the popup
   ACTIVATE POPUP FoxShortcutMenu
ENDPROC

ENDDEFINE

 8/21/2006 2:54:44 PM
User is offlineTibisan
269 posts
4th


Re: Shortcut menu
 (Romania)
codul l-am modificat ptr fox8 (la mcol si mrow), ca pe asta il am la servici.
 8/22/2006 8:41:29 AM
User is offlineTibisan
269 posts
4th


Re: Shortcut menu
 (Romania)
mdap... imi retrag ce am spus, nu am testat suficient. in exe nu mai tine figura. imi cer scuze.
 9/7/2006 4:56:57 PM
User is offlineTibisan
269 posts
4th


Re: Shortcut menu
 (Romania)

sunt curios cum ai rezolvat-o pana la urma.

 5/31/2007 10:12:33 AM
User is offlinecostin_mentor
492 posts
www.accessoft.ro
2nd




Re: Shortcut menu
 (N/A)
Mediu de lucru :VFP9

In contextul de mai sus , am creat un meniu pentru "rightclick"-ul mouselului pentru un obiect de pe o forma (MSflexgrid).
Ideea e ca fiecare intrare din meniu are parametri ( in functie de unde se afla pe ecran ).
Deci am adaugat formei o metoda "definemeniudreapta" pe care o apelez in metoda "Mouseup" a obiectuluiu Flexgrid, plus inca o metoda "metodafolosita" care are parametri.

Problema e ca metoda "definemeniudreapta" nu pot sa folosesc :
on select bar 1 of numepopup do thisform.metodafolosita with 1,'aaa'
imi da eroare.
Problema am rezolvata astfel : in cadrul proiectului pe langa fisierul main.prg ,am creat un fisier functii.prg , in main am setat
set procedure to functii
In fisierul functii am creat o procedura pnume_utila pe care o apelez astfel :
on select bar 1 of numepopup do pnume_utila with 1,'aaa'
si totul functioneaza. alta solutie pentru
on select bar 1 of numepopup do ...... pentru a apela o metoda a formei cu parametri exista ?
multumesc
  Visual FoxPro  Meniuri si generatoare de meniuri  Shortcut menu...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement