Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
Delphi 11 Alexandria
|
AW: Delphi 2010 - TEdit PasswordChar = #0 Bug lässt Cursor verschwinden
17. Aug 2017, 12:29
Oh stimmt, ich hatte es nicht in OnEnter drin, das ist auch das Problem.
Einfacher Workaround:
Delphi-Quellcode:
const
WM_ENTERED = WM_APP + 1292;
type
TForm21 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure Edit1Enter(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
protected
procedure WMENTERED( var Message: TMessage); message WM_ENTERED;
end;
var
Form21: TForm21;
implementation
{$R *.dfm}
procedure TForm21.Edit1Enter(Sender: TObject);
begin
PostMessage( Handle, WM_ENTERED, NativeUInt(Pointer(Sender)), 0);
end;
procedure TForm21.Edit1Exit(Sender: TObject);
begin
(Sender as TEdit).PasswordChar := ' *';
end;
procedure TForm21.WMENTERED( var Message: TMessage);
begin
TEdit( Message.WParam).PasswordChar := #0;
end;
// EDIT:
Ach so:
Hintergrund ist, dass durch das Vorgehen im OnEnter das Handle des Editfenster zerstört und neu erzeugt wird. Mit dem Postmessage passiert das erst danach.
Sebastian Jänicke Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
Geändert von jaenicke (17. Aug 2017 um 12:33 Uhr)
|