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  Form-uri si generatoare de form-uri  Inchidere form-...
 Inchidere form-uri
 
 12/18/2010 8:35:33 PM
User is offlineBodanIonescu
36 posts


Inchidere form-uri
 (Romania)
Buna,
Doresc sa fac o procedura prin care sa inchid toate ferestrele deschise in momentul respectiv  -iar formele prin metoda release. Am conceput urmatorul cod:

Function CloseAllWindows
Local lcWonTop
Do While !Empty( Wontop())

    lcWonTop = Upper( Wontop())
    Do case
    Case lcWonTop = "R_" or At( " ", lcWontop) > 0 (acestea sunt ferestre deschise cu modi file... si nu stiu de ce dupa aceasta linie (cu true) se eceuta si case-ul urmator - unde imi intra in eroare la ferestre cu nume ce contin spatii - eu cred ca nu ar mai trebui sa se teste urmatorul case - de aceea am pus lcWonTop = "X"
        Release Windows (Wtitle())
        lcWonTop = "X"
    Case Type( "&lcWonTop") = "O" And !IsNull( &lcWonTop)
        &lcWonTop..Release - aici mi se intampla ca sa nu se execute metoda dar variabila respectiva de vine .null. - si nu stiu de ce (normal ca nu mereu :-P)
        If Type( '&lcWonTop') = "O"
            Release &lcWonTop
        EndIf
    Otherwise
        Release Windows (lcWOnTop)
    EndCase
    If Wexist( lcWonTop)
       suspend
    Endif
EndDo 
*******************

Ma gandesc ca raman ceva referinte in alte variabile. Cum pot evita acest lucru sau sa depistez unde am referinte la form-ul care vreau sa-l inchid?
Sper ca m-am facut inteles.




 12/18/2010 10:19:48 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Inchidere form-uri
 (N/A) Modified By Daniel Buduru  on 12/18/2010 11:36:11 PM)
In vfp  exista o colectie (_vfp.forms) si un vector (_screen.forms) care tin evidenta formurilor deschise.

For ii= _vfp.forms.count to 1 step -1
   _vfp.forms(ii).release
Next

Pentru celelalte ferestre, poti folosi wontop().

In ceea ce priveste referintele "agatate", vfp nu ofera nici un suport pentru gasirea lor.
Se pot evita dora prin scrierea unui cod corect din punct de vedere OOP.
Foarte pe scurt:
- orice variabila care refera un obiect sa fie declarata locala, astfel incat sa fie eliberata la iesirea din metoda in care este creata
- orice obiect instantiat in runtime (cu exceptia formurilor) sa apartina unui container - in care sa fie adaugat cu object.AddObject()


Daniel Buduru
 12/19/2010 6:53:32 AM
User is offlineBodanIonescu
36 posts


Re: Inchidere form-uri
 (Romania)
 Daniel Buduru wrote
In vfp  exista o colectie (_vfp.forms) si un vector (_screen.forms) care tin evidenta formurilor deschise.

For ii= _vfp.forms.count to 1 step -1
   _vfp.forms(ii).release
Next

Pentru celelalte ferestre, poti folosi wontop().

In ceea ce priveste referintele "agatate", vfp nu ofera nici un suport pentru gasirea lor.
Se pot evita dora prin scrierea unui cod corect din punct de vedere OOP.
Foarte pe scurt:
- orice variabila care refera un obiect sa fie declarata locala, astfel incat sa fie eliberata la iesirea din metoda in care este creata
- orice obiect instantiat in runtime (cu exceptia formurilor) sa apartina unui container - in care sa fie adaugat cu object.AddObject()


Mersi
Deocamdata am preferat parasirea procedurii in situatia cand nu reuseste sa inchida o fereastra - dupa care aplic quit , asta pana cand o sa-mi dau seama unde raman agatate formele  :-P
  Visual FoxPro  Form-uri si generatoare de form-uri  Inchidere form-...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement