如何将DBGrid的某一列(如密码)设为星号显示与输入(Mask)?

zjsheng 2003-05-27 09:51:36
如题
...全文
194 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanhui 2003-06-12
  • 打赏
  • 举报
回复
从netsys2(来电) 大侠学了点东西
zjsheng 2003-06-12
  • 打赏
  • 举报
回复

多谢各位帮忙
不过
还是baby0(baby0)眼光独到
一语点醒梦中人啊
希望以后少犯这种思维角度错误 :)
Behard 2003-06-02
  • 打赏
  • 举报
回复
其实不要出现明文就更好了
使用异或 ^
Behard 2003-06-02
  • 打赏
  • 举报
回复
同意 yufei_yf(太阳雨)
void __fastcall TfrmMain::TableLunchDateGetText(TField *Sender,
AnsiString &Text, bool DisplayText)
{
Text = "******";
}
双击 Table 控件,点击需要更改的 Field,按 F11
gdyt007 2003-06-02
  • 打赏
  • 举报
回复
说得没错!何必要真的是密码???
呵呵!糊弄一下就行了!反正不想让别人看!
yufei_yf 2003-05-29
  • 打赏
  • 举报
回复
在该字段的OnGetText编写如下代码;

Text = "**********";
baby0 2003-05-29
  • 打赏
  • 举报
回复
如果星号在DBGrid中显示,而且超级用户亦无法看到其他用户的密码,这说明显示和不显示的意义实在是不大阿
netsys2 2003-05-29
  • 打赏
  • 举报
回复
这样吧:

// 特殊字段的显示
void __fastcall TFrmQueryLog::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,TGridDrawState State)
{
if( DataCol == 1 ) //假设是第2项
{
DBGrid1->Canvas->TextOut(Rect.Left+1,Rect.Top+2,"*****");
}
}
zjsheng 2003-05-29
  • 打赏
  • 举报
回复

更改密码的我已写了代码用另外的输入窗口来实现,我只是想在DBGrid中用星号显示,使得即使是超级用户亦无法看到其他用户的密码。我想应该会有这种属性设置吧。
netsys2 2003-05-27
  • 打赏
  • 举报
回复
最好不要这样做,

通常密码设置设为星号,则需要用户输入两次,因为害怕用户输入错误,而你的DBGRID只能输入一次。

如果是明文,则可以只输入一次,因此用户输入的他看得到,可以自己核对。

你如果实在要用星号,你还是自己编写输入界面,用代码写入数据库吧,别用DBGRID的输入了

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