标签: delphi-xe5

将TiniFile从应用程序保存到iOS

我是iOS平台的新手.我正在尝试为我的应用程序保存一个INI文件.问题是我无法获得具有写入权限的路径.

这是我的代码:

  ini := TIniFile.Create(GetHomePath + '/user.dat');
  try
    ini.WriteString('data','user',edtuser.Text);
    ini.WriteString('data','descr',edt1.Text);
  finally
    ini.Free;
  end;
Run Code Online (Sandbox Code Playgroud)

我得到一个例外,即无法创建该文件.如何使用Firemonkey获取可写路径?

delphi ios firemonkey delphi-xe5

6
推荐指数
1
解决办法
5081
查看次数

Delphi为Windows Mobile编程

所以Delphi现在支持Windows,MacOS,Android和iOS编程.有没有办法,使用Delphi(XE5)为Windows Mobiles编写程序?

windows delphi delphi-xe5

6
推荐指数
2
解决办法
5951
查看次数

分类错误(11)

请按照以下步骤操作:

  1. 创建新的 Firemonkey Moblie Application
  2. TGeustureManager组件添加到表单
  3. TButton向表单添加2个组件

    • Button1.Text:"Button1:做点什么......"
    • Button2.Text:"Button2:退出应用程序......"

    应用程序应该如下所示

  4. 双击Button2 Component并为OnClickEvent 编写以下代码:

    procedure TForm1.Button2Click(Sender: TObject);
    begin
      if MessageDlg('Are you sure you want to Exit?', TMsgDlgType.mtWarning,
              [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrYes then
        SharedActivity.finish;
    end;
    
    Run Code Online (Sandbox Code Playgroud)
  5. 以调试模式运行应用程序.
  6. 在设备上,单击按钮2,然后单击是以弹出消息.将出现一个例外:

    在此输入图像描述

为什么会引发此异常?

我认为这与未使用的TGeustureManager组件有关.不,不是:

  1. 如果您打开LocationDelphi xe5附带的Demo项目.
  2. TButton组件添加到LocationLabel,如下图所示: 在此输入图像描述
  3. 将上述相同的代码添加到OnClickEvent.
  4. 运行应用程序,然后单击Button5,您将得到相同的异常.

这是我应该报告的错误吗?或者我做错了什么?

delphi android firemonkey delphi-xe5

6
推荐指数
1
解决办法
8085
查看次数

在Delphi中,浮点类型的最大值是什么关键字?

注意:此问题已被编辑,因为我的问题变得完全不同.您将What's the keyword for the maximal value for a floating point type?MBo的答案中找到问题的直接答案 - 使用System.Math的常量.

Delphi提供多种浮点值类型.首先是Single,Double和Extended.

上周我查找了关键字的最大浮点值,发现了这个:http://www.delphibasics.co.uk/RTL.asp?Name = Infinity

var
  float1, float2 : single;
begin
  float1 := Infinity;
  float2 := 23;

  ShowMessage('float1 = '+FloatToStr(float1));
  ShowMessage('float2 = '+FloatToStr(float2));
  ShowMessage('float1 - float2 = '+FloatToStr(float1 - float2));
  ShowMessage('-float1 = '+FloatToStr(-float1));
end;
Run Code Online (Sandbox Code Playgroud)

假设输出

float1 = INF
float2 = 23
float1 - float2 = INF
-float1 = -INF
Run Code Online (Sandbox Code Playgroud)

我有一个包含组件的表单.该组件有几个属性.如果我使用属性编辑器Infinity作为浮点属性的值,我得到的错误是它是一个无效的浮点值.同样如此INF.

然后我输入9.9E308MaxValue字段.它变成了INF. …

delphi delphi-xe5

6
推荐指数
1
解决办法
3070
查看次数

将ISO 3166-1 alpha-2国家/地区代码转换为本地化的国家/地区名称

有没有办法在不使用外部资源的情况下将两个字母的国家代码转换为可读的国家代码?

例如DE -> Germany,AD -> Andorra

如果我可以选择目标语言或使用系统语言会很好,因为我想用德语.

delphi localization delphi-xe5

6
推荐指数
1
解决办法
1266
查看次数

作为函数的结果的"函数引用"

我有一个返回函数的功能TFunc<Integer>reference to function:Integer.我有一个过程,它接受一个函数TFunc<Integer>作为参数,调用它并打印其结果.

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

function GetFunction:TFunc<Integer>;
begin
  result := function:Integer begin result := 42 end;
end;

procedure FunctionCall(AFunc:TFunc<Integer>);
var i:Integer;
begin
  i := AFunc;
  WriteLn(Format('Function Result = %d',[i]));
end;

begin
//  FunctionCall(GetFunction);    // error
  FunctionCall(GetFunction());  // works as excpected
end.
Run Code Online (Sandbox Code Playgroud)

这个call(FunctionCall(GetFunction);)会导致错误.和()作品一样被打电话.

我的问题是:
在delphi中我需要使用brakets来调用函数,何时不需要(我认为我从不需要它们)
或者
我不需要它们而且它是否是一个bug?

我在windows 7 dcc32上使用delphi xe5.

delphi function-pointers delphi-xe5

6
推荐指数
1
解决办法
539
查看次数

TRestClient/TRestRequest错误地解码gzip响应

我试图读取一个REST API,它是gzip编码的.确切地说,我试图阅读StackExchange API.

我已经在TRESTResponse中找到了自动解码GZIP的问题但由于某些原因,这个答案并没有解决我的问题.

测试设置

在XE5中,我添加了TRestClient,TRestRequest和具有以下相关属性的TRestResponse.我设置了客户端的BaseURL,请求的资源和参数,以及我AcceptEncoding对请求的设置gzip, deflate,这应该使它自动解码gzipped响应.

  object RESTClient1: TRESTClient
    BaseURL = 'https://api.stackexchange.com/2.2'
  end
  object RESTRequest1: TRESTRequest
    AcceptEncoding = 'gzip, deflate'
    Client = RESTClient1
    Params = <
      item
        Kind = pkURLSEGMENT
        name = 'id'
        Options = [poAutoCreated]
        Value = '511529'
      end
      item
        name = 'site'
        Value = 'stackoverflow'
      end>
    Resource = 'users/{id}'
    Response = RESTResponse1
  end
  object RESTResponse1: TRESTResponse
  end
Run Code Online (Sandbox Code Playgroud)

这导致url:

https://api.stackexchange.com/2.2/users/511529?site=stackoverflow

我调用这样的请求,有两个消息框来显示url和请求的结果:

ShowMessage(RESTRequest1.GetFullRequestURL());
RESTRequest1.Execute; // Actual call
ShowMessage(RESTResponse1.Content);
Run Code Online (Sandbox Code Playgroud)

如果我在浏览器中调用该URL,我会得到一个正确的结果,这是一个json对象,其中包含我的一些用户信息. …

delphi rest gzip utf-8 delphi-xe5

6
推荐指数
1
解决办法
2693
查看次数

在Delphi XE5/Android平台上播放声音警报/哔哔声

有没有办法在Delphi XE5/Android平台上播放声音警报/哔哔声?

我想要实现的是如何使用Beep功能播放系统警报/哔声,如Windows应用程序或至少找到系统音频文件的路径,以便我可以根据事件运行特定的音频文件.

delphi android delphi-xe5

5
推荐指数
1
解决办法
4990
查看次数

Firemonkey TWebBrowser输入替代方案?

正如Embarcadero所说:

" WebBrowser不接受Android上的键盘输入

在Android设备上,屏幕键盘在TWebBrowser控件中不可用.例如,这意味着用户无法完成Web表单.TWebBrowser控件应用于显示信息或文档.应使用FireMonkey控件执行用户交互."

链接

如果我们必须使用像Dropbox或Google Drive这样的云识别页面,这非常烦人.

使用Delphi XE5和REST组件,我可以打开登录页面,但键盘在Android上无法正常运行.

因此,如何使用FireMonkey控件执行交互,因为Embarcadero说:用户交互应该使用FireMonkey控件执行.

编辑:

Delphi XE 6似乎是唯一不错的解决方案:

对TWebBrowser的更新:Windows上可用的Web浏览器(SHDocVw.TWebBrowser)已更新为最新版本的Internet Explorer.

delphi android firemonkey delphi-xe5 delphi-xe6

5
推荐指数
1
解决办法
3664
查看次数

如何在Delphi中更改Listview项的颜色(Firemonkey Android)

如何在Firemonkey(Delphi Android)中更改ListView项的背景颜色?Listview本身可以设置为透明,但如果我添加一个Item它有白色背景/

delphi android listview firemonkey delphi-xe5

5
推荐指数
1
解决办法
1780
查看次数