1

Konu: object class is invalid for this container

vfp9 source programın çalışmasında problem yok. ama derlediğimde
"object class is invalid for this container" mesajı veriyor .
app olarak derlediğimde de sorunyok. exe olarak derlediğimde sorunu yaşıyorum.
eski projelerimden farklı olarak bunda public class yaptım;

Visual Fox Pro
Public Polib1

Polib1=Createobject("Genel")
Polib1.AddProperty("PcvStartPath")
Polib1.AddProperty("PcvCompany")
Polib1.AddProperty("PcvUser")
Polib1.AddProperty("PcvGrup")
Polib1.AddProperty("PcvStatusBarText")
Polib1.AddProperty("Pcvimg")
Polib1.AddProperty("Pcvcom_name")
Polib1.AddProperty("PcvStatusBarText")
Polib1.PcvStartPath=Substr(Sys(16,0),1,Rat("\",Sys(16,0)))
 
Set Classlib To temel, tictemel
 
_Screen.Icon ='kartela.ICO'
baslik=Space(2)+"
Kartela Yönetimi"+Space(15)
_Screen.Caption = baslik
Polib1.PcvStatusBarText="
  "+Polib1.PcvStartPath
On Shutdown Polib1.kapat()
Do genmenu.mpr
Do Form firmasec.scx
Read Events
Set Sysm To Defa
 
*!******-------------------------------------******
Define Class Genel As Custom
*!******-------------------------------------******
 
*!**-----------------------------------------*
    Procedure kapat()
*!**-----------------------------------------*
    Local FrmCount,cevap
    cevap=Messagebox ("
Program Kapatılacaktır eminmisiniz?", 4+32+0,"UYARI")
    If !cevap=6
        Return
    Else
        FrmCount=_Screen.FormCount
        For i=1 To FrmCount
            _Screen.Forms(1).Release
        Endfor
        Clear Events
        Quit
    Endif
    Endproc
*!**----------------------------------------*
    Function getGUID
*!**----------------------------------------*
    Local retval
    Declare Integer UuidCreate In 'RPCRT4.dll' String @pguid
    Declare Integer StringFromGUID2 In 'Ole32.dll' ;
        string rguid, String @lpsz, Integer cchMax
    Local pguid,rguid
    pguid=Replicate(Chr(0),16)
    rguid=Replicate(Chr(0),80)
    UuidCreate(@pguid)
    StringFromGUID2(pguid,@rguid,40)
    m.retval=Strconv(Left(rguid,76),6)
    m.retval=Substr(m.retval,2,8)+Substr(m.retval,11,4)+Substr(m.retval,16,4)+Substr(m.retval,21,4)+Substr(m.retval,26,12)
    Return m.retval
    Endfunc
*!**-----------------------------------------*
    Procedure GetAllDs()        && rapor açıkken başka rapor açıldığında datasessionı bulur
*!**-----------------------------------------*
    Lparam FormName
    Dime taSessions[1]
    Local lnCurDatasesion, lnSessions
    lnSessions=0
    For Each oForm In _Screen.Forms
        If Ascan (taSessions, oForm.DataSessionId)=0
            lnSessions=lnSessions+1
            Dimension taSessions [lnSessions,2]
            taSessions[lnSessions,1]=oForm.DataSessionId
            taSessions[lnSessions,2]=oForm.Name
        Endif
    Endfor
 
    bul=Ascan(taSessions, Upper(FormName))
*!**lnSessions=taSessions[bul-1]
    lnSessions=lnSessions+1
    Return lnSessions
    Endproc
Enddefine

2

Re: object class is invalid for this container

gördüğüm hata

genel class daki kapat() da

_Screen.Forms(1).Release olan

_Screen.Forms(i).Release  olacak

3

Re: object class is invalid for this container

tşk orası hatalı ama derlerken aldığım "object class is invalid for this container" mesajının sebebi o değil

4

Re: object class is invalid for this container

Erdal,
Bu kodun hata ile ilgisi yok.

  _Screen.Forms(1).Release

dogru. Ben olsam boyle yapardim:

       For i=_Screen.FormCount To 1 step -1
            _Screen.Forms(m.i).Release
        Endfor

5

Re: object class is invalid for this container

hocam form release önemli değil. projeyi derleyemiyorum exe oluşmuyor. müşteriye teslim edemiyorum çıldıracam.
olmadı artık eski sisteme döndürecem artık. eski procedurlerimi kullanıp exe oluşturacam.

6

Re: object class is invalid for this container

Erdal,
Demek istedigim o. Hata verdigin kodda degil. O kodun cagirdigi mpr, scx var. mpr ya da scx kodunda bir yerlerde hata.
Tools\code refrences'ta AddObject ve NewObject ara. Sansin var oyle bulmaya. Mesela custom bir objeye this.addobject('xx') yapmissindir ve xx bir grid classidir. Genelde activex kontrollerle yapilan bir hata.

7

Re: object class is invalid for this container

sağol hocam onlara bakıyorum ama. benim anlamadığım source da çalışıyor. app olarak derliyorum yine çalışıyor. ama exe olarak derlemiyor. daha doğrusu hatamesajını verip derliyor ama 35 k lık bir exe oluşturuyor. bunu anlamıyorum.
bu arada hata mejanın helpinde gridle pageframe kullanmak gibi birşeyler yazmış anlamadım. 9 da pageframe içine grid konulamıyormu ? vfp8 yıllardır kullanıyorum.

8

Re: object class is invalid for this container

buldum
sebebi projede exclude olarak seçili kullanmadığım bir prg den yapıyormuş.
ilginç ama exclude olmasına rağmen derlerken kontrol ediyor