小编tim*_*11g的帖子

是否为变体记录分配了额外的空间?

我正在使用下面的变体记录.变量实例是Kro_Combi.SizeOf(Kro_Combi)报告7812个字节.SizeOf(Kro_Combi.data)报告7810个字节.构成变体记录的"非直接模式"情况的所有其他数据结构的SizeOf的总和也增加到7810字节.

为什么有两个字节的区别?我想让两个变体完全相互叠加.

TKro_Combi = record
  case directmode:boolean of
    true : (
      data : array[0..7809] of byte
           );
    false : (
      Combi_Name            : array[0..23] of char;                //24
      Gap1                  : array[0..63] of byte;                // 24-87 (64)
      Ins_Effect_Group      : array[1..12] of TIns_Effect_Params;  //74 each,   (Ins_Effect_Data=9 bytes)  74*12 = 888
      Mast_Effect_Params    : array[0..229] of byte;               // 976-1205 : 230 bytes
      Vect_Aud__Drum_Params : array[0..97] of byte;                //1206-1303  : 98 bytes
      Karma_Common          : array[0..509] of byte;               //1304-1813 : 510 bytes
      Karma_Module          : array[0..3] of TKarma_Module;        //1814-2557 …
Run Code Online (Sandbox Code Playgroud)

delphi record

3
推荐指数
1
解决办法
209
查看次数

Delphi格式字符串 - 宽度和精度值的限制?

本声明(在Delphi 7中)

writeln(logfile,format('%16.16d ',[FileInfo.size])+full_name);
Run Code Online (Sandbox Code Playgroud)

得到这个输出

0000000021239384 C:\DATA\DELPHI\sxf_archive10-13.zip
Run Code Online (Sandbox Code Playgroud)

这个说法

writeln(logfile,format('%17.17d ',[FileInfo.size])+full_name);
Run Code Online (Sandbox Code Playgroud)

得到这个输出

         21239384 C:\DATA\DELPHI\sxf_archive10-13.zip
Run Code Online (Sandbox Code Playgroud)

当精度说明符大于16时,带前导零的填充变为前导空格.帮助说"如果格式字符串包含精度说明符,则表示结果字符串必须至少包含指定的位数;如果值数字较少,结果字符串左边用零填充."

是否有另一种方法来格式化带有前导零的20个字符的整数?

delphi formatting delphi-7 number-formatting

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

可执行文件如何在父 CMD 或批处理上下文中设置环境变量?

我有一个设置环境变量的 Windows 控制台可执行文件(称为 SetEnvX.exe)。它SetEnvironmentVariable在内部调用Windows API。那个调用成功了。

在执行 SetEnvX.exe 的父 CMD 实例中,如果SET在 SetEnvX.exe 之后运行,它创建的环境变量不存在。

如果我用这些行创建一个 TEST.CMD

SetEnvX.exe
set
Run Code Online (Sandbox Code Playgroud)

SETTEST.CMD 中命令的输出也没有显示由 SetEnvX.exe 创建的环境变量。

SetEnvX.exe 等程序如何创建存在于交互式 CMD shell 或批处理文件范围内的环境变量?换句话说,我不想把环境变量放到全局的、持久化的环境中。

windows cmd batch-file

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

Lua 尾随空格去除

我在 NodeMCU 环境中使用 Lua。我看到了这个问题中提出的空白修剪方法。

答案建议采用以下形式:

str = string.gsub(str, "%s+", "")
Run Code Online (Sandbox Code Playgroud)

我发现它没有任何影响。这是交互式命令的输出(使用 LuaLoader)。

> print("|",part1,"|")
|   172.16.0.19 |
> part1a = string.gsub(part1, "%s+", "")

> print("|",part1a,"|")
|   172.16.0.19 |
> 
Run Code Online (Sandbox Code Playgroud)

如果我检查十六进制字符串,我会看到有一些选项卡。显然 %s (空白模式)不认为制表符是空白。是否存在导致 %s 匹配选项卡 (0x09) 的设置?

string lua

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

DateUtils中的IncHour过程

我有以下一点Delphi 7代码将TDateTime值增加一个小时.由于某种原因,它不起作用.

 StatusMemo.Lines.Add('prior '+DateTimeToStr(dtval));
 IncHour(dtval,1); // add an hour for DST
 StatusMemo.Lines.Add('after '+DateTimeToStr(dtval));
Run Code Online (Sandbox Code Playgroud)

代码运行后StatusMemo的内容:

prior 6/24/2009 5:35:40 AM
after 6/24/2009 5:35:40 AM
Run Code Online (Sandbox Code Playgroud)

它的行为就像IncHour不起作用.我尝试使用IncMinute(dtval,60),得到了相同的结果.我错过了什么?

delphi datetime delphi-7

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

从单元 - "应用程序"调用"application.processmessages"是未声明的

我正在使用Delphi 7.我正在尝试在非VCL单元中添加一个调用"application.processmessages"的过程.我收到错误"未声明的标识符:应用程序".

如何从非vcl单元引用TApplication类?在文档中的哪个位置描述了这个?由于广泛使用"应用"一词,很难找到.

delphi

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