Selecao DevMedia QUERO SER PRIME

Fórum Executar Evento OnChange do TEdit #362402

12/08/2008

0

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....


Wdrocha

Wdrocha

Responder

Post mais votado

13/08/2008

Você pode usar também:

edit1.Text:=´qualquer coisa´;
edit1.OnChange(edit1);


Forçando a chamada do evento.


Thiago Vidal

Thiago Vidal
Responder

Gostei + 1

Mais Posts

12/08/2008

Marco Salles

num entendo esta instrução

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


Responder

Gostei + 0

12/08/2008

Wdrocha

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..

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...


Responder

Gostei + 0

12/08/2008

Wdrocha

Resolvi o problema....

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


Responder

Gostei + 0

13/08/2008

Marco Salles

beleza , mas com sugestão mude esta instrução :

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.


Responder

Gostei + 0

13/08/2008

Wdrocha

Bom dia, funcionou perfeitamente...




Vlw pela dica....


Responder

Gostei + 0

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

Aceitar