1

Konu: objenin adı yerine değişken kullanabilmek

Merhaba,

Bir tablodaki kayıtlardan alınan bilgilere göre:

FOR m.i=1 TO m.tmp1
    this.newobject(kt[i,1],"kutu","kutu")
        && kutu adlı vcx dosyasındaki checkbox'ım
        WITH this.&kt[i,1]
            .left=30
            .top=90+i*26
            .visible=.t.
            .caption=kt[i,2]
    ENDWITH
ENDFOR
gibi bir komutla bir form üzerinde checkbox'lar oluşturuyorum.
Buraya dek sorun yok. Ancak bu objelere ulaşmak için değişken kullandığımda sorun çıkıyor.
Örneğin 5. checkbox'ın değerini sormak için:

deger=thisform.&kt[5].value  dediğimde syntax error veriyor.

Nasıl yapabilirim?
Teşekkürler

2

Re: objenin adı yerine değişken kullanabilmek

Macro (&) kullanmak problemli ve VFP'de kullanimi SQL disinda gereksiz.

Senin kodun daha uygun hali:

Visual Fox Pro
FOR m.i=1 TO m.tmp1 

    this.newobject(kt[i,1],"kutu","kutu")
        && kutu adlı vcx dosyasındaki checkbox'ım
        WITH getpem( this, kt[i,1] )
            .left=30
            .top=90+i*26
            .visible=.t.
            .caption=kt[i,2]
    ENDWITH
ENDFOR

Problem yasadigin bolumu & ile halletmeye devam etseydin (gereksiz ama etseydin), o zaman aklinda bulundurman gereken nokta macronun bittigini belirtiyor. Bu nedenle orada olmasi gereken nokta ise yokmus gibi islem goruyor. Orada cift nokta kullanman gerekiyordu:

Visual Fox Pro
deger=thisform.&kt[5]..value

Tabii daha iyisi & kullanmamak. Birden fazla yolu var:

Visual Fox Pro
with getpem( thisform, kt[5] )

   deger = .Value
endwith

3

Re: objenin adı yerine değişken kullanabilmek

Her zamanki gibi çok yardımcı oldunuz, GETPEM() ile çözdüm.

&'i zorunda kaldığım için kullanmıştım. Şimdi hepsi GETPEM() li oldu.

Teşekkürler.