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  Clase - VCX si PRG  Label...
 Label
 
 7/17/2006 1:41:06 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Label
 (Romania)

Ma intereseaza cum fac ca atunci cand trec cu mouseul peste un label acesta sa devina subliniat ca la linkurile de web. Cand mouseul nu-i peste label acesta sa nu mai fie subliniat.

Multumesc.

 7/17/2006 1:44:24 PM
User is offlineanonymous
0 posts


Re: Label
 (Romania)
Daca ai de la Fox 7 in sus ai evenimentele MouseEnter si MouseLeave, altefel trebuie sa te folosesti de un timer.
 7/17/2006 1:50:55 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Label
 (Romania)
Am versiunea 6. Incerc cu Timer! Multumesc.
 7/17/2006 1:56:02 PM
User is offlineanonymous
0 posts


Re: Label
 (Romania)

Atunci, faci asa: la mousemove, setezi o propietate a label-ului pe .T. daca nu este deja si pornesti timer-ul.

In Timer verifici daca obiectul de sub mouse este obiectul tau, si resetezi propietatea respectiva.

 7/17/2006 2:01:30 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Label
 (Romania)
Cum intreb ce obiect este sub mouse?
 7/17/2006 2:14:30 PM
User is offlineanonymous
0 posts


Re: Label
 (Romania)

SYS( 1270) intoarce o referinta la obiectul de sub mouse, deci:

oObj = SYS( 1270)

IF TYPE( 'oObj') = 'O'

      IF oObj = oLabel

            ...

      ENDIF      

ENDIF

 7/17/2006 3:13:21 PM
User is offlineanonymous
0 posts


Re: Label
 (Romania)
In fox 6.0 eu facusem ceva de genul acesta. Verificam coordonatele la mouse si, daca se potriveau cu cele ale obiectului care ma interesa, faceam ce aveam de facut (modificare font, culoare, etc).
 7/17/2006 4:06:59 PM
User is offlinevlatis
122 posts
5th


Re: Label
 (Romania) Modified By vlatis  on 7/17/2006 4:09:41 PM)

 

...in MouseMove (VFP6)

offset=3
mouse_is_in=between(nxcoord-this.left,offset,this.width-offset) and between(nycoord-this.top,offset,this.height-offset)
this.fontunderline=mouse_is_in

 7/17/2006 4:16:33 PM
User is offlineanonymous
0 posts


Re: Label
 (Romania)
Da, dar problema este ca mouse-ul se poate misca destul de mult peste un obiect si atunci se apeleaza prea des metoda MouseMove.
 7/17/2006 6:07:11 PM
User is offlinevlatis
122 posts
5th


Re: Label
 (N/A)

 Cristi wrote
Da, dar problema este ca mouse-ul se poate misca destul de mult peste un obiect si atunci se apeleaza prea des metoda MouseMove.

...corect! Probabil ca o treaba mai buna ar fi o clasa derivata din label care sa aibe o proprietate MouseIsIn (boolean), caz in care:

...in MouseMove (VFP6)

offset=3    &&eventual tot ca o proprietate a noii clase

aux=between(nxcoord-this.left,offset,this.width-offset) and between(nycoord-this.top,offset,this.height-offset)

If  aux<>this.MouseIsIn

   this.MouseIsIn=!this.MouseIsIn

   this.fontunderline=this.MouseIsIn

endif

Se scuteste astfel atribuirea valorii pentru FontUndrline in mod repetat....

Ideia cu sys(1270,x,y) mi s-a parut interesanta (n-o stiam), dar nu mi-a functionat. Returneaza mereu ca obiect form-ul care contine label-ul

 

 7/17/2006 7:29:40 PM
User is offlineDorin Vasilescu
1366 posts
1st




Re: Label
 (N/A)
Vezi in atasament asa ceva
Timerul este activ doar atat timp cat cursorul "se plimba" pe obiect fiind deactivat automat la parasirea obiectului

Label-ul are o metoda definita, OnMouseLeave(), care este executata de timer daca obiectul deasupra caruia este difera de asignat in MouseMove


 7/17/2006 8:42:10 PM
User is offlinevlatis
122 posts
5th


Re: Label
 (N/A)
 Dorin Vasilescu wrote
Vezi in atasament asa ceva
Timerul este activ doar atat timp cat cursorul "se plimba" pe obiect fiind deactivat automat la parasirea obiectului

Label-ul are o metoda definita, OnMouseLeave(), care este executata de timer daca obiectul deasupra caruia este difera de asignat in MouseMove




M-ai facut curios dar sunt in aceias situatie ca leul in desert, fata in fata cu conserva :) (acasa n-am decat lin si vfp6/wine ... nu am deschizatoru' de conserve-nu pot rula/edita formul postat)...oricum: pentru una-doua-sase-noua controale de tipul mentionat 'nu se simte' in nici unul din cazuri Sunt curios... sa fac maine o comparatie a resurselor consumate in cele doua variante pentru un numar mare de astfel de controale (cu timer/instanta(presupun), respectiv cu bucla_total _neeleganta_recunosc_pe_MouseMove)
 7/17/2006 8:57:05 PM
User is offlineDorin Vasilescu
1366 posts
1st




Re: Label
 (N/A)
Autorul timerului este Gerald Santerre. Este cel mai eficient mod de implementare OnMouseLeave pentru versiuni pre VFP7

Ideea e nu sa ai 10 timere, ci doar unul, _screen.IsMouseOut, care sa "aiba grija" de toate controalele

Lucruri vechi, oarecum uitate :)

 7/17/2006 9:00:48 PM
User is offlineanonymous
0 posts


Re: Label
 (N/A)
Da. Poate ar fi interesant sa faci o clasa din timer-ul ala, si la prima intrare pe primul label sa-l adaugi ca obiect la forma si el sa se ocupe de toate label-urile de pe acel form, sau poate chiar mai sus, pe _screen
 7/17/2006 9:05:53 PM
User is offlineDorin Vasilescu
1366 posts
1st




Re: Label
 (N/A)
:)
din outlook listbar.Init()
if type('_screen.ismouseout')#'O'
 _screen.addobject('ismouseout','ismouseout') 
endif

 7/17/2006 9:42:18 PM
User is offlinevlatis
122 posts
5th


Re: Label
 (N/A)
 Dorin Vasilescu wrote
Ideea e nu sa ai 10 timere, ci doar unul, _screen.IsMouseOut, care sa "aiba grija" de toate controalele
Lucruri vechi, oarecum uitate :)


Ok, ok...ma predau (am precizat ca presupun ca-i un timer/instanta...n-am putut edita form-ul)
...Treaba cu sys(1270) tot nu-mi iese...
  Visual FoxPro  Clase - VCX si PRG  Label...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement