当我问这个问题时,我接受了回答,因为它是有道理的,文件指出是正确的.
使用IE6测试一台机器与IE7使用相同的编译可执行文件使用TWebBrowser进行测试,行为确实如回答中所指出的那样.
现在我再次回答问题,在IE8的机器中,服务器将相同的可执行文件识别为IE7.我写了一个简单的rails应用程序,它可以驱动用户代理,很明显.在同一台机器上,如果我在IE中访问此rails应用程序,它会打印:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)
Run Code Online (Sandbox Code Playgroud)
当我使用该可执行文件访问时:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)
Run Code Online (Sandbox Code Playgroud)
此外,在我的朋友Process Monitor的帮助下,我意识到实例化TWebBrowser的classid是{8856F961-340A-11D0-A96B-00C04FD705A2},它在Windows注册表中的名称为"Microsoft Web Browser"并指向ieframe. DLL.
现在事情变得有点奇怪了.如果我去system32/ieframe.dll并检查版本... 8.0.
我真的很困惑.问题是:当我使用TWebBrowser时,会使用ie版本吗?
谢谢.
当我刚才问这个问题时,FastString单元来解决我的问题.
现在我开始将我的软件从D7迁移到XE2.我的问题是,我现在有什么替代品,因为看起来FastString将不再解决问题?
...或者,更乐观的是,Delphi本身是否解决了这些性能问题?
我必须开发一个应用程序,以便在Windows CE上运行,访问远程Firebird数据库.我想用Delphi这样做.可能吗?
在我看来,MIDP中的套接字创建存在某种限制.我需要与服务器建立很多连接(没有任何结果),并在第四或第四次尝试我的应用程序崩溃.它在模拟器和我的真实设备中也崩溃了.
为了隔离它受我的代码影响的任何可能性,我隔离了以下代码:
try {
StreamConnection c;
StringBuffer sb = new StringBuffer();
c = (StreamConnection) Connector.open(
"http://www.cnn.com.br/", Connector.READ_WRITE);
InputStreamReader r = new InputStreamReader(c.openInputStream(), "UTF-8");
System.out.println(r.read());
c.close();
} catch (IOException ex) {
ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这段代码在第13次尝试中崩溃了.
我试着在一个while循环中添加一个10秒的睡眠,并且它在第13次尝试也崩溃了.
崩溃消息是:
java.io.IOException: Resource limit exceeded for TCP client sockets
- com.sun.midp.io.j2me.socket.Protocol.open0(), bci=0
- com.sun.midp.io.j2me.socket.Protocol.connect(), bci=124
- com.sun.midp.io.j2me.socket.Protocol.open(), bci=125
Run Code Online (Sandbox Code Playgroud) 我在Delphi 7下使用Indy 9.00.10.
我用TIdMultiPartFormDataStream后使用一些数据TIdHTTP.当我尝试发布一些包含%的文本值的param,例如'100%brand'时,它会引发"没有格式%的参数".
在我看来,它正在调用我试图发布的值的一些格式函数,它希望每个%都是一个占位符,这不是我的情况.
这是一个已知的问题?它有解决方法吗?
我有一个firebird数据库,它正在削弱4GB文件系统的限制大小.如何将单个数据库文件拆分为多个文件?
我正在尝试编写一个函数Tdatetime(但是当我打开我的程序时,他必须现在显示数据)
下面我有一个功能,TDatetime但我有一个错误:
(((('''DecodeDateTime(data,rok,miesiac,dzien,godzina,minuta,sekunda,milisekunda);''))))
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, Buttons;
type
TForm1 = class(TForm)
edRok: TSpinEdit;
edMiesiac: TSpinEdit;
edDzien: TSpinEdit;
lbRok: TLabel;
lbMiesiac: TLabel;
lbDzien: TLabel;
lbDT: TLabel;
btnZamknij: TBitBtn;
procedure edRokChange(Sender: TObject);
procedure edDzienChange(Sender: TObject);
procedure DecodeDate(Date: TDateTime);
function DT(Dzien, Miesiac: Byte; Rok: Integer): Byte;
function GetDzienText(Dt: Byte): String;
function Now: TDateTime;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; …Run Code Online (Sandbox Code Playgroud) 我正在编写一个混合(Web /桌面)软件,它恰好在两个模块之间加载了同步.
我试图在它们之间的通信中使用尽可能多的HTTP代码.
在服务器端,我有Rails 3和Ruby 1.9(如果这个问题很重要).在桌面方面,我使用的是Delphi 7和Indy 9.0.50.
当我尝试获取更新的数据并且服务器端没有任何新内容时,我的服务器API返回代码304(未修改),我理解为在这种情况下最合适的代码.但是indy组件(TidHTTPClient)引发了一个Timeout Exception(特定于EIdReadTimeout).它实际上"等待"了几秒钟,导致我不舒服的延迟.
这个行为好吗?我使用的是不合适的HTTP代码吗?有没有办法避免组件一旦永远不会出现等待数据?
delphi ×6
delphi-7 ×3
delphi-xe2 ×2
indy ×2
ruby ×2
firebird ×1
firebird2.1 ×1
java ×1
java-me ×1
midp ×1
prawn ×1
sockets ×1
tdatetime ×1
windows ×1
windows-ce ×1