Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   EM_SHOWBALLOONTIP C++ a Delphi (https://www.clubdelphi.com/foros/showthread.php?t=87694)

Jose Roman 12-02-2015 15:20:24

Mensaje Bloq Mayús activado
 
Hola a todos,

Estoy trabajando con Delphi XE7 y en un Form hay un TEdit con la propiedad PasswordChar igual a *, mi pregunta es como hago para quitar el mensaje que aparece cuando el usuario tiene activada la tecla de Bloqueo de Mayusculas, esto debido a que estoy trabajando con los estilos que ya trae delphi pero el mensaje no aparece de la forma debida.


Gracias por su colaboracion.

Jose Roman 12-02-2015 21:12:34

EM_SHOWBALLOONTIP C++ a Delphi
 
Cordial saludo,

Estoy tratando de suprimir la advertencia CapsLook en un TEdit que tiene la propiedad PasswordChar := '*', encontre esta solucion pero no se como implementarlo en Delphi para que se suprima este mensaje.

Código:

WNDPROC g_wpEdit;

LRESULT RETROLLAMADA NoBalloonWndProc (HWND hwnd, UINT uMsg,
                                  WPARAM wParam, lParam LPARAM)
{
  switch (uMsg) {
  caso EM_SHOWBALLOONTIP: return false;
  }
  volver CallWindowProc (g_wpEdit, hwnd, uMsg, wParam, lParam);
}

BOOL
OnCreate ( HWND hwnd, LPC lpCreateStruct)
{
    g_hwndChild = CreateWindow (TEXT ("editar"), NULL,
            ES_PASSWORD | WS_CHILD | WS_VISIBLE, 0, 0,
            0, 0, hwnd, NULL, g_hinst, 0);
    if (! g_hwndChild) devolverá FALSE ; g_wpEdit = SubclassWindow (g_hwndChild, NoBalloonWndProc);
    return TRUE;
}

Gracias por su ayuda.

escafandra 15-02-2015 01:44:45

Aunque no lo puedo probar, pues lo escribí con delphi 7, prueba con este código en tu unit, delante del formulario:

Código Delphi [-]
type   
TEdit  = class(StdCtrls.TEdit)     
  protected       
    procedure WndProc(var Message: TMessage); override;   
end;

const   
ECM_FIRST  = $00001500;   
EM_SHOWBALLOONTIP = ECM_FIRST + 3;  

implementation  

procedure TEdit.WndProc(var Message: TMessage); 
begin
   if Message.Msg = EM_SHOWBALLOONTIP then exit;
   inherited WndProc(Message); 
end;

Saludos.

dec 15-02-2015 12:39:04

Hola,

Cita:

Empezado por escafandra (Mensaje 488825)
Aunque no lo puedo probar, pues lo escribí con delphi 7, prueba con este código en tu unit, delante del formulario:

Código Delphi [-]
type   
TEdit  = class(StdCtrls.TEdit)     
  protected       
    procedure WndProc(var Message: TMessage); override;   
end;

const   
ECM_FIRST  = $00001500;   
EM_SHOWBALLOONTIP = ECM_FIRST + 3;  

implementation  

procedure TEdit.WndProc(var Message: TMessage); 
begin
   if Message.Msg = EM_SHOWBALLOONTIP then exit;
   inherited WndProc(Message); 
end;

Saludos.

Funciona como se espera. Probado en Delphi XE2. :)

escafandra 15-02-2015 14:32:06

Me alegro, dec. :D

Saludos.

Jose Roman 15-02-2015 23:16:58

Gracias por su respuesta me fue de gran ayuda

Jose Roman 20-02-2015 16:27:43

Ustedes podrían ayudarme con un ejemplo de como implementar ese codigo con Edit con la propiedad PasswordChar := '*'??

Jose Roman 20-02-2015 16:47:18

De antemano gracias por la colaboración.

escafandra 21-02-2015 00:51:15

Te respondo aquí.


Saludos.


La franja horaria es GMT +2. Ahora son las 15:25:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi