小编az0*_*z01的帖子

GO可以用作应用程序中的脚本引擎吗?

可以GO作为一个应用程序中的脚本语言?我找不到任何关于此的信息:是否有一个动态链接库版本,可以通过一些标准方法从Windows应用程序接口,如Compile(),Execute回调,变量共享等功能?

windows scripting go

12
推荐指数
2
解决办法
5556
查看次数

如何在Inno安装脚本的[Code]部分设置状态信息?

我知道 StatusMsg只能在[运行]选项中使用.我想在[Code]选择中使用相同的,请帮我解决这个问题,

先谢谢,塞缪尔J

installer inno-setup uninstallation

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

检查对象是否在delphi中创建

我正在使用Delphi 7构建一个应用程序.我在主窗体上添加了一个按钮.在该按钮上单击我想显示另一个表单.我只是在用户第一次点击该按钮时才尝试创建第二个表单.如果用户再次单击该按钮,则应显示已创建的表单.Form对象是否具有任何属性,我们可以通过该属性直接检查它是否已经创建?

delphi

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

Delphi 2007应用程序中设置的Windows 7兼容图标

在Delphi应用程序中定义win7兼容图标集的正确方法是什么?(桌面上的可变大小)

我设计了256*256图标,然后制作了16*16,24*24,48*48变体.(在Microsoft UX指南中,他们似乎说应该包含这些大小以便在桌面上正确显示).

我已将所有图标变体放在Gimp中的多层文档中,并将整个内容导出为ico.然后我将它作为项目选项中的应用程序图标,按照向应用程序分配图标的直接方式.

最后我在Win桌面(win7)上放了一个shorcut,但在桌面(Win 7)上制作"Ctrl + Wheel"(调整桌面图标的大小,如果你还不知道......)时,正确的图标是没有显示,48*48之后它保持相同的大小(我怀疑只使用了48*48版本).

delphi icons delphi-2007 windows-7

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

表单中的消息"未找到ToolsAPI"

在一个包中,我有一个实现ToolAPi IOTAIDENotifier接口的组件.包可以设置,编译并显示在调色板上.这个组件的一个方法被设计用于在使用它的项目被编译(并且不被执行)时执行特定的操作...到目前为止,一切都可以.

当我在属于另一个项目的TForm上使用此组件时,问题会出现.当我尝试构建它时,我得到编译器消息File not found:ToolsAPI.dcu.

以下是该软件包的用途:

Uses
  {$IFDEF PACKAGESETUP} DesignIntf, DesignEditors,{$ENDIF}
  Classes, ToolsAPI;
Run Code Online (Sandbox Code Playgroud)

PACKAGESETUP仅在编译bpl时定义

当我双击错误消息时,IDE将打开文件,从该文件中声明对ToolsAPI的引用...如何摆脱此问题?

delphi delphi-2007 toolsapi

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

Delphi类型等价和类型相等语法

这两种语法有什么区别?

Type
  AnIntType = Integer;
  AnotherIntType = Type Integer;
Run Code Online (Sandbox Code Playgroud)

我注意到第二个版本在程序参数(如Var/Const)中使用时兼容性较差,但不是AnIntType和AnotherIntType完全相同吗?

delphi pascal

3
推荐指数
2
解决办法
734
查看次数

使用SSE2的Delphi中的内联汇编低效过程

我有一个简单的基于浮点的操作,总是执行两次.所以我试图把它翻译成SSE,但它失败了.高级语言是Delphi,因为它不支持内在函数,所以我必须编写完整的东西.基本上我只有参数加载/卸载和一些乘法和加法:

Procedure TLP1Poly2.Process(Const _a1, _b1, _OldIn1, _OldIn2, _OldOut1, _OldOut2:     Double; Var Sample1, Sample2: Double);
Asm
  MOVLPD  XMM4, _a1
  MOVHPD  XMM4, _a1
  MOVLPD  XMM3, _b1
  MOVHPD  XMM3, _b1
  //
  MOVLPD  XMM0, [Sample1]
  MOVHPD  XMM0, [Sample2]
  MULPD   XMM0, XMM4
  //
  MOVLPD  XMM1, _OldIn1
  MOVHPD  XMM1, _OldIn2
  MULPD   XMM1, XMM4
  //
  MOVLPD  XMM2, _OldOut1
  MOVHPD  XMM2, _OldOut2
  MULPD   XMM2, XMM3
  //
  ADDPD   XMM0, XMM1
  ADDPD   XMM0, XMM2
  //
  MOVLPD  [Sample1], XMM0
  MOVHPD  [Sample2], XMM0
  //
  // which stands for twice this:
  // Sample:= …
Run Code Online (Sandbox Code Playgroud)

delphi x86 assembly sse

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

