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);
{ Private declarations }
public
{ Public declarations }
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:





