Olá Pessoal,
Fiquei muito entusiasmado com os novos recursos e componentes da VCL, e um deles que é de muita utilidade é a nova propriedade HintText presente no TEdit, ela permite que você defina um texto padrão a ser exibido no Edit quando a propriedade text não tiver nenhum valor.
Bom, como eu sei que nem todos podem migrar imediatamente e desfrutar desse novo recurso, resolvi demonstrar como é possível simular o HintText utilizando qualquer versão do Delphi.
Veja o exemplo:
unit uFormPadrao;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, XPMan;
type TFormPadrao = class(TForm) procedure FormCreate(Sender: TObject); private procedure TextHintOnEnter(Sender: TObject); procedure TextHintOnExit(Sender: TObject); public end;
var FormPadrao: TFormPadrao;
implementation
{$R *.dfm}
Const DefaultColor: TColor = clBlack;
procedure TFormPadrao.FormCreate(Sender: TObject); var i: Integer; begin for i := 0 to ComponentCount - 1 do begin if Components[i] is TEdit then begin TEdit(Components[i]).OnEnter := TextHintOnEnter; TEdit(Components[i]).OnExit := TextHintOnExit; TextHintOnExit(TEdit(Components[i])); end; end; end;
procedure TFormPadrao.TextHintOnEnter(Sender: TObject) ; begin if Sender is TEdit then begin if TEdit(Sender).Text = TEdit(Sender).Hint then TEdit(Sender).Text := EmptyStr; TEdit(Sender).Font.Color := DefaultColor; end; end;
procedure TFormPadrao.TextHintOnExit(Sender: TObject) ; begin if Sender is TEdit then begin if TEdit(Sender).Text = EmptyStr then begin TEdit(Sender).Text := TEdit(Sender).Hint; TEdit(Sender).Font.Color := clGray; end; end; end; end. |
Para que todos os forms tenham a funcionalidade você pode criar um form Padrao e utilizar a herança para fazer o trabalho para você.
Veja o nosso
exemplo funcionando:
Bom a única observação é que na hora de utilizar esse valor (seja para gravar no banco ou apenas exibir ao usuário) você deve verificar se o text é igual ao hint, se estiver igual significa que Text está vazio.
É isso ai! um grande abraço a todos.