Ir al contenido


Foto

[TRUCO DELPHI] Determinar si un TEdit tiene Caracteres de Contraseñas.


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 29 agosto 2016 - 08:04


delphi
  1. //Determina, si el campo TEdit tiene Caracteres de Contraseña
  2. function HasPasswordChar(AHandle: HWND): Boolean;
  3. var
  4. dwStyle: DWORD;
  5. begin
  6. dwStyle := GetWindowLong(AHandle, GWL_STYLE);
  7. Result := (dwStyle and ES_PASSWORD) = ES_PASSWORD;
  8. end;
  9.  
  10. // Define los Caracteres al TEdit
  11. procedure SetPasswordChar(AHandle: HWND; Value: Char);
  12. var
  13. S: String;
  14. len: Integer;
  15. begin
  16. len := Sendmessage(AHandle, WM_GETTEXTLENGTH, 0, 0);
  17. SetLength(S, len);
  18. SendMessage(AHandle, WM_GETTEXT, len+1, lparam(@S[1]));
  19. SendMessage(AHandle, EM_SETPASSWORDCHAR, Ord(Value), 0);
  20. SendMessage(AHandle, WM_SETTEXT, 0, Integer(PChar(S)));
  21. end;
  22.  
  23. // Cancela y Revela el Texto detras.
  24. procedure CancelPasswordChar(AHandle: HWND);
  25. var
  26. S: string;
  27. len: Integer;
  28. begin
  29. len := SendMessage(AHandle, WM_GETTEXTLENGTH, 0, 0);
  30. SetLength(S, len);
  31. SendMessage(AHandle, WM_GETTEXT, len + 1, lParam(@S[1]));
  32. SendMessage(AHandle, EM_SETPASSWORDCHAR, 0, 0);
  33. SendMessage(AHandle, WM_SETTEXT, 0, Integer(PChar(S)));
  34. end;

Ejemplo de Uso:


delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. wnd: HWND;
  4. begin
  5. wnd := FindWindowEx(GetForeGroundWindow, 0, 'TEdit', nil);
  6. if wnd <> 0 then
  7. SetPasswordChar(wnd,'*');
  8. end;

Saludos!


  • 2




IP.Board spam blocked by CleanTalk.