【问题标题】:FireMonkey Android problem with TIdHTTPServerTIdHTTPServer 的 FireMonkey Android 问题
【发布时间】:2019-01-15 17:47:10
【问题描述】:

我有一个带有 TTabControlTWebBrowserTIdHTTPServer 的 FireMonkey Android 应用。

我尝试使用以下代码将 HTTP 客户端重定向到 TIdHTTPServer.OnCommandGet 事件中的新 URL:

TabControl1.ActiveTab := TabItem2;
AResponseInfo.ResponseNo := 302;
AResponseInfo.Location := ARequestInfo.Params.Values['url'];

但我得到一个错误:

Checksynchronize 从不是主线程的线程 $c6f02970 调用。

请求到达TIdHTTPServer组件后如何更改选项卡?

【问题讨论】:

    标签: delphi indy


    【解决方案1】:

    OnCommandGet 事件在工作线程的上下文中执行。您只能从主 UI 线程访问用户界面。将对嵌入到调用中的 UI 控件的访问移至 TThread.SynchronizeTThread.Queue

    TThread.Synchronize(nil,
      procedure
      begin
        Tabcontrol1.ActiveTab:=tabitem2;
      end);
    AResponseInfo.ResponseNo := 302;
    AResponseInfo.Location := ARequestInfo.Params.Values['url'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 2020-02-06
      • 1970-01-01
      • 2014-06-29
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多