我在firemonkey表单上声明了TPushEvent和TKinveyProvider
我正在尝试在代码中手动设置Provider的值。我意识到默认情况下,当您在表单上删除这些控件时,PushEvent的Provider属性会自动设置为TKinveyProvider。但是,我正在解决一个明显的错误,我想稍后再设置它。
我是否在此代码段中正确设置了提供程序属性?
//In my form class
//...
myPushEvents: TPushEvents;
myKinveyProvider: TKinveyProvider;
//later on in one of my procedures/methods
//...
myPushEvents.Provider := myKinveyProvider;
如果我应该在设置之后查看其他值,则它仍然显示为nil
。
Provider
似乎被定义为IBackendProvider
这是一个接口,我不确定是否必须以与使用简单数据类型(如整数)或一个字符串。
答案 0 :(得分:1)
是的,这是正确的方法。
myPushEvents.Provider := myKinveyProvider
在这种情况下,myPushEvents.Provider
被分配了对myKinveyProvider
的引用。您不必进行任何特殊投射,因为myPushEvents.Provider
需要符合IBackendProvider
界面的内容,而myKinveyProvider
(TKinveyProvider
}则需要。
注意:在我的具体情况下,由于myPushEvents.Provider
被设置为计时器结束的结果,它确实仍然是nil
。
添加
if (myPushEvents.Provider <> nil) then
begin
// ... use myPushEvents.Provider
end;
保护其使用,直到在计时器运行后正确设置了值。