Texto no edit como nos sites
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
Curtidas 0
Respostas
Douglas Sousa
24/04/2018
Não ficou bem clara sua pergunta pode ser mais especifico ???
GOSTEI 0
Vinícius Trentin
24/04/2018
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
GOSTEI 0
Natanael Ferreira
24/04/2018
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.
Só que o texto do TextHint irá sumir ao focar o Edit e não ao digitar como você precisa.
GOSTEI 0
Vinícius Trentin
24/04/2018
Sim e sera que tem alguma forma de fazer não sumir ao focar no Edit?
GOSTEI 0
Fabricio Kawata
24/04/2018
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!
Um abraço!
GOSTEI 0
Raimundo Pereira
24/04/2018
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'
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'
GOSTEI 0
Raimundo Pereira
24/04/2018
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.
GOSTEI 0