1

Konu: bir önceki formu kontrol etmek

form1 diye bir form var bu form da degisken1 diye bir property var
form1 in içinden  do form form2  komutu ile ile form2 isimli form u  çağırıyorum

form2  ekranda açıkken  bir önceki formdaki (form1) degisken1 in degerini nasıl alırım?
veya bir önceki formdaki label1 isimli elemanın caption değerini nasıl alırım ?

eskiden formsette bunu kolaylıla yapıyordum

teşekkurler

2 Son düzenleyen, avrasya34 (04.03.2011 23:53:47)

Re: bir önceki formu kontrol etmek

belkiböyle yapabilirsin

Visual Fox Pro
local lab1

 
_Screen.Forms(2).activate
m.lab1= _Screen.Forms(2).label1.caption

_Screen.Forms(2) yada  _Screen.Forms(1) olabilir emin değilim.

1. formdaki bir değeri alabilmen için o kısma kadar olan herşeyi active etmen gerekiyor

_Screen.Forms(2).activate
_Screen.Forms(2).pagefarme1.activate
_Screen.Forms(2).pagefarme1.page2.activate

gibi

3

Re: bir önceki formu kontrol etmek

Visual Fox Pro
m.lcdeger = form1.label1.caption
Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

4

Re: bir önceki formu kontrol etmek

Visual Fox Pro
do form form1 name oForm1

 
do form form2 name oForm2
 
oform2.labe1.caption = oForm1.labelX.caption

5

Re: bir önceki formu kontrol etmek

benim esas derdim şu

2. formun içinden çalıştırdığım bir "prg"   in içinde
form1.degisken1=5  yazarsam sorun çıkartıyor

bununu çözümü varmı ?
daha önce formset kullanırken hiç böyle dertlerim yoktu

teşekkürler

6

Re: bir önceki formu kontrol etmek

Visual Fox Pro
_screen.oForm1.degisken1=5  *!* name clause kullanarak cagirdigin form

 

yada

Visual Fox Pro
_screen.ActiveForm.degisken1=5  *!* adi ustunde "prg" uzerinden activeforma gonderdigin parameter

denesen

ayrica "prg" icinden

Visual Fox Pro
_screen.addproperty('degisken1','bla bla whatever')

ile istedigin degeri screene at formda (hatta uygulamanin herhangi bir yerinden) istedigin yerden al

7 Son düzenleyen, ugurlu2001 (05.03.2011 15:40:17)

Re: bir önceki formu kontrol etmek

Konuralp, Kod Stefan Wuebbe nin.
Ufak bir REVİZE yapınca senin istediğin oluyor.


Visual Fox Pro
*!*    Stefan Wuebbe

*!*    http://www.foxite.com/archives/active-form-0000193440.htm
 
PUBLIC oForm as Form
oForm = CREATEOBJECT('ParentForm')
oForm.Show()
READ EVENTS
RETURN
 
DEFINE CLASS ParentForm as Form
    AutoCenter = .T.
    Caption = "Parent Form"
    oChildform = .NULL.
    MyProp1 = "Özellik1"
    MyProp2 = "Özellik2"
    MyProp3 = "Özellik3"
 
    ADD OBJECT cmdChildform as Commandbutton WITH ;
        Left = 100, Top = 100, Caption = "Child Form", Height = 24
    PROCEDURE cmdChildform.Click
        IF VARTYPE(Thisform.oChildform) <> 'O'
            Thisform.oChildform = CREATEOBJECT('ChildForm')
        ENDIF
        Thisform.oChildform.Show()
    ENDPROC
ENDDEFINE
 
DEFINE CLASS ChildForm as Form
    Caption = "Child Form"
    BackColor = RGB(250,250,240)
 
    ADD OBJECT cmdParentform as Commandbutton WITH ;
        Left = 100, Top = 100, Caption = "Parent-> MyProp1", Height = 24
 
    PROCEDURE cmdParentform.Click
 
        FOR EACH loForm IN _Screen.Forms
            IF Upper(loForm.Name) = Upper("ParentForm")
                 MessageBox(loForm.MyProp1)
            ENDIF
        endfor
 
    ENDPROC
 
ENDDEFINE
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

8

Re: bir önceki formu kontrol etmek

Konuralp;

Parametrik olarak revize edilmiş hali :

Visual Fox Pro
*!*    Stefan Wuebbe

*!*    http://www.foxite.com/archives/active-form-0000193440.htm
*!*    Revised by : Uğur
 
PUBLIC oForm as Form
oForm = CREATEOBJECT('ParentForm')
oForm.Show()
READ EVENTS
RETURN
 
DEFINE CLASS ParentForm as Form
    AutoCenter = .T.
    Caption = "Parent Form"
    oChildform = .NULL.
    MyProp1 = "Özellik1"
    MyProp2 = "Özellik2"
    MyProp3 = "Özellik3"
 
    ADD OBJECT cmdChildform as Commandbutton WITH ;
        Left = 100, Top = 100, Caption = "Child Form", Height = 24
    PROCEDURE cmdChildform.Click
        LOCAL lcParameter
 
        m.lcParameter = ThisForm.Name
 
        IF VARTYPE(Thisform.oChildform) <> 'O'
            && lcParameter -> Bir sonraki forma parametre olarak gidiyor.
            Thisform.oChildform = CREATEOBJECT('ChildForm',lcParameter)
        ENDIF
        Thisform.oChildform.Show()
    ENDPROC
ENDDEFINE
 
DEFINE CLASS ChildForm as Form
    Caption = "Child Form"
    BackColor = RGB(250,250,240)
 
    ADD OBJECT cmdParentform as Commandbutton WITH ;
        Left = 100, Top = 100, Caption = "Parent-> MyProp1", Height = 24
 
    PROCEDURE Init
        LPARAMETERS tuParameter && Bir önceki formdan parametre ile alınan Form Adı
 
        AddProperty(ThisForm,'CallerForm',tuParameter) && ChildForma Parametre olarak eklendi.
        * MessageBox(ThisForm.CallerForm)
 
    ENDPROC
 
    PROCEDURE cmdParentform.Click
 
        FOR EACH loForm IN _Screen.Forms
            IF Upper(loForm.Name) = Upper(ThisForm.CallerForm)
                 MessageBox(loForm.MyProp1) && Burda bir önceki forma ait istediğin PROPERTY yi okuyabilirsin ...
            ENDIF
        endfor
    ENDPROC
 
ENDDEFINE
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

9

Re: bir önceki formu kontrol etmek

Benim yaptigim ikinci formu cagirirken birinciyi parametre olarak gondermek:

Visual Fox Pro
do form form2 with thisform

 
* form2 init
lparameters toCaller
this.Addproperty('oCaller', toCaller)
 
* hehangi bir metod
thisform.oCaller.Degisken1 ....

10

Re: bir önceki formu kontrol etmek

Üstat, yine kısacık bir çözüm smile

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü