1

Konu: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

formda kullanılan treeview için: bir düğümden sonrası var mı diye kontrol ederken

?VARTYPE(form1.oletreeview.object.nodes[1].child.lastsibling.child.key)
hata mesajı üretiyor

?TYPE("form1.oletreeview.object.nodes[1].child.lastsibling.child.key")
="U" undetermined oluyor

VFP9 SP2

2

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

Neden diye sorma (cevap veremem, senin basina gelen ornek diyelim) ama bence Vartype'i hic kullanma.

3

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

Üstat; VarType ı TreeView için mi kullanma diyorsun? Yoksa genel olarak mı?

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ü

4

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

Hic kullanma:) Unut onu. Eski dost dusman olmaz de Type() kullan.

5

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

Son derece basit bir ornek:

Visual Fox Pro
? VarType(OlmayanNesne.Test)

hata verir.

Visual Fox Pro
? Type("OlmayanNesne.Test")

sessiz sedasiz dogru sonuc.

6

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

o zaman VARTYPE(xxx)="U" seçeneği olmuyor.
Codereferanslardan baktım, bir projede VARTYPE() belki 500 yerde falan kullanmışım ! - çok tehlikeli -

VFP9 SP2

7

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

Calisanlara dokunma:) Treeview orneginde de en sondaki "key" olmadan calisiyor gibime geliyor (oraya kadar ki objeler var kabul ederek).

Not: Bu arada Vartype()'a takilip asil soruyu atlamisim:)

Visual Fox Pro
if  (form1.oletreeview.object.nodes[1].child.lastsibling.children > 0)

8

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

vartype eğer ana nesne yoksa alt propertylerde hata veriyor bu doğru. ama type da bir nesne release edilmiş bile olsa O veriyor. onu ancak vartype ile alabiliyorsun.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

9

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

Yanlis bilgi. Type() release edilmis nesnelerde O vermiyor.

10

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

xx=createobj("form")
xx.show
WAIT WINDOW TYPE("xx")
WAIT WINDOW varTYPE(xx)

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

11

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

Ne demek istedigini anlasam.

12

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

form release olduktan sonra bile type("xx")="O" veriyor. vartype(xx) ise vermiyor.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

13

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

zaten o nedenle standart form1.Activate kodu
IF TYPE("form1")="O" AND ! ISNULL(form1)
olmuştu.
Bunun VARTYPE için gerekmediği hiç önüme çıkmamış demek ki ...

VFP9 SP2

14

Re: Deneyim paylaşımı: VARTYPE() ve TYPE() aynı sonucu vermiyor

Yanlis bilgi.

Object variable release edildikten sonra her ikisi de 'U' veriyor. Object variable release edilmesi ile form.release ayni sey degil. Ikincisinde obje hala var ama null. Objenin tipi de 'O'. Yani type() dogru sonuc veriyor. Vartype'da ise ikinci bir parametre var, default .F. Bu parametre .F. iken null deger icin X veriyor. Yani tipini vermiyor, mull diyor. O parametreyi .t. yaparsan onda da sonuc 'O'.

Visual Fox Pro
xx=createobj("form") 

xx.show
WAIT WINDOW TYPE("xx")
WAIT WINDOW varTYPE(xx)

Burada release edilen birsey yok. Ikisinin de sonucu ayni 'O'.

Visual Fox Pro
xx=createobj("form") 

xx.release()
WAIT WINDOW TYPE("xx")  && O
WAIT WINDOW IsNull(m.xx) && .T.
WAIT WINDOW varTYPE(m.xx) && X
WAIT WINDOW varTYPE(m.xx,.t.) && O

Release ile:

Visual Fox Pro
xx=createobj("form") 

Release xx
WAIT WINDOW TYPE("xx")
WAIT WINDOW varTYPE(m.xx)