标签: delphi-xe5

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

Android WebBrowser向下滚动页面

我开发了一个Android应用程序,Delphi XE 5我放了一个WebBrowser,因为我必须显示一个网页.顺便说一下(网页)的宽度为1400px,因此不能完全显示.

在此输入图像描述

宽度是固定的,因为我在网页上使用width:100%,但正如你在图片上看到的,我只有表的一部分.我错过了一个滚动条,允许我向下滑动页面并查看表格的其余部分.

我尝试添加一个TVertScrollBox并在其中我放了WebBrowser,但我仍然只看到页面的开头.我无法向下滚动它.

我怎么能解决这个问题?该网页div左侧已经有一个滚动条.您可以单击此处查看整个页面.

html delphi android delphi-xe5

7
推荐指数
1
解决办法
685
查看次数

由Delphi XE5创建的Android应用程序开始非常慢

我用Android开发了一些Android SDK应用程序,现在XE5出来了,我是一个非常有经验的Delphi开发人员,我尝试了一些关于Android应用程序的示例,我的印象是用XE5设计的Android应用程序运行得很慢,他们开始很慢,差不多4秒,黑屏,破坏了整个体验.

我知道XE5 Android应用程序以本机代码运行,这还有一个原因,它们应该非常快

我能做些什么吗?

我正在使用三星Galaxy S2进行测试,所以它与测试设备无关.

delphi performance delphi-xe5

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

如何在Delphi XE5下找到解决方案

我开始在Delphi XE5 for iOS下开发游戏.我对Firemonkey的Resolution功能有疑问.

当我打开屏幕并检查iPhone的分辨率时,我得到320x480.但iPhone 4和5的原生分辨率翻了一番.我在官方Delphi页面上发现FireMonkey通过"Resolution"重新计算屏幕,这是用于Retina显示屏2.

我认为这对于常规应用程序来说很酷,但是当你开始做游戏而你想通过代码操作图像时会带来奇怪的情况.

我的问题是 - 有没有办法找到实际的分辨率值或至少是什么是实际的设备类型(iPhone,iPad?)

谢谢

delphi ios firemonkey 2d-games delphi-xe5

7
推荐指数
1
解决办法
1774
查看次数

用于高DPI Windows的Delphi Firemonkey Scale

我认为在FireMonkey中扩展应用程序应该很容易,因为它应该也适用于Retina-Mac.似乎有一些背景魔法选择了另一种风格,但在Windows中似乎并非如此.

在VCL中有TForm.Scaled可以完成工作(或多或少).

对于FireMonkey,我发现Embarcadero的这篇文章,但似乎Embarcadero不太确定这种方法是否有用,因为在XE5中,sampleproject"ControlsDemo"不再包含scale-trackbar.它还需要在所有形式中都存在root-TLayout,可以设置比例因子.我的表单中没有这样的元素(我害怕添加一个,因为我不能确定我是否运行另一个firemonkey bug).

那么如何使用FireMonkey考虑不同的DPI设置?

编辑:我试图破解TPlatFormWin并将CurrentScreenScale设置为2但它不起作用:我有黑色工具栏,但没有缩放,但至少它使用了提供的TImage.MultiResBitmap中的HighRes替代.

delphi firemonkey delphi-xe5

7
推荐指数
1
解决办法
3755
查看次数

TListView SelCount报告虚拟列表中的项目数错误

我需要启用或禁用按钮,具体取决于列表中是否至少选择了一行.

以下是重现此问题的代码.使用OnData事件填充列表,它允许选择多行.

我以为我可以使用OnSelectItem来检测用户何时更改选择,然后使用TListView SelCount函数来检测所选行的数量.

问题是当用户选择多行时,SelCount返回0.如果手动填充列表(即不通过OnData事件),这可以正常工作.

有任何想法吗?

谢谢

更新:使用OnChange事件似乎可以解决问题.仍然有趣的是,当选择多行时(从SelectItem事件中),SelCount为什么返回0.

另一个更新:我发布了一个测试项目:https://dl.dropboxusercontent.com/u/35370420/TestListView2.zip以及截图:

在此输入图像描述

要重现此问题,请运行应用程序,选择Item1,然后按SHIFT +单击Item2.该按钮被禁用.我的目的是只要在列表中选择了至少一个项目,就动态启用按钮.如果没有选定项目,则禁用该按钮.

PAS文件:

unit MainUnit;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls;

type
  TForm3 = class(TForm)
    ListView1: TListView;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ListView1Data(Sender: TObject; Item: TListItem);
    procedure ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
 ListView1.Items.Count := 5;
end;

procedure …
Run Code Online (Sandbox Code Playgroud)

delphi vcl tlistview delphi-xe5

7
推荐指数
1
解决办法
1443
查看次数

如何在已打开的Delphi IDE中从另一个应用程序打开.pas文件并定位到行#

假设我打开了Delphi IDE,如何打开.pas在另一个应用程序中选择的文件并在Delphi IDE中打开它,并将其定位到特定的行号?

我见过一些编辑工具可以做到这一点.

我不确定它是否只是普通文件打开的选项(例如,使用默认文件关联)或命令行选项,或者您需要DDE或COM或完全不同的东西.

请注意,我不想关闭项目并重新打开一个新的或假的项目.

另外,我不希望将文件添加到项目中.我只是想打开它.

例如,当您<ctrl>-click使用varible或type时,IDE将打开包含该符号的文件,并转到声明该符号的行.这就是我想要的 - 但是来自外部应用程序.(我不是在寻找一个符号,只是一条线.)

我目前正在使用Delphi XE5,所以我对新的Delphi版本感兴趣,而不是XE2之前的版本.

(部分问题是,如何确保IDE已经打开,该文件是在当前IDE内部的新选项卡中打开而不是在IDE的另一个实例中打开的?)

ide delphi delphi-xe5

7
推荐指数
1
解决办法
1320
查看次数

具有重载功能的编译器错误

以下代码给出了堆栈溢出:

function Func(x : Double) : Double; overload;
function Func(x : Integer) : Double; overload;


function Func(x : Double) : Double;
begin
  Result := Func(Round(x));
end;


function Func(x : Integer) : Double;
begin
  Result := 1.0;
end;
Run Code Online (Sandbox Code Playgroud)

Integer重载函数不会被调用时,Double重载函数调用自身,直到堆栈溢出。

以下代码按预期工作:

function Func2(x : Double) : Double; overload;
function Func2(x : Integer) : Double; overload;

function Func2(x : Double) : Double;
var
  ix : Integer;
begin
  ix := Round(x);
  Result := Func(ix);
end;


function Func2(x : Integer) : …
Run Code Online (Sandbox Code Playgroud)

delphi overload-resolution delphi-xe5

7
推荐指数
2
解决办法
140
查看次数

更快的替代InttoStr/StrToInt?

我想知道是否有更快的替代品System.IntToStr / System.StrToInt.有一个快速版本,但只有UTF8.哪个是Int32ToUTF8来自SynCommons.pas慢速字符串转换并且由于慢字符串转换,它必然会很慢.purepascal RTL版本对于64位来说真的很慢.

delphi delphi-xe5

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

LongDayNames - 最初在SysUtils中

从Delphi XE迁移到XE5.

Label1.Caption:= 'Today''s day is '+LongDayNames[DayOfWeek(Date)];
Run Code Online (Sandbox Code Playgroud)

'LongDayNames'不再有效.我看到Delphi将这些用于我的用途:

System.SysUtils, System.Variants, System.Classes,
Run Code Online (Sandbox Code Playgroud)

我如何找到'LongDayNames'以便它可以工作?

delphi delphi-xe delphi-xe5

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