Delphi Seattle" IOS上的摄像头会出现类型错误"

时间:2015-09-23 14:28:32

标签: delphi delphi-10-seattle

我尝试在小应用程序中使用相机,但收到此错误:

  

错误:类别Typecast无效

我做的是:

  • 新的多设备应用程序
  • 动作列表组件
  • TakePhotoFromCameraAction1已添加到“行动列表”
  • 一个操作已连接到TakePhotoFromCameraAction1
  • 的按钮

运行64位IOS9 Ipad错误

运行32位IOS9 Ipad错误

看起来错误来自此函数FMX.MediaLibrary.Actions()

procedure TTakePhotoFromCameraAction.ExecuteTarget(Target: TObject);
begin
  if IsSupportedInterface then // This line create the error
    FCameraService.TakePhoto(Target as TControl, GetParamsPhotoQuery);
end;

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我将它作为案例发送给Embacadero支持,这是一个错误。

下面的Answear和修补程序

无效的类型转换看起来源于您使用的是TSpeedButton。如果您使用TButton,TakePhotoFromLibraryAction将起作用。问题发生在TTakePhotoFromLibraryAction.ExecuteTarget中,其中Target作为TObject传递。因此,调试器没有给出关于目标是什么类的任何线索,但它可能不是TControl的后代,如果演员要成功,它就是它所需要的。

我将为此记录一个错误,但与此同时,我建议您使用TButton来调用此操作。

答案 1 :(得分:-1)

  • 我的TSpeedButton位于TListbox项目上。
  • 我遇到了Invalid Class Typecast错误
  • 我将TSpeedButton更改为TButton类型。但是如果你不小心点击列表项而不是TButton,错误仍然会返回。
  • 最终我将我的代码从ActionList切换到这种方法:

http://docwiki.embarcadero.com/RADStudio/XE8/en/Taking_Pictures_Using_FireMonkey_Interfaces

  • 为我工作,但仍使用TSpeedbutton。