2011年2月17日木曜日

Delphi TEditのPasswordCharに「*(アスタリスク)」を指定すると「●(黒丸)」で表示されてしまう

TEditのPasswordCharに「*(アスタリスク)」を指定すると「●(黒丸)」で表示されてしまう
MSDNによるとCommon Controlのバージョン6以降のEditコントロールの
パスワード文字のデフォルト値が●に変更になってて
Delphiの方でもテーマが有効でPasswordCharが*の時は
コントロールのデフォルトに合わせる様になってるのが問題みたいですね。

Formの宣言の上に下記を追加したら良いかと

TEdit = class(StdCtrls.TEdit)
procedure CreateWnd; override;
end;

procedure TEdit.CreateWnd;
begin
inherited;
if PasswordChar <> #0 then
SendMessage(Handle, EM_SETPASSWORDCHAR, Ord(PasswordChar), 0);
end;


ソース:Delphi Q&A
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+201102/11020018.txt

0 件のコメント:

コメントを投稿