如题

解决方案 »

  1.   

    转贴:
    我在Borland新闻组中找到如何使ActiveForm获取网页中参数的方法:Hmmm. I followed an example from one of these newsgroups and got it workingwithout a hitch. Did you declare support for IPersistPropertyBag in theclass definition?Here is what mine looks like, with non-essentials removed:class TMyActiveForm = class(TActiveForm, IMyActiveForm,IPersistPropertyBag)protected:// IPersistPropertyBagfunction IPersistPropertyBag.GetClassID = PersistPropertyBagGetClassID;function IPersistPropertyBag.InitNew = PersistPropertyBagInitNew;function IPersistPropertyBag.Load = PersistPropertyBagLoad;function IPersistPropertyBag.Save = PersistPropertyBagSave;function PersistPropertyBagInitNew: HResult; stdcall;function PersistPropertyBagGetClassID(out classID: TCLSID): HResult;stdcall;function PersistPropertyBagLoad(const pPropBag: IPropertyBag; constpErrorLog: IErrorLog): HResult; stdcall;function PersistPropertyBagSave(const pPropBag: IPropertyBag;fClearDirty: BOOL; fSaveAllProperties: BOOL): HResult; stdcall;end;implementation(** IPersistPropertyBag*)function TMyActiveForm.PersistPropertyBagLoad(const pPropBag: IPropertyBag;const pErrorLog: IErrorLog): HResult;varv : OleVariant;beginif pPropBag.Read('ShowLegend', v, pErrorLog) = S_OK thenSet_ShowLegend( v );if pPropBag.Read('XMLDSOID', v, pErrorLog) = S_OK thenSet_XMLDSOID( v );result := S_OK;end;function TMyActiveForm..PersistPropertyBagSave(const pPropBag: IPropertyBag;fClearDirty, fSaveAllProperties: BOOL): HResult;varv : OleVariant;beginv := FShowLegend;pPropBag.Write( 'ShowLegend', v );v := FXMLDSOID;pPropBag.Write( 'XMLDSOID', v );result := S_OK;end;function TMyActiveForm..PersistPropertyBagGetClassID( out classID: TCLSID):HResult;begintryclassID := Class_MyActiveForm;Result := S_OK;exceptend;end;function TMyActiveForm.PersistPropertyBagInitNew: HResult;begintryresult := S_OK;exceptend;end;