Ich zitiere mal aus dem PSDK
PSDK hat folgendes geschrieben: |
ES_PASSWORD
Displays an asterisk (*) for each character typed into the edit control. This style is valid only for single-line edit controls.
Windows XP: If the edit control is from user32.dll, the default password character is an asterisk. However, if the edit control is from comctl32.dll version 6, the default character is a black circle. |
Das bedeutet: Im Normalfall (nonVCL) erzeugst du ein Edit-Control und gibst ihm den Stil
ES_PASSWORD, damit die Eingabe durch Sternchen maskiert wird. Wenn du unter XP dann ein normales Manifest beilegst, wird der kleine Punkt draus, weil das Manifest für die Benutzung der Common Controls 6 sorgt.
Problem: Das ist bei der VCL-Komponente TEdit etwas schwierig, denn da kannst du den "Passwort-Modus" nur einstellen, wenn du im Objektinspektor unter "PasswordChar" das gewünschte Zeichen angibst. Und genau das ist das Problem. Dadurch wird zwar der o.g. Stil gesetzt,
gleichzeitig wird aber auch die Nachricht EM_SETPASSWORDCHAR ausgeführt, die dafür sorgt, dass genau dein Zeichen für die Maskierung angezeigt wird.
Abhilfe 1: Du müsstest eine eigene Komponente von TEdit ableiten und eine zusätzliche Eigenschaft (nennen wir sie "PasswordMode") definieren, die nur das o.g. Stilattribut
ES_PASSWORD setzt oder entfernt. Dann packst du das Manifest dazu, und voilà - zumindest unter XP hast du den Punkt im Editfeld.
Abhilfe 2: In der Zeichentabelle findest du ein ähnliches Zeichen, das du nutzen kannst. Das funktioniert dann auch unter anderen Windows-Versionen. Schau aber, dass es kein zu exotischer Zeichensatz ist, den nur du auf deinem PC hast.
