【问题标题】:Delphi Seattle "Camera on IOS give typecast error"Delphi Seattle “IOS 上的摄像头出现类型转换错误”
【发布时间】:2015-09-23 14:28:31
【问题描述】:

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

错误:无效的类类型转换

我所做的是:

  • 新的多设备应用程序
  • 动作列表组件
  • TakePhotoFromCameraAction1 已添加到 Actionlist
  • 一个按钮,动作连接到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;

有什么想法吗?

【问题讨论】:

    标签: delphi delphi-10-seattle


    【解决方案1】:

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

    Answear 和以下修补程序


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

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

    【讨论】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多