Texto no edit como nos sites

24/04/2018

76

Gostaria de saber se tem como fazer aparecer um texto no edit como nos sites e apenas quando digitar alguma coisa esse texto sair, eu tentei usar a propriedade text hint só que quando o edit recebe foco o texto já sai
Vinícius Trentin

Vinícius Trentin

Responder

Posts

24/04/2018

Douglas Sousa

Não ficou bem clara sua pergunta pode ser mais especifico ???
Responder

24/04/2018

Vinícius Trentin

Um exemplo é aqui no site abaixo das respostas tem aquela barra "Buscar no fórum" dai quando você clica nela a frase "Buscar no fórum" continua ali mas quando você digitar ela some e eu gostaria de fazer igual no delphi
Responder

24/04/2018

Natanael Ferreira

O que há de parecido com o que você precisa é a propriedade TextHint do Edit.

Só que o texto do TextHint irá sumir ao focar o Edit e não ao digitar como você precisa.

Responder

24/04/2018

Vinícius Trentin

Sim e sera que tem alguma forma de fazer não sumir ao focar no Edit?
Responder

25/04/2018

Fabricio Kawata

Oi Vinicius. Nativamente, desconheço uma opção que te atenda, visto que, conforme os outros colegas mencionaram, o comportamento da propriedade TextHint do TEdit padrão é de manter o hint enquanto o campo está sem o foco. Uma alternativa seria recorrer a componentes de terceiro, mas também não encontrei um que faça o que necessita. Também não sei até que ponto seria válido você acrescentar a dependência de uma biblioteca externa ao seu projeto, somente para atender este ponto. De qualquer forma, caso tenha novidades, posto aqui.

Um abraço!
Responder

26/04/2018

P2

Bom dia, veja se ajuda



procedure TForm1.Edit1Change(Sender: TObject);
begin

if Edit1.Text<>'Buscar' then
begin
Edit1.Text:=StringReplace(Edit1.Text, 'Buscar', '', [rfReplaceAll, rfIgnoreCase]);
end;

Com a rotina acima, o texto buscar permanece até mesmo quando é focado no edit, o texto é removido quando for diferente da palavra Buscar.

Lembrando que sua propriedade text inicial deverá Edit1.Text:='Buscar'
Responder

26/04/2018

P2

Mais uma opção é criar uma label dentro do edit no oncreat do form.


ar
  Form1: TForm1;
  var tmp:tlabel;


implementation

{$R *.dfm}

//Aqui ele trata assim que é digitado algo dentro do edit.
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text<>'' then
begin
tmp.Visible:=false;

end
else
begin
tmp.Visible:=True;
end;
end;


//Cria a Label 
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='';
tmp:=TLabel.Create(nil);
tmp.Parent:=Edit1;
tmp.Caption:='Buscar';
tmp.Visible:=true;

end;

end.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar