标签: delphi-xe5

Delphi获取android组合选择项目文本

我有一个组合框,里面有很多项目,我必须在变量中输入所选项目的名称.

var a:string;
begin
 a:=ComboBox1.Text;
end;
Run Code Online (Sandbox Code Playgroud)

这是我用于Delphi VCL应用程序的方式,它可以工作.在这里,我正在使用Firemonkey和Android开发,我没有text属性.

如何在组合框中获取所选项目的文本?

delphi android combobox delphi-xe5

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

是否有建议的路径为Delphi XE5安装JEDI和JVCL?

我看到JCL和JVCL现在在GitHub中,我之前使用内置安装程序在XE3下安装了它们.我还使用了Embarcadero页面上发布的XE4'special' .

有人设法让JCL和JVCL与XE5合作吗?

delphi jvcl jedi-code-library delphi-xe5

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

Delphi XE5中的ShowMessage缩短了

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变量上时,它会显示完整的内容.

windows delphi delphi-xe5

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

FireMonkey中的AlphaBlend

如何AlphaBlend在FireMonkey桌面应用程序中更改(表单的)值?好吧它可以在VCL应用程序中使用,但我在FireMonkey中找不到它.

截图:

在此输入图像描述

delphi alphablending firemonkey delphi-xe5

5
推荐指数
2
解决办法
4238
查看次数

录制到wav文件

我正在尝试使用适用于Android的XE5 Firemonkey创建一个wav文件

从这个链接:http://i-liger.com/article/android-wav-audio-recording

我读到我们必须忘记使用MediaRecorder类.

首先,我们必须忘记MediaRecorder类.相反,我们必须使用AudioRecord,这个类提供了更大的灵活性.

如何在XE5中使用AudioRecord?

delphi android firemonkey delphi-xe5

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

如何将屏幕坐标转换为控制坐标

我需要能够在同一时刻拦截平板电脑上几个水龙头的代码.在之前关于如何在同一时刻(不可能)处理多个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)

delphi android delphi-xe5

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

如何阻止F7进入Embarcadero代码?

我试图用单行调试多个函数调用的密集代码.我想单步执行我编写的所有代码,但在这样做的过程中,我不断发现自己使用提供的源代码,包括汇编代码.

这发生在运行XE5的机器上的客户端站点上.它不会发生在我自己的代码上,运行XE2和XE4.

什么是神奇的设置,让他们按照我想要的方式工作?

delphi debugging delphi-xe5

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

一次编译多个项目时,抛出“ System.OutOfMemoryException类型的异常”

我使用Embarcadero Delphi XE5企业版。我有一个由17个项目组成的项目组。当我在第七个已编译项目IDE之后单击“全部编译”时,抛出异常:

[Fatal Error] Exception of type 'System.OutOfMemoryException' was thrown.
Run Code Online (Sandbox Code Playgroud)

这种错误的原因是什么?如何处理?

delphi out-of-memory delphi-xe5

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

如何在Delphi中获取android版本(4.1.1,4.4.2,...)

我想获取 Android 设备的版本。在Java中是android.os.Build.VERSION.RELEASE,在Delphi中是怎样的?

delphi android android-version delphi-xe5

4
推荐指数
1
解决办法
2601
查看次数

在第二台显示器上打开Chrome?

我正在尝试制作一个强制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 google-chrome delphi-xe5

4
推荐指数
1
解决办法
1万
查看次数