问题标签 [datamodule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
150 浏览

delphi - 如何正确删除 TTetheringManager?

我正在尝试进入应用程序共享以实现 Firemonkey 应用程序之间的通信,但在使用它时遇到了一些问题。特别是创建和删除TDataModule包含 a 的 aTTetheringManager似乎不像我预期的那样工作。

我创建了一个新的跨平台 Firemonkey 应用程序并添加了一个 DataModule。编译器是 bcc32c (CLANG C++11)。在 DataModule 上,我放置了一个TTetheringManager和一个TTetheringAppProfile组件并将属性设置ManagerTetheringAppProfile1to TetheringManager1

在 DataModule 的构造函数的析构函数中,我执行以下操作:

在主窗体上,我放置了一个按钮,并在OnClick事件中添加了以下代码:

有时删除DataModule会导致无效的指针操作System.pas似乎有一个线程被取消,它试图释放一些内存:

:7702c54f KERNELBASE.RaiseException + 0x58
:0040E151 System::TObject::FreeInstance(Self=????)
:0040E151 System::TObject::FreeInstance(Self=????)
:004D7F7C System::Classes::ThreadProc (线程=:0293BA00)
:0040FF1A系统::ThreadWrapper(参数=:02966B20)
:753e338a kernel32.BaseThreadInitThunk + 0x12
:776d9902 ntdll.RtlInitializeExceptionChain + 0x63
:776d98d5 ntdll.RtlInitializeExceptionChain + 03

当我将创建和删除拆分为两个不同的按钮事件处理程序时,它工作正常,但这不是我需要的......

我尝试了以下方法来解决这个问题,但没有成功:

  • 在删除之前等待OnEndManagersDiscovery事件同时调用Application->ProcessMessages()DataModule
  • Sleep(0)删除前调用DataModule
  • 调用Sleep(0)析构函数DataModule
  • 使用 Delphi 创建了类似的项目以排除 C++Builder 错误。与 C++ 应用程序中的行为相同。

我现在已经为此工作了好几个小时,但不知道为什么这不应该工作......

编辑

从不同的按钮 OnClick 处理程序调用构造函数和析构函数也并非总是有效。这取决于单击删除按钮的速度。

发现过程在单独的线程中完成。我认为同步这个线程有问题。CancelDiscoverManagers似乎并没有完全完成发现过程。

0 投票
1 回答
619 浏览

delphi-10.1-berlin - 如何在 Delphi 10.1 中创建 DataModule

我试图在我的多设备应用程序中为我的不可见组件创建一个 DataModule,但该应用程序不会编译给我以下错误:

在此处输入图像描述

0 投票
2 回答
1665 浏览

delphi - Delphi 单元自动添加到西雅图的使用中

在我的 Firemonkey 多设备项目中,IDE 不断将单元“FireDAC.VCLUI.Wait”添加到我在项目数据模块中的使用中。这个单元让我无法构建项目,因为它无法解析 Android 或 iOS 中的名称。奇怪的是它以前没有这样做,而且我没有向这个数据模块添加/更改任何东西。

我知道一些组件会在用途中添加单元,但正如我所说,它是 firemonkey 项目而不是 VCL 项目,所以它不应该添加这个。

如何防止 IDE 添加此单元?

0 投票
0 回答
199 浏览

database - 将参数值发送到 DataSetProvider

我在包含 ADOConnection、ADOQuery 和 DataSetProvider 的服务器上使用 DataModule。在 ADOQuery SQL 属性中,我指定了一个带有多个参数的查询。在客户端应用程序中,我想通过 ClientDataSet 向服务器的数据集发送几个输入参数。我知道如何只发送一个参数,如下面的代码所述:

如何在 DataRequest 函数中指定多个查询输入参数(例如 Edit1.Text 和 Edit2.Text)?谢谢!

0 投票
1 回答
132 浏览

delphi - 如何从 DLL 内部访问 DLL 中的图像?

在 Delphi 10.4 中,在 COM Server DLL ShellExtension 项目中,我向项目中添加了一个并在 DataModule 上DataModule放置了一个。TImageListImageList 包含在设计时添加的几个图像。现在,从DLL项目的主单元,我尝试访问 ImageList 中的图像:

GetBitmap行似乎导致错误,因为CodeSite.Send未执行以下行并且未分配图像。

显然,我从TImageListaDataModule内部 a访问图像的方式DLL是不正确的。

另一方面,在分配“自制”位图时,它确实有效

是否有另一种访问内部图像的工作方式DLL?我究竟做错了什么?

0 投票
2 回答
85 浏览

delphi - 无法在应用程序服务器 delphi 的 DLL 中调试数据模块

我想调试我创建的数据模块,它是 DLL 的一部分,但由于某些原因,我无法调试它。调试器似乎没有达到断点,有没有办法可以调试我的 Dll/数据模块。

0 投票
1 回答
111 浏览

delphi - 为什么Delphi崩溃时数据库控件的数据源消失

我正在使用 Delphi 10.4.1 Enterprise 并使用 SQLite 数据库编写了一个 VCL 程序。

由于我怀疑是 OneDrive 问题,我提到源代码文件夹是 OneDrive 管理的区域的一部分。

有时,在调试时,我的 Delphi 程序由于未知原因挂起,Delphi 退出,没有进一步通知。每当发生这种情况时,MainForm 和 DataModule (DM1) 之间的连接就会丢失:在 MainForm 的 Object Inspector 中,所有 DataSource 分配,即与 DataModule 中的 DataSource 的连接都消失了。此外,当我重新加载程序时,出现错误消息

模块“rtl270.bpl”中地址 500C3553 的访问冲突。读取地址 00000008

代码检查没有错误,但在编译时出现以下消息/请求:

模块“MainForm”链接到当前项目中找不到的模块“DM1”。你想删除/重定向到另一个模块的链接吗?

奇怪的是,IDE 中的 DataModule 设计表单不再可见,只剩下它的代码。因此,在 MainForm 中,DataModule 都不可见,因为 DB 控件的 DataSource 连接器中的下拉列表保持为空。最后但并非最不重要的一点是,当我尝试保存 MainForm 时,它说:

模块“*MainForm”引用了另一个模块,在加载 DM1 之前无法保存

无论我试图让它恢复正常,它都没有成功。但是,在 OneDrive 根文件夹中,我看到一个名为“ .849C9593-D756-4E56-8D6E-..etc.. ”的文件,由于其文件日期,它似乎与我的程序相关联。只能在关闭 OneDrive 时删除或修改,但重启后会恢复。

我被卡住了,已经很多天了。

有谁知道发生了什么,并且可以给我一个关于如何进行的提示?

0 投票
0 回答
125 浏览

image - 在后台线程中创建数据模块

我有TDatamodule一个TImageCollection(70 张图片)和 3 张图片TVirtualImageList
它的创建需要很多时间。该.dfm文件大小略高于 400 kB。

我想自动创建这个数据模块,因为图像在整个程序中都使用。但在项目源代码中Application.CreateForm(TDMImageStore, DMImageStore);需要 7-8 秒(IDE 内部/外部)。
稍后创建数据模块只会及时解决问题。

我认为这是所有主线程代码,因此任何尝试使用动画制作启动画面的尝试都会失败。

有没有办法解决这个问题,例如在后台创建数据模块?
在程序启动时,用户进入一个不需要图像的菜单屏幕,因此需要一些时间(例如,在设置“已创建”标志之前没有需要图像的操作)。

Delphi 10.4 Sydney 中的 Win32 程序。

(如果没有真正的解决方法,我可以使用带有图像的静态闪屏。)

0 投票
0 回答
35 浏览

delphi - 包中的 ImageCollection 在读取 sourceImages 时出错

我在包中的 DataModule 中有一个 ImageCollection。应用程序启动时会出现此错误。(德尔福亚历山大,Win 10,最新。)

在此处输入图像描述

是从 BPL 或 CoInitialize 中删除数据模块的解决方案(如果是,如何??)

谢谢