Texto no edit como nos sites

Algoritmo

Delphi

24/04/2018

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

Curtidas 0

Respostas

Douglas Sousa

Douglas Sousa

24/04/2018

Não ficou bem clara sua pergunta pode ser mais especifico ???
GOSTEI 0
Vinícius Trentin

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

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.

GOSTEI 0
Vinícius Trentin

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

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!
GOSTEI 0
Raimundo Pereira

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'
GOSTEI 0
Raimundo Pereira

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
POSTAR