Tag: delphi

如何通过HWND句柄在另一个进程中更改TDateTimePicker控件中当前选择的日期?

我正在编写一个自定义模块来使用专有软件。 (该软件已经停产,我没有源代码。)我的模块将作为一个单独的进程运行。 其目标是通过该专有软件实现操作自动化。 为此,我需要能够在TDateTimePicker控件中选择特定日期。 我知道这是一个Delphi控件,但就我对Delphi / Pascal的了解而言。 我可以找到这个控件的HWND句柄。 所以我的问题 – 有没有办法只在外部进程(使用WinAPI)的句柄中设置该控件的日期?

如何让我的应用程序使用Windows主题?

我正在使用一些Windows API来创建一个小应用程序。 我已经创建了按钮,窗口,好吧。 但问题是我创建的组件看起来不像操作系统主题。 它们看起来很简单: 请参阅按钮作为示例。 如何启用Windows主题? 它可以是C或Delphi。

将C“FOR”循环转换为Delphi

我正在尝试将FOR循环从C转换为Delphi,但我有些疑惑: 我在C中知道这段代码: for (i = 0; i size; i++) { //… } 在Delphi中是这样的: for i := 0 to mb.size do begin //… end; 但这个C代码怎么样: for (i = 0; i size; i+= mb->data_size) { //… } 可能看看Delphi? ?

如何在类型A中定义类型B中的类型A和类型B中的类型B?

我有两种类型。 一个类型A和一个类型B.问题类型A包含类型B,类型B包含类型A.这样的事情将不起作用: type typeA = record test1 : typeB; end; type typeB = record test2 : typeA; end; 编辑:那不是我的设计。 我将包含此类构造的C头文件(访问DLL)转换为delphi。 编辑2: “C ++结构是类AFAIR的另一个名称。并且必须有指针,而不是值本身。 – Arioch’1分钟之前”是的你是对的,它是一个类型的指针: 我在那里定义: test1 : ^typeB; 这会改变吗? test1 : Pointer; Edit3: C结构: /* DLPDFPAGE */ typedef struct dlpdfpage { CosObj Page; CosObj PrintSelect; ASFixedRect PageBBox; ASFixedRect ContentBBox; struct dlpdfpage *Next; PDRotate Angle; […]

什么是Delphi DCU文件?

什么是Delphi DCU文件? 我相信它代表“Delphi Compiled Unit”。 假设它包含目标代码,我是否正确,因此对应于从C / C ++源代码文件编译的“.o”文件?

Windows API是否具有滚动条控件?

在Delphi中,有一个名为TScrollBox的组件,它允许您向TImage组件添加滚动条。 我需要在纯Windows API中为图像添加滚动条。 那么Windows API有这样的控制吗? 我发现的只是这篇1993年的文章 ! 如果没有,那么如何向我的图像添加滚动条?

将C .obj文件链接到Delphi应用程序,解决标准C依赖项

我使用BCC 5.5命令行编译器编译了libxml2,现在我有很多.obj文件,我想链接到我的Delphi应用程序。 不幸的是,我得到了很多“不满意的前向或外部声明”错误,指向标准的C库函数,如memcpy,open,recv等……我该怎么做才能正确编译它? 我想避免依赖于msvcrt.dll或任何其他外部库。 提前致谢!

从Delphi调用SHGetSetSettings

我刚读了这个问题和这个问题 ,从那以后我一直试图在Delphi中调用SHGetSetSettings 。 这是shell32.dll一个function,但是在ShlObj.pas没有定义,所以我们需要编写自己的定义。 首先,我们需要翻译SHELLSTATE结构。 现在我只有有限的C经验,但我认为“:1”意味着结构的成员是一个位,也就是说,它们中的八个可以在一个字节中打包在一起。 我还假设DWORD = UINT = 32位无符号整数, LONG = int是32位有符号整数。 但后来我们遇到了一个问题:整个结构将占用228位,即28.5字节,这是……相当不可能,至少在Delphi中, sizeof(SomeRecord)必须是一个整数。 不过,我试图通过在末尾添加四个虚拟位来解决它。 232位= 29字节,这很好。 因此我试过了 PShellState = ^TShellState; TShellState = packed record Data1: cardinal; Data2: cardinal; Data3: cardinal; Data4: cardinal; Data5: cardinal; Data6: cardinal; Data7: cardinal; Data8: byte; // Actually a nibble would be sufficient end; 然后我宣布(为了以后的方便) const fShowAllObjects = […]

Delphi是否有任何与C的volatile变量等价的东西?

在C和C ++中,变量可以标记为volatile ,这意味着编译器不会对其进行优化,因为它可以在声明对象外部进行修改。 在Delphi编程中是否有相同的东西? 如果不是关键字,也许可以解决? 我的想法是使用绝对 ,但我不确定,这可能会引入其他副作用。

GetThemeStream用法

我对GetThemeStream函数很困惑 HRESULT GetThemeStream( _In_ HTHEME hTheme, _In_ int iPartId, _In_ int iStateId, _In_ int iPropId, _Out_ VOID **ppvStream, _Out_ DWORD *pcbStream, _In_ HINSTANCE hInst ); 如何使用这个function? 我应该将哪个参数传递给ppvStream ? 更新: 我正在尝试将它与delphi一起使用,来自UxTheme的声明: function GetThemeStream(hTheme: HTHEME; iPartId: Integer; iStateId: Integer; iPropId: Integer; var ppvStream: Pointer; var pcbStream: DWORD; hInst: HINST): HResult; stdcall; var h: HTHEME; Res: HResult; PBuf, […]