我是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现在支持Windows,MacOS,Android和iOS编程.有没有办法,使用Delphi(XE5)为Windows Mobiles编写程序?
请按照以下步骤操作:
Firemonkey Moblie ApplicationTGeustureManager组件添加到表单TButton向表单添加2个组件

双击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)在设备上,单击按钮2,然后单击是以弹出消息.将出现一个例外:

为什么会引发此异常?
我认为这与未使用的TGeustureManager组件有关.不,不是:
LocationDelphi xe5附带的Demo项目.TButton组件添加到LocationLabel,如下图所示:

OnClickEvent.这是我应该报告的错误吗?或者我做错了什么?
注意:此问题已被编辑,因为我的问题变得完全不同.您将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. …
有没有办法在不使用外部资源的情况下将两个字母的国家代码转换为可读的国家代码?
例如DE -> Germany,AD -> Andorra
如果我可以选择目标语言或使用系统语言会很好,因为我想用德语.
我有一个返回函数的功能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.
我试图读取一个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 XE5/Android平台上播放声音警报/哔哔声?
我想要实现的是如何使用Beep功能播放系统警报/哔声,如Windows应用程序或至少找到系统音频文件的路径,以便我可以根据事件运行特定的音频文件.
正如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.
如何在Firemonkey(Delphi Android)中更改ListView项的背景颜色?Listview本身可以设置为透明,但如果我添加一个Item它有白色背景/
delphi ×10
delphi-xe5 ×10
android ×4
firemonkey ×4
delphi-xe6 ×1
gzip ×1
ios ×1
listview ×1
localization ×1
rest ×1
utf-8 ×1
windows ×1