Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Implementar una clase en un Objeto (TEdit) (https://www.clubdelphi.com/foros/showthread.php?t=87750)

Jose Roman 20-02-2015 17:30:46

Implementar una clase en un Objeto (TEdit)
 
Cordial saludo,
Este tengo codigo:
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;
el cual muy amablemente escafandra y dec me colaboraron a pasarlo a pascal, he tratado de implementarlo pero mi nivel no es muy avanzado, alguien podría darme un ejemplo de como se implementa este código para utilizarlo en un TEdit con la propiedad PasswordChar = '*'?

roman 20-02-2015 18:51:34

Creo que más que poner ese código deberías preguntar exactamente qué es lo que quieres hacer. Digo, porque poner un valor a la propiedad PasswordChar poco tiene que ver con redefinir el método WndProc.

// Saludos

Jose Roman 20-02-2015 19:11:29

Gracias Roman,

Aunque ya vi donde radicaba mi error, lo que deseo es que si el usuario tiene activado el bloqueo de mayusculas no le paresca el mensaje que por defecto tiene windows donde lo informa, mi error (que penas lo vine a ver) es que lo estaba implentando asi:
Código Delphi [-]
TEdit  = class(StdCtrls.TEdit)
y yo tengo TLabeledEdit y por mas que he tratado no puedo hacer que lo tomara opte por cambiarlo a un tedit, aunque si sabes como hacerlo te agradesco.

escafandra 21-02-2015 00:49:19

Proyecto con un Edit con PasswordChar = '*', compilado en delphi7.
Elproblema es que delphi7 no da el aviso de mayusculas activado, así que no lo puedo probar. Compílalo en tu delphi, más moderno.
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls,
  Dialogs;

type
  TEdit  = class(StdCtrls.TEdit)
    protected
      procedure WndProc(var Message: TMessage); override;
  end;

  TForm1 = class(TForm)
    Edit1: TEdit;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

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

implementation

{$R *.dfm}

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


end.

Saludos.


La franja horaria es GMT +2. Ahora son las 10:28:15.

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