Delphi VCL组件的"Tag"属性是否有任何特定用途?我用Google搜索了几个例子,例如,使用'color'属性或者使用值作为指针地址,但使用它是"好习惯",还是因为它与UI的程序逻辑?
我想迭代一组特定的值.简单的例子如下
program Project1;
{$APPTYPE CONSOLE}
var
a, b: word;
wait: string;
begin
a := 0;
for b in [1,5,10,20] do
begin
a := a + 1;
writeln('Iteration = ', a, ', value = ', b);
end;
read(wait);
end.
Run Code Online (Sandbox Code Playgroud)
这里的示例代码完成了我的预期并产生以下内容
迭代= 1,值= 1
迭代= 2,值= 5
迭代= 3,值= 10
迭代= 4,值= 20
现在,如果我改变集合的顺序
for b in [20,10,5,1] do
Run Code Online (Sandbox Code Playgroud)
输出与原始输出相同,即不保留值的顺序.
实现这个的最佳方法是什么?
我正在研究旧程序的GUI(在Delphi中).有些表单很小,并且有许多非可视组件(UDP服务器,UDP客户端等).我确信我曾经能够用热键隐藏/显示表单上的非可视组件,但我不记得它是什么.它可能是一个加载项,因为升级到XE后我没有加入.有谁知道这可能是哪里/什么?
我有一个函数,它传递一个整数值,表示一个步长值.我想测试5个单独的条件:值= 0值= 1值= -1值> 1值<-1
目前,这是作为一组if语句实现的,我想为case语句更改它.我对特定值的情况没有问题,甚至是有限的范围(例如1..10),但是我如何编写表示值> 1或值<-1的情况?
我读过的几乎所有Delphi代码都有单元接口部分中的所有类类型定义,但我在实现部分中偶尔看到了类型定义的使用.
它们之间究竟有什么区别,为什么我会使用它?
Function overloading by return type?
has a very detailed answer on the rational on function overloading by return type, and from what I can see Delphi does not allow this, but are there any workarounds to overload a function based on different return type in Delphi?
IDE Object Inspector使用下拉ColorBox显示TColor属性,颜色可以通过名称选择 - clBlack等,如图形单元中所定义.问题是在图形单元中定义的clWeb颜色不存在,我定义的任何自定义颜色也不存在.
那么如何扩展Object Inspector中可选择的已定义颜色?
PS Delphi XE
我将要开展一个项目,该项目需要(相当)准确地为来自定制硬件的传入RS232串行和网络数据加盖时间戳.由于数据来自多个独立的硬件源,我需要为所有数据加时间戳,以便可以对其进行校正/插值到标称时间点.
我的直接虽然只是使用内置的Now命令来设置时间戳,但是快速谷歌似乎表明这只能准确到大约50毫秒左右.
不幸的是,我读的越多,我就越困惑.在GetTickCount和QueryPerformanceCounter上似乎存在许多相互矛盾的建议,由于当今的多核处理器和CPU限制而引发复杂化.我也看过推荐使用Windows多媒体计时器的帖子,但我似乎无法找到任何代码片段来执行此操作.
那么,任何人都可以告诉我:
1)'现在'的准确度如何.
2)是否有简单,更高精度的替代方案.
注意:我希望时间戳到10毫秒内,我不是在寻找一个计时器,只是一个更好的时间戳方法.这将在Windows 7 32位低功耗微型PC上运行.如果它有任何区别,我将使用Delphi XE或Delphi 2007.
按照设计,当应用程序最小化时,Vista上的工具栏应用程序缩略图不会更新,因为最小化窗口本身不会重绘.对于我所拥有的监控应用程序,在应用程序保持最小化时更新应用程序缩略图会很有用.我正在使用Delphi 2009.任何人都可以建议一个好的解决方法吗?
HMcG
我有一个带有方法的记录类型,表示特定的硬件测量类型,从仪器读取为字符串.该记录包含对字符串的隐式转换(以及来自).如果我把一个字符串作为记录类型,它似乎工作,但这样安全吗?也就是说,将字符串转换为具有隐式字符串转换的记录是否会根据分配临时值调用隐式转换?
var a: MeasurementRecord; // record type with implicit string conversion & decode methods
b: string;
c:double;
begin
b := Edit1.Text; // Or any other string source
a:=b; //Ok
a:= edit1.text; //Ok
c:= a.returnQc; // returns measurement quality value
c:= MeasurementRecord(Edit1.text).returnQC; //Avoiding local variable. This works, but is it correct useage?
end;
Run Code Online (Sandbox Code Playgroud) delphi ×10
delphi-xe ×2
casting ×1
components ×1
dwm ×1
enumeration ×1
function ×1
implicit ×1
overloading ×1
record ×1
timestamp ×1
toolbar ×1
vcl ×1