Fórum Executar Evento OnChange do TEdit #362402
12/08/2008
0
Eu tenho um campo edit....
e no evento OnChange do mesmo eu verifico o número de caracteres se for igual a zero um botão chamado de abrir muda a propriedade enabled pra false e se for maior q zero o botão muda propriedade enabled para True....até aew tudo bem..
o problema é q..
Eu faço TEdt1.text := ´Qualquer coisa´...
O botão continua com a propriedade enable = false...
como eu faço pra q ele exete o OnChange do Edit qdo eu mandar um texto desta forma como descrevi acima???
Obrigado....
Wdrocha
Curtir tópico
+ 0Post mais votado
13/08/2008
edit1.Text:=´qualquer coisa´; edit1.OnChange(edit1);
Forçando a chamada do evento.
Thiago Vidal
Gostei + 1
Mais Posts
12/08/2008
Marco Salles
TEdit.text := ´qualquer coisa´ ????
Mas aonde voce esta digitando esta instrução ???
veja
procedure TForm1.Edit1Change(Sender: TObject); begin button1.enabled:= Tedit(sender).Text = ´´ end;
procedure TForm1.Button1Click(Sender: TObject); begin edit1.Text:=´qualquer coisa´; end;
funciona sem problema
Gostei + 0
12/08/2008
Wdrocha
Deixa eu explicar melhor....
Eu tenho um form responsável por abrir arquivos Txt...
Eu tow usando pra selecionar o arquivo um componente TShellListView...Este componente só mostra pastas e arquivos Txt
Qdo eu clico no componente, ele verifica se foi clicado em um arquivo e pega o nome deste arquivo e mostra em um campo TEdit apenas o nome do arquivo e o path completo ele mostra em um label....
Qdo eu clicar no arquivo e o nome dele aparecer no TEdit o botão para abrir o mesmo tem q ficar habilitado....
o Problema é....
No evento OnChange eu fiz isto..
If (Length (EdtNomeArquivo.Text) > 0) Then BtAbrir.Enabled := True Else BtAbrir.Enabled := False;
E no evento OnChange do meu TShellListView que chamei de ShellDireitorios ...
Procedure TFrmAbrirPasta.ShellDiretoriosChange(Sender: TObject; Item: TListItem; Change: TItemChange); Begin If ShellDiretorios.Selected <> Nil Then Begin LblPath.Caption:= ShellDiretorios.SelectedFolder.PathName; //Path do arquivo ou pasta selecionada If Not (ShellDiretorios.SelectedFolder.IsFolder) Then Begin //Pega apenas o nome do arquivo EdtNomeArquivo.Text := ShellDiretorios.SelectedFolder.DisplayName; //Aqui ele habilita o botão ABRIR,mas qdo executa o OnChange ele volta a ficar FALSE BtAbrir.Enabled := True; End; End Else Begin //Caso clique em outro lugar q não seja arquivo ou pasta ele limpa o Edit e o label q mostra o path absoluto EdtNomeArquivo.Clear; LblPath.Caption := ´´; End; End;
Qdo eu clico em um arquivo ele habilita o botão mas logo desabilita...eu sei disso pq debugando ele habilita e qdo entra no onChange ele desabilita de novo o botão....como se não tivesse nada no campo Edit
É isso q tah acontecendo
Vlw manow...
Gostei + 0
12/08/2008
Wdrocha
eu fiz essa verificação no OnClik do ShellListView
Funcionou certinhow.....
Vlw
Gostei + 0
13/08/2008
Marco Salles
If (Length (EdtNomeArquivo.Text) > 0) Then BtAbrir.Enabled := True Else BtAbrir.Enabled := False;
para :
BtAbrir.enabled:= Tedit(sender).Text = ´´
pois a primeira parece redudante , e voce economiza um if.
Gostei + 0
13/08/2008
Wdrocha
Vlw pela dica....
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)