Search  
Wednesday, January 20, 2021 ..:: 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  Form-uri si generatoare de form-uri  Portiune schema...
 Portiune schema
 
 1/3/2011 11:21:57 PM
User is offlineji_ci
191 posts
5th


Portiune schema
 (Romania)
Pe un form am o schema facuta din mai multe imagini! Vreau ca la evenimentul MouseMove sa imi iasa in evidenta anumite portiuni din scheme peste care ma plimb cu mouse-ul! Probabil imi trebuie portiunile din schema puse sub (sau desupra?) unui commandbutton sau checkbox!? Si la evenimentul Click asupra commanbuttonului deschid o fereastra cu portiunea respectiva! Mentionez ca fiecare portiune din schema are mai multe imagini! Folosesc VFP6. Se poate face asta in VFP6?
 1/4/2011 8:56:12 AM
User is offlinecostin_mentor
748 posts
www.accessoft.ro
1st




Re: Portiune schema
 (N/A)
Ai putea sa te folosesti de proprietatea Tag a controlului Picture : toate imaginile dintr-o schema sa aiba un cod unic in aceasta proprietate Tag a imaginii.
Apoi la :
a) mouseEnter a fiecarei imagini sa ai this.borderstyle=1
parcurgi toate controalele de tip imagine din cadrul formei care au un tag codul curent si procedezi la fel cu ele ,adica pui borderstyle=1

FOR lni=1 TO thisform.ControlCount
IF ALLTRIM(UPPER(thisform.Controls[lni].baseclass))=='IMAGE' and thisform.Controls[lni].tag=valoarea_curenta
this.borderstyle =1
endi
endf

b) mouseLeave a fiecarei imagini sa ai this.borderstyle=0
parcurgi toate controalele de tip imagine din cadrul formei care au un tag codul curent si procedezi la fel cu ele ,adica pui borderstyle=0


Ca sa nu scrii de mai multe ori acelasi cod ar fi bine sa -ti faci o clasa noua derivata din controlul Imagine si care sa aiba la MouseEnter si MouseLeave codurile de mai sus.
 1/4/2011 10:50:44 AM
User is offlineGrigore Dolghin
4001 posts
www.class-software.ro
1st






Re: Portiune schema
 (N/A)
Daca-mi aduc eu bine aminte - VFP6 n-avea MouseEnter si MouseLeave. Codul de la punctul a) ar trebui scris in MouseMove, iar codul de la b) in Form.MouseMove.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 1/4/2011 7:16:43 PM
User is offlineji_ci
191 posts
5th


Re: Portiune schema
 (Romania)
Da .... intradevar VFp6 nu are MouseLeave si MouseEnter! Nici nu ma pot folosi de proprietatea borderstyle ptr ca imaginle mele au dimensiuni diferite si nu imi scot in evindenta exact portiunea care o vreau eu! Am facut altceva babeste! Am pus un checkobx.style=1 si visible=.F. sub imaginile care apartin unei portiuni din schema. Apoi peste imagini am pus o alta imagine de aceleasi dimensiuni ca si checkboxul cu BackStyle=0 si la picture am pus o poza cu background alb! La evenimentul MouseMove al   Imagini checkboxul devine Visible=.T., iar la click pe imagine checkboxul il pun pe Value=1 si deschid o fereastra cu schema din portiunea selectata si revin inapoi cu proprietatile pentru imagine si checkbox! Problema e ca nu pot sa pun revenirea cu proprietatile la evenimentul mousemove al formei ptr ca atunci cand parasesc Imaginea nu ajung pe forma ci ajung pe alte imagini! Imi trebuie neaparat ceva de genul lui MouseLeave .... care sa-mi sesizeze exact cand parasesc Imaginea mea! Imi cer scuze daca n-am fost destul de clar in exprimare! M-am complicat .... dar nu stiu alta varianta!
 1/4/2011 8:03:05 PM
User is offlineGrigore Dolghin
4001 posts
www.class-software.ro
1st






Re: Portiune schema
 (N/A) Modified By Grigore Dolghin  on 1/4/2011 8:03:37 PM)
E mai tricky, da' se poate. Uite cum as face eu: Mi-as defini o clasa Image care sa aiba in mousemove un apel catre ThisForm.SetareProprietati(This.Name) sau cum vrei tu sa-i zici. In metoda aia a formului pui codul pe care in mod normal l-ai avea in MouseLeave.
Smecheria e ca trimiti si numele imaginii care a apelat metoda. In metoda o pui un cod de genul urmator:

LParameters tcImageName
For Each oControl In ThisForm.Objects
   If Upper(oControl.BaseClass) = "IMAGE" And oControl.Name <> tcImageName && te asiguri ca executi numai pentru CELELALTE imagini de pe form
*------ codul care seteaza proprietatile (cel din mouseleave)
   EndIf
EndFor

Ideea e ca daca te misti cu mouse-ul pe o imagine, evenimentul MouseMove al imaginii pe care esti va "curata" toate celelalte imagini.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 1/5/2011 12:43:32 PM
User is offlineji_ci
191 posts
5th


Re: Portiune schema
 (Romania)

