C++ Builder11.3中TFDGUIxLoginDialog标题不生效及修改、安全疑问
C++ Builder 11.3 FireDAC登录对话框问题解决
一、自定义标题不生效的原因及解决
- 先确认TFDConnection的LoginDialog属性已绑定到数据模块的TFDGUIxLoginDialog组件:可视化设计时在对象 inspector 里将LoginDialog下拉选择对应组件,或代码中手动赋值(如
FDConnection1->LoginDialog = DataModule1->FDGUIxLoginDialog1;),未绑定会调用FireDAC默认对话框,标题固定为“FireDAC Login”。 - 检查TFDGUIxLoginDialog的Title属性是否设置了自定义文本:设计时在属性面板输入标题,或运行前赋值
FDGUIxLoginDialog1->Title = L"我的数据库登录";。 - 排除全局设置干扰:若FDManager的GUIx设置指定了默认登录对话框,会覆盖局部配置,可在FDManager属性中将LoginDialog设为
nil,让TFDConnection的局部设置生效。
二、修改对话框图标及“Enter your credentials”文本
- 修改图标:在TFDGUIxLoginDialog的属性面板找到
Icon属性,点击右侧按钮选择本地.ico文件;也可运行时通过FDGUIxLoginDialog1->Icon->LoadFromFile(L"path/to/your/icon.ico");加载。 - 修改提示文本:
- 设计时:在TFDGUIxLoginDialog的属性面板找到
CustomMessage属性,输入自定义文本(如“请输入数据库登录信息”),会直接覆盖默认提示。 - 运行时:在对话框显示前(比如TFDConnection的BeforeConnect事件中)赋值
FDGUIxLoginDialog1->CustomMessage = L"请输入登录凭据";。
注:若找不到CustomMessage属性,也可在对话框OnShow事件中直接定位到提示标签控件修改其Caption,不建议修改FireDAC全局资源字符串(会影响所有登录对话框)。
- 设计时:在TFDGUIxLoginDialog的属性面板找到
三、对话框安全性确认
FireDAC的TFDGUIxLoginDialog是官方针对数据库登录场景设计的专用组件,安全性可放心:
- 密码输入框采用掩码模式,不会明文显示;
- 输入的密码仅传递给TFDConnection的连接参数,不会向其他组件或外部泄露;
- FireDAC对连接参数中的密码采用加密存储(FDConnection.Params.Password为加密状态,仅在建立连接时临时解密),不会在内存中长期留存明文;
- 对话框关闭后,临时输入的密码数据会被及时清理,不存在随意留存的风险。
内容的提问来源于stack exchange,提问作者user3161924
相关产品推荐
相关产品推荐

