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

宽度是固定的,因为我在网页上使用width:100%,但正如你在图片上看到的,我只有表的一部分.我错过了一个滚动条,允许我向下滑动页面并查看表格的其余部分.
我尝试添加一个TVertScrollBox并在其中我放了WebBrowser,但我仍然只看到页面的开头.我无法向下滚动它.
我怎么能解决这个问题?该网页div左侧已经有一个滚动条.您可以单击此处查看整个页面.
我用Android开发了一些Android SDK应用程序,现在XE5出来了,我是一个非常有经验的Delphi开发人员,我尝试了一些关于Android应用程序的示例,我的印象是用XE5设计的Android应用程序运行得很慢,他们开始很慢,差不多4秒,黑屏,破坏了整个体验.
我知道XE5 Android应用程序以本机代码运行,这还有一个原因,它们应该非常快
我能做些什么吗?
我正在使用三星Galaxy S2进行测试,所以它与测试设备无关.
我开始在Delphi XE5 for iOS下开发游戏.我对Firemonkey的Resolution功能有疑问.
当我打开屏幕并检查iPhone的分辨率时,我得到320x480.但iPhone 4和5的原生分辨率翻了一番.我在官方Delphi页面上发现FireMonkey通过"Resolution"重新计算屏幕,这是用于Retina显示屏2.
我认为这对于常规应用程序来说很酷,但是当你开始做游戏而你想通过代码操作图像时会带来奇怪的情况.
我的问题是 - 有没有办法找到实际的分辨率值或至少是什么是实际的设备类型(iPhone,iPad?)
谢谢
我认为在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替代.
我需要启用或禁用按钮,具体取决于列表中是否至少选择了一行.
以下是重现此问题的代码.使用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 IDE,如何打开.pas在另一个应用程序中选择的文件并在Delphi IDE中打开它,并将其定位到特定的行号?
我见过一些编辑工具可以做到这一点.
我不确定它是否只是普通文件打开的选项(例如,使用默认文件关联)或命令行选项,或者您需要DDE或COM或完全不同的东西.
请注意,我不想关闭项目并重新打开一个新的或假的项目.
另外,我不希望将文件添加到项目中.我只是想打开它.
例如,当您<ctrl>-click使用varible或type时,IDE将打开包含该符号的文件,并转到声明该符号的行.这就是我想要的 - 但是来自外部应用程序.(我不是在寻找一个符号,只是一条线.)
我目前正在使用Delphi XE5,所以我对新的Delphi版本感兴趣,而不是XE2之前的版本.
(部分问题是,如何确保IDE已经打开,该文件是在当前IDE内部的新选项卡中打开而不是在IDE的另一个实例中打开的?)
以下代码给出了堆栈溢出:
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) 我想知道是否有更快的替代品System.IntToStr / System.StrToInt.有一个快速版本,但只有UTF8.哪个是Int32ToUTF8来自SynCommons.pas慢速字符串转换并且由于慢字符串转换,它必然会很慢.purepascal RTL版本对于64位来说真的很慢.
从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 ×10
delphi-xe5 ×10
android ×2
firemonkey ×2
ios ×2
2d-games ×1
delphi-xe ×1
html ×1
ide ×1
performance ×1
tlistview ×1
vcl ×1