Nu reusesc! Cred ca mi-ar fi de ajutorul codul daca m-as plimba doar pe Imagini din clasa facuta de mine! Dar am si imagini de altfel, si de pe imaginea (clasa facuta) pot iesi cu mouse-ul si pe form si pe alte imagini care nu apartin clasei facute!

 1/5/2011 12:49:01 PM
User is offlineGrigore Dolghin
4001 posts
www.class-software.ro
1st






Re: Portiune schema
 (N/A) Modified By Grigore Dolghin  on 1/5/2011 12:49:53 PM)
Pai... puii mei, mie mi-ai zis altceva, si anume ca nu ajungi pe form, ci pe alte imagini. Nici n-ai pomenit ca ai si alt fel de imagini acolo - eu n-am un glob de cristal ca sa ghicesc ce ai tu in form. Eu incerc sa-ti dau solutii conform datelor pe care mi le-ai furnizat.

Daca ajungi pe form, in Form.mousemove apeleaza din nou ThisForm.SetareProprietati() si daca nu primesti parametrul itereaza prin toate imaginile de pe form. Daca ai doar o anumita clasa de imagini pentru care vrei sa faci smecheria aia, nu testa Baseclass, ci Class = "cum_o_cheama_pe_clasa_aia".

Daca ai si alte tipuri de imagini, fa o clasa si pentru alea, in care apelezi ThisForm.SetareProprietat() fara nume, exact ca in cazul in care te duci cu mouseul pe form.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 1/5/2011 6:33:57 PM
User is offlineji_ci
191 posts
5th


Re: Portiune schema
 (Romania)
Bine ar fi daca ati avea un glob de cristal! Am facut uramtoarea testare! Am facut un checkbox si deasupra o imagine! Checkboxul e initial visible=.F.! La evenimentul MouseMove al Imaginii am pus Thisform.Setari(This.Name) asa cum ati spus! Am facut mai multe copiii la Imagine si Checkbox si le-am distribuit pe forma! (Probabil va trebuii sa fac o clasa ... ). La evenimentul Setari al formei am pus codul :
LParameters tcImageName
For Each oControl In ThisForm.Objects
   If Upper(oControl.BaseClass) = "IMAGE" And oControl.Name <> tcImageName && te asiguri ca executi numai pentru CELELALTE imagini de pe form
tcCheckName='check'+right(tcImageName,len(tcImageName)-5)+''
var_check_visible="thisform."+transform(tcCheckName)+".Visible=.T."
&var_check_visible
else
var_check_visible="thisform."+transform(tcCheckName)+".Visible=.F."
&var_check_visible
*------ codul care seteaza proprietatile (cel din mouseleave)
   EndIf
EndFor

Si la MouseMove al formei am pus Thisform.Setari(thisform.image10.Name) --- am dat o valoare oarecare ... ptr ca asa cum ati spus imi cere parametru.
Totul functioneaza ... mai putin nu-mi face nimic la ultima imagine introdusa (nu e image10)!  Si nu mai functioneaza nimic cand introduc pe forma un altfel de obiect decat Check sau Image ... probabil trebuie sa specific ca tcCheckName face parte din clasa Check dar nu stiu cum sa fac asta! ?
 1/6/2011 2:48:15 AM
User is offlineGrigore Dolghin
4001 posts
www.class-software.ro
1st






Re: Portiune schema
 (N/A)
Sincer, nu prea mai inteleg ce faci tu acolo, dar ma rog. Checkboxurile au ca baseclass "Checkbox" (de altfel, daca selectezi un checkbox in designer si te uiti la proprietatea Baseclass o sa vezi.

Ce n-am inteles eu este de ce trebuie sa verifici si checkboxul. Eu am crezut ca fiecare imagine un checkbox pereche. Image01, Check01; Image02, Check02, si asa mai departe. Cand setezi proprietatile unei imagini seteaza si checkboxul asociat ei.

Daca nu am inteles bine, atunci da mai multe amanunte.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 1/6/2011 2:13:47 PM
User is offlineji_ci
191 posts
5th


Re: Portiune schema
 (Romania)
Incep cu inceputul! Pe un form am o schema din mai multe imagini! Schema e impartita in mai multe parti pe care vreau sa le scot in evidenta cand sunt cu mouseul deasupra lor! Fiecare portiune e formata din mai multe imagini inegale ca si dimensiuni! De aceea nu vreau sa ma folosesc de proprietatea BorderStyle a imaginiilor asa cum mi s-a sugerat la inceput! Atunci am spus ca pun un checkbox cu Style=1(Graphical) si visible=.F., sub imaginile care reprezinta o portiune din schema. Apoi m-ai pun o imagine de dimeniunea checkboxului peste imaginiile din schema. La Mousemove al asupra acestei imagini fac checkobul Visible =.T.,  Atunci el va arata ca un button si automat imi iese in evidenta portiunea din schema! Iar la iesire de pe Imagine checkboxul devine visible=.F. Si asa e sunt perechi Image01, Check01 .... dar nu stiu cum sa aflu numele checkul decat asa cum am aratat in codul de mai sus. Mai dau detalii daca trebuie ... dvs sa aveti rabdare!
  Visual FoxPro  Form-uri si generatoare de form-uri  Portiune schema...

Search  Forum Home         

Copyright 2002-2013 Profox   Terms Of Use  Privacy Statement