如何设置TPushEvent的提供程序?

时间:2016-05-13 21:07:53

标签: delphi firemonkey

我在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这是一个接口,我不确定是否必须以与使用简单数据类型(如整数)或一个字符串。

1 个答案:

答案 0 :(得分:1)

是的,这是正确的方法。

myPushEvents.Provider := myKinveyProvider

在这种情况下,myPushEvents.Provider被分配了对myKinveyProvider的引用。您不必进行任何特殊投射,因为myPushEvents.Provider需要符合IBackendProvider界面的内容,而myKinveyProviderTKinveyProvider}则需要。

注意:在我的具体情况下,由于myPushEvents.Provider被设置为计时器结束的结果,它确实仍然是nil

添加

if (myPushEvents.Provider <> nil) then
begin
  // ... use myPushEvents.Provider
end;

保护其使用,直到在计时器运行后正确设置了值。