You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++Builder FMX TPrintDialog->Copies运行时修改后不生效求助

解决C++Builder 10.4 FMX TPrintDialog Copies属性不更新问题

这是CBuilder 10.4 FMX组件在Windows平台的已知问题,Delphi版本因属性同步机制差异可正常获取值,C版本需通过以下方式处理:

方法一:直接读取Win32打印对话框底层数据

绕过FMX组件的Copies属性,直接从Win32 API的打印对话框结构体中获取用户设置的份数:

#include <Winapi.PrintDlg.hpp>

if (!PrintDialog1->Execute()) return;

// 转换对话框句柄为PRINTDLGEX结构体指针
PRINTDLGEX* pPrintDlg = reinterpret_cast<PRINTDLGEX*>(PrintDialog1->DialogHandle);
if (pPrintDlg != nullptr)
{
    int copyCount = pPrintDlg->nCopies;
    ShowMessage(IntToStr(copyCount));
}

方法二:替换为VCL TPrintDialog(若项目兼容)

如果项目允许混合使用VCL组件,可直接替换为VCL的TPrintDialog,其Copies属性可正常同步用户输入:

// 确保已添加VCL的PrintDialog组件到窗体
if (!Vcl::Dialogs::PrintDialog1->Execute()) return;

int cnt = Vcl::Dialogs::PrintDialog1->Copies;
ShowMessage(IntToStr(cnt));

内容的提问来源于stack exchange,提问作者Максим Афиногенов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:35:56