NT 文件系统上非常小的文件上的 FSCTL_GET_RETRIEVAL_POINTERS 失败

我的问题是:如果这个文件(非常重要)很小(小于一个簇,只有几个字节),如何获得文件磁盘偏移量。

目前我使用这个Windows API函数:

DeviceIOControl(FileHandle, FSCTL_GET_RETRIEVAL_POINTERS, @InBuffer, SizeOf(InBuffer), @OutBuffer, SizeOf(OutBuffer), Num, Nil);
FirsExtent.Start := OutBuffer.Pair[0].LogicalCluster ;
Run Code Online (Sandbox Code Playgroud)

它可以完美地处理大于集群的文件,但对于较小的文件却会失败,因为它总是返回空偏移量。

小文件应遵循什么程序?它们位于 NTFS 卷上的什么位置?有没有其他方法可以知道文件偏移量?这种微妙之处似乎没有在任何地方记录下来。

注意:问题被标记为 Delphi,但 C++ 示例或示例也将受到赞赏。

c++ filesystems delphi winapi ntfs

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

强制要在WriteComponent()中写入Real的默认值

在使用默认内置"组件流系统"的特定方式中,我发现如果属性的值等于默认值,则不会写入属性的值.

我们考虑以下方案:

您使用WriteComponent()ReadComponent()来保存组件的特定状态.我们将此状态称为预设.该组件包含具有setter的各种Real类型属性.

我们知道如果属性等于其默认值,则预设将不包括该值.

所以我们的组件

  1. 我们将属性AFLoat设置为0.0
  2. 我们将预设保存在流中(MyStream.WriteComponent(MyInstance))
  3. 我们将属性AFLoat设置 为0.101
  4. 我们重新加载预设(MyStream.ReadComponent(MyInstance))

最后在重新加载预设后,AFLoat仍然等于0.101,而我们期望它的值为0.0.

错误的起源很明显,属性的默认值永远不会写在组件流中.所以在第2步:该属性没有写入,然后在第4步它不被读取...相当恼人不是它!

有没有办法强制将属性的默认值写入组件流?实际上我对Real-typed属性有一个自制的修复,但我想知道是否有一个众所周知的方法来克服这个问题.

我的自定义修复是在调用ReadComponent ()之前使用TypInfos将Real-typed属性重置为0

Procedure ResetFloatToNull(Const AnObject: TObject; Recursive: Boolean);
Var
  i,j: Integer;
  LList: PPropList;
Begin
  j := GetPropList( AnObject, LList);
  If j > 0 Then For i:= 0 To j-1 Do
    Case LList^[i].PropType^.Kind Of
    // floats with the object scope
    tkFloat: SetFloatProp(AnObject,LList^[i].Name,0);
    // floats with a subobject …
Run Code Online (Sandbox Code Playgroud)

delphi serialization delphi-2007

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

Delphi 2009中的RTL版本号是多少?

我假设它是21.0,有人可以证实这个假设吗?

delphi delphi-2009

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

为什么不调用已发布的Int64属性 - 编写器方法 - 组件流

这是一个简单的测试,演示了我在项目中遇到的问题,使用Delphi 2007.我使用TComponent类来存储组件的各种状态.但永远不会调用Int64属性writer方法(仅设置目标字段).因此,不可能依靠编写器来更新GUI TList或类似的东西......

例如:

TTestClass = Class(TComponent)
  Private
    Fb: Int64;
    Fa: Integer;
    Procedure SetFa(Const Value: Integer);
    Procedure SetFb(Const Value: Int64);
  Published
    Property a: Integer Read Fa Write SetFa;
    Property b: Int64 Read Fb Write SetFb;
  Public
    Procedure SaveInstance(Var Str: TStream);
    Procedure LoadInstance(Var Str: TStream);
    Procedure ReallyLoadInstance(Var Str: TStream);
    Procedure Assign(Source: TPersistent); Override;
  End;

TForm1 = Class(TForm)
  Button1: TButton;
  Button2: TButton;
  Button3: TButton;
  Procedure Button1Click(Sender: TObject); // test: 1st step, save the class
  Procedure Button2Click(Sender: TObject); // test: 2nd step, try …
Run Code Online (Sandbox Code Playgroud)

delphi streaming components delphi-2007

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

如何不显示系统消息 - Delphi

考虑这部分代码:

Try
  arqTXT.LoadFromFile(LogPath);
finally
  ShowMessage(" The log file could not be found. Check if the service is running. ");
end;
Run Code Online (Sandbox Code Playgroud)

在我的消息之后,出现一条系统消息,其中显示以下消息:无法打开文件"C:\ log.txt".有没有办法不显示此系统消息?

我正在使用Delphi 2010

谢谢.

delphi file delphi-2010

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