Executar Evento OnChange do TEdit
Boa tarde pessoal...
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....
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
Curtidas 0
Melhor post
Thiago Vidal
13/08/2008
Você pode usar também:
Forçando a chamada do evento.
edit1.Text:=´qualquer coisa´; edit1.OnChange(edit1);
Forçando a chamada do evento.
GOSTEI 1
Mais Respostas
Marco Salles
12/08/2008
num entendo esta instrução
TEdit.text := ´qualquer coisa´ ????
Mas aonde voce esta digitando esta instrução ???
veja
funciona sem problema
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
Wdrocha
12/08/2008
Boa Tarde colega...
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..
E no evento OnChange do meu TShellListView que chamei de ShellDireitorios ...
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...
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
Wdrocha
12/08/2008
Resolvi o problema....
eu fiz essa verificação no OnClik do ShellListView
Funcionou certinhow.....
Vlw
eu fiz essa verificação no OnClik do ShellListView
If Not (ShellDiretorios.SelectedFolder.IsFolder) Then //Se não for uma pasta então é um arquivo
Begin
EdtNomeArquivo.Text := ShellDiretorios.SelectedFolder.PathName;
BtAbrir.Enabled := True;
Funcionou certinhow.....
Vlw
GOSTEI 0
Marco Salles
12/08/2008
beleza , mas com sugestão mude esta instrução :
para :
pois a primeira parece redudante , e voce economiza um if.
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
Wdrocha
12/08/2008
Bom dia, funcionou perfeitamente...
Vlw pela dica....
Vlw pela dica....
GOSTEI 0