我有一个组合框,里面有很多项目,我必须在变量中输入所选项目的名称.
var a:string;
begin
a:=ComboBox1.Text;
end;
Run Code Online (Sandbox Code Playgroud)
这是我用于Delphi VCL应用程序的方式,它可以工作.在这里,我正在使用Firemonkey和Android开发,我没有text属性.
如何在组合框中获取所选项目的文本?
我看到JCL和JVCL现在在GitHub中,我之前使用内置安装程序在XE3下安装了它们.我还使用了Embarcadero页面上发布的XE4'special' .
有人设法让JCL和JVCL与XE5合作吗?
ShowMessage() 在Delphi XE5中缩短了文本.
这对我来说是新的,还是由于编码网址时编码的字符?我需要看到整个事情.
我使用以下函数来编码我的网址:
function TConnector.EncodeUrl(aDecodedUrl: String): String;
begin
result:= tIdUri.URLEncode(aDecodedUrl);
end;
Run Code Online (Sandbox Code Playgroud)
然后我在这里打电话:
zEncodedUrl := Connector.EncodeUrl('http://' + Connector.Host + 'Node:' + edtPath.Text + '.GetObjectListDataAsJSON');
Run Code Online (Sandbox Code Playgroud)
编辑:我传递给ShowMessage时得到这个:

我应该注意,在调试并将鼠标放在zEncodedUrl变量上时,它会显示完整的内容.
如何AlphaBlend在FireMonkey桌面应用程序中更改(表单的)值?好吧它可以在VCL应用程序中使用,但我在FireMonkey中找不到它.
截图:

我正在尝试使用适用于Android的XE5 Firemonkey创建一个wav文件
从这个链接:http://i-liger.com/article/android-wav-audio-recording
我读到我们必须忘记使用MediaRecorder类.
首先,我们必须忘记MediaRecorder类.相反,我们必须使用AudioRecord,这个类提供了更大的灵活性.
如何在XE5中使用AudioRecord?
我需要能够在同一时刻拦截平板电脑上几个水龙头的代码.在之前关于如何在同一时刻(不可能)处理多个OnMouseDown的问题中,提供了一个链接,该链接回答了如何在Delphi-Android中处理多点触控点击的问题.但是,此代码返回屏幕坐标中的(x,y)位置,我不知道如何将这些位置转换为特定控件的本地坐标.Delphi 文档引用了ScreenToClient函数,但只将屏幕坐标转换为表格坐标,这在Android中几乎没用(文档是关于XE2的,但该函数仍然存在于XE5中,但该函数已从FMX.Platform移除到FMX.形成).
有没有一种简单的方法可以将屏幕坐标转换为FMX中的TControl坐标,就像在VCL中一样?当然,我可以"取消父级"一个控件,记下它的左上角坐标,并为每个父级执行此操作,直到到达基本形式,但这非常繁琐.
编辑1
我目前的方法是获取TControl(一个TPanel)的顶部(x,y)坐标,它是要点击的控件(实际上是TRectangle)的父级,并添加这些以检查点击是否在该矩形内.请参阅下面的示例代码
procedure TKeyBoard.process_touch (Event: TTouchEvent; status_byte: Int32);
var
key: TKey;
p, q: TPointF;
i: Integer;
x, y: single;
begin
// Check whether at least one event is present. If so, i points to the last event
i := Length (Event.Points) - 1;
if i < 0 then Exit;
// Get (x, y) coordinates from event. It's in screen coordinates
x := Event.Points [i].Position.X;
y := Event.Points [i].Position.Y;
// FControl …Run Code Online (Sandbox Code Playgroud) 我试图用单行调试多个函数调用的密集代码.我想单步执行我编写的所有代码,但在这样做的过程中,我不断发现自己使用提供的源代码,包括汇编代码.
这发生在运行XE5的机器上的客户端站点上.它不会发生在我自己的代码上,运行XE2和XE4.
什么是神奇的设置,让他们按照我想要的方式工作?
我使用Embarcadero Delphi XE5企业版。我有一个由17个项目组成的项目组。当我在第七个已编译项目IDE之后单击“全部编译”时,抛出异常:
[Fatal Error] Exception of type 'System.OutOfMemoryException' was thrown.
Run Code Online (Sandbox Code Playgroud)
这种错误的原因是什么?如何处理?
我想获取 Android 设备的版本。在Java中是android.os.Build.VERSION.RELEASE,在Delphi中是怎样的?
我正在尝试制作一个强制Chrome窗口在我的第二台显示器上打开的应用程序,但我无论如何都找不到使用参数来做,现在我想知道我是否可以某种方式使用Delphi强制它打开第二个屏幕还是特定的像素?这只是我自己和我的电脑的应用程序,所以我可以根据我的情况专门设置代码.
我目前正在使用这段代码来启动应用程序
procedure TForm1.BtnClick(Sender: TObject);
begin
ExecProcess(ChromePath,'',False);
end;
function ExecProcess(ProgramName, WorkDir: string; Wait: boolean): integer;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CreateOK: boolean;
ExitCode: integer;
dwExitCode: DWORD;
begin
ExitCode := -1;
FillChar(StartInfo, SizeOf(TStartupInfo), #0);
FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
StartInfo.cb := SizeOf(TStartupInfo);
if WorkDir <> '' then
begin
CreateOK := CreateProcess(nil, Addr(ProgramName[1]), nil, Addr(WorkDir[1]),
false, CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, nil, nil,
StartInfo, ProcInfo);
end
else
begin
CreateOK := CreateProcess(nil, Addr(ProgramName[1]), nil, nil, false,
CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, nil, Addr(WorkDir[1]),
StartInfo, ProcInfo);
end;
{ check to …Run Code Online (Sandbox Code Playgroud) delphi ×10
delphi-xe5 ×10
android ×4
firemonkey ×2
combobox ×1
debugging ×1
jvcl ×1
windows ×1