2017-08-08 109 views
1

我正在使用Delphi XE3進行VCL應用程序開發。 我在TMaskEdit字段在我的表單中,我已將其設置爲PasswordChar屬性asterisk(*)。但是,當我執行應用程序它顯示密碼字符爲Dot(。)而不是星號(*)。德爾福-TEdit/TMaskEdit不顯示星號(*)Passwordchar

enter image description here

請幫我在這。

+2

這似乎當項目使用運行時主題和PasswordChar屬性是星號的情況發生。 – nil

+3

這是超出你的控制,因爲通用控制運行時主題管理這一點。一種選擇是不使用運行時主題,但可能不需要... – whosrdaddy

+2

這不是。但●:) – Victoria

回答

1

試試這個

SendMessage(MaskEdit1.Handle, EM_SETPASSWORDCHAR, Ord('*'), 0); 

你可以把這個在您的FORMCREATE事件或任何

+0

如果在OS中使用運行時主題,這不會改變任何內容。至少,不是因爲Windows 7。 –

+1

這不正是'PasswordChar'制定者所做的事情嗎? – kobik

+1

我只是手頭有XE7代碼,那裏setter會 - 如果值改變 - 設置'FPasswordChar:= Value;'然後,當'HandleAllocated'調用'RecreateWnd'時。但是,在TCustomEdit.CreateWnd中,在if(FPasswordChar <>#0)而不是(StyleServices.Enabled和((FPasswordChar ='*'))then')下有一個SendMessage'call。 – nil