我要做的是创建一种查看(不编辑)项目中包含的HTML页面的功能.欢迎页面已经嵌入了Web浏览器,因此它似乎是一个很好的候选者.
Curios为什么?这是一个背景信息的问题.
我需要字节大小,IMAGE_OPTIONAL_HEADER.SizeOfImage似乎向上舍入到(不确定)边界并且大于实际文件大小.
请考虑以下代码段:
requires
designide,
rtl,
vcl,
{$IF RTLVersion < 19.0} // E2026 Constant expression expected
//{$IF CompilerVersion = 22.0} // same as above
vcljpg;
{$ELSE}
vclimg;
{$IFEND}
Run Code Online (Sandbox Code Playgroud)
它似乎在语法上是正确的.但是,编译器会对其进行扼流并报告Constant expression expected
.这里到底发生了什么?
技术:目前仅在XE(15.0.3953.35171)上测试过.
当然,也欢迎变通方法的建议.
delphi compiler-construction conditional-compilation conditional-expressions delphi-xe
我有包含千位分隔符的字符串,但是没有字符串到数字函数想要正确使用它(使用JavaScript).我正在考虑通过剥离所有的千位分隔符来"准备"字符串,留下任何其他未处理的东西,并让Number
/ parseInt
/ parseFloat
函数(我对其行为感到满意)来决定其余部分.但似乎我不知道哪个RegExp可以做到这一点!
也欢迎更好的想法!
对不起,答案让我觉得它是多么糟糕的问题.我要实现的目标是:1)仅在任何情况下剥离千位分隔符,但2)不要打扰原始字符串,以便在无效数字的情况下获得NaN.
JavaScript仅限于解析的英语语言环境,因此为了简单起见假设千位分隔符是','当然,它永远不会匹配任何语言环境中的小数分隔符,因此更改为任何其他语言环境不应该造成问题)
现在,解析函数:
parseFloat('1023.95BARGAIN BYTES!') // parseXXX functions just "gives up" on invalid chars and returns 1023.95
Number('1023.95BARGAIN BYTES!') // while Number constructor behaves "strictly" and will return NaN
Run Code Online (Sandbox Code Playgroud)
有时我使用rhw松散的,有时严格.我想弄清楚为这两个函数准备字符串的最佳方法.
关于数字的有效性:
'1,023.99'
是完美的英文编号,剥离所有逗号将导致正确的结果.
'1,0,2,3.99'
虽然通用的逗号剥离会给出'1023.99'
不太可能正确的结果.
我想重现在任一给定文件的Windows资源管理器 - >属性对话框 - >常规属性页中显示的行为.具体来说,我想重现"磁盘大小"字段的确切值.
我在基础抽象类中有一个字段.我想让这个字段只读,以便在初始化子类后它的值不会改变.
但是抽象类不能有构造函数,而readonly只能从构造函数初始化.
怎么做到这一点?
当我使用D2007时,我真的习惯于Project > Project Page Options
保留和查看一些自由格式的项目注释,外部引用(这些几乎从来没有在内置的HTML 设计器中可以轻松查看)等等.现在我有Delphi XE并且Project Page Options
缺少此外,projpageide150.bpl
在项目菜单中,文档中提到的bin
目录中不存在.我如何解决它?我真的觉得能够在IDE中查看(不编辑!)HTML文档是一个非常方便的功能.
根据MS KB条目,有一个怪癖,CreateIconIndirect
其中识别HBITMAP
已创建BITMAPV5HEADER
传递给CreateDIBSection
(和BGRA通道布局).
但是, 当由s 引用时TBitmap
具有(PixelFormat = pf32bit) and (AlphaFormat = afDefined)
(表现为其他目的的alpha混合)Handle
的实例不被识别为用于创建图标或光标的有效alpha混合位图.
目前,我必须使用所描述的API调用(请参阅参考资料)创建TBitmap的完整副本,以使CreateIconIndirect
接受位图处理为alpha混合.我该如何克服这种笨拙?
尽管Delphi引用了什么
结构化类型可以包含其他结构化类型 一个类型可以有无限级别的结构
值得注意的例外是结构化类型常量
不能包含任何级别的文件类型值
我发现我不能使用记录常量作为相同类型的数组常量的元素.
type
MyRecord = record MyField: Integer end;
const
Typical: array[0..1] of MyRecord = ((MyField: 0), (MyField: 1));
{ now I tried to achieve more clarity by declaring a specific constant }
Zero: MyRecord = (MyField: 0);
{ and compiler refused to accept that }
Bad: array[0..1] of MyRecord = (Zero, (MyField: 1)); { E2029 '(' expected but identifier 'Zero' found }
Run Code Online (Sandbox Code Playgroud)
我用几个Borland编译器测试了这个代码,它们都表现出相同的行为.UPD:FPC也是如此,但不适用于GPC(!).
这里发生了什么?我是否更正问题标题中的"嵌套结构类型的嵌套常量不受支持"结论?对问题的任何更多分析?
我需要设置自定义超时TTcpClient
.我认为默认超时时间约为20-25秒,但我需要将其更改为500毫秒.有可能吗?怎么样?
procedure TForm1.Button1Click(Sender: TObject);
begin
TcpClient2.RemoteHost := '192.168.1.1';
TcpClient2.RemotePort := '23';
TcpClient2.Connect;
tcpclient2.Receiveln();
tcpclient2.Sendln('admin');
tcpclient2.Receiveln;
end;
Run Code Online (Sandbox Code Playgroud)
我尝试了non-blocking
选项,但是在我点击按钮后软件返回错误而且我必须再次执行4-5次.有帮助吗?
谢谢 :)