Olha, nesse caso eu faria o seguinte:

            Deixaria os itens que dependem do primeiro desabilitados, e no
OnChange dos três ( atribua o mesmo onchange aos três) faria assim

 

            Edit_Cor.Enabled := Edit_Material.Text <> ‘’;

            Edir_Tamanho := Edit_Cor.Text <> ‘’;

 

            Algo assim, você criar uma função que retorne um Boolean tb...

 

            Function MaterialOK: Boolean;

            Begin

                        if ( faça os testes aqui ) then

                                    Result := TRUE

                        Else

                                   Result := FALSE

End;

 

Dae no OnChange

 

Edit_Cor.Enabled := MaterialOK;

            Edir_Tamanho := CorOK;

 

            Vitor.

 

  _____  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Celso Lorenzetti - GMail
Enviada em: quarta-feira, 14 de novembro de 2007 17:04
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Determinar de onde veio o foco

 

Esse evento é de um componente TPanel que dentro dele tem 3 TEdits

que representam: Material + Cor + tamanho.

Se o usuário clicar diretamente no Tamanho, ele está jogando o foco
diretamente para o Material, porcausa daquele código do CMEnter. Mas se o
usuário clicou no Tamanho deveria ficar lá...

E se não tiver aquele código do CMEnter, o foco fica no TPanel quando ele
tecla TAB, aí ele tem que dar um TAB a mais para o foco cair no Material.

por isso queria separar as duas situações.

Claro que com variáveis e eventos também daria para fazer, como outros
colegas disseram,
mas como gosto de coisas mais elaboradas, resolvi pedir ajuda dos colegas da
lista.

Obrigado, pelas respostas e interesse em ajudar Vitor.

Att,

Celso Lorenzetti
Analista de Sistemas
msn: celsolorenzetti@ <mailto:celsolorenzetti%40ibest.com.br> ibest.com.br
----------------------------------------------------------
SysRS Tecnologia da Informação Ltda.
www.sysrs.com.br
----- Original Message ----- 
From: Vitor Redes 
To: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br 
Sent: Wednesday, November 14, 2007 4:43 PM
Subject: RES: [delphi-br] Determinar de onde veio o foco

Mas existe uma 'lógica' para a pergunta? Tipo, porque a
necessidade de saber isso?

No OnEnter, vc pode escrever uma rotina para pegar o cursor do
mouse e comparar com a posição absoluta do componente... é uma...
Dá pra utilizar o evento OnClick, ou o OnMouseDown, tem várias
maneiras de se fazer isso, só não entendi a necessidade...

Vitor.

_____ 

De: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
[mailto:[EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br>
os.com.br] Em
nome de Nilson Chagas
Enviada em: quarta-feira, 14 de novembro de 2007 15:41
Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
Assunto: Re: [delphi-br] Determinar de onde veio o foco

Juntando a sua mensagem com a do Davi (antes que ele explouda. rsrsrs)...
Voce pode trabalhar com uma variavel Flag para tentar descobrir isto... pq
se naum me engano o evento OnClick ocorre antes do OnEnter.

[]s

Em 14/11/07, Celso Lorenzetti - GMail <clorenzettibr@
<mailto:clorenzettibr%40gmail.com> gmail.com> escreveu:
>
> Olá Davi, acho que com o código abaixo fica mais fácil para entender o
> que pergunto..
>
> procedure TMaterial.CMEnter(var Message: TCMEnter);
> begin
> FValorAnterior := GetValor;
>
> // Aqui neste IF gostaria de saber se ele clicou com o mouse ou foi um
> TAB, e só entrar nele se fou com um TAB.
>
> if ClFocus(FMaterial) then
> begin
> FMaterial.SelectAll;
> FMaterial.SetFocus;
> end;
> end;
>
> Teria que ser aqui porque aqui irá disparar sempre, mesmo que ele tecle
> TAB. Entendeu?
>
> Att,
>
> Celso Lorenzetti
> Analista de Sistemas
> msn: celsolorenzetti@ <mailto:celsolorenzetti%40ibest.com.br> ibest.com.br
<celsolorenzetti%40ibest.com.br>
> ----------------------------------------------------------
> SysRS Tecnologia da Informação Ltda.
> www.sysrs.com.br
> ----- Original Message -----
> From: Davi Eduardo Borges Wall
> To: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
<delphi-br%40yahoogrupos.com.br>
> Sent: Wednesday, November 14, 2007 3:13 PM
> Subject: RES: [delphi-br] Determinar de onde veio o foco
>
> Celso, sinceramente, ali embaixo do seu nome diz ANALISTA DE SISTEMAS.
> Lembre-se disso.
>
> Essas são perguntas de programador Junior.
>
> Para saber se o EDIT foi clicado, uma das alternativas (a mais simples que
> consigo imaginar) é pegar o EVENTO ONCLICK DO EDIT?
>
> Se gerou o evento então é pq foi clicado nesse componente????? Não seria
> isso ???
>
> De: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
<delphi-br%40yahoogrupos.com.br> [mailto:
> [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
<delphi-br%40yahoogrupos.com.br>] Em nome de
> Celso Lorenzetti - GMail
> Enviada em: quarta-feira, 14 de novembro de 2007 16:59
> Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br>
os.com.br <delphi-br%40yahoogrupos.com.br>
> Assunto: [delphi-br] Determinar de onde veio o foco
>
> Mais uma,
>
> tem como eu saber se o foco que o componente TEdit recebeu,
>
> foi porque o usuário teclou um Tab no componente anterior ou se ele clicou
> direto nele com o mouse?
>
> Obrigado.
>
> Att,
>
> Celso Lorenzetti
> Analista de Sistemas
> msn: celsolorenzetti@ <mailto:celsolorenzetti%40ibest.com.br> ibest.com.br
<celsolorenzetti%40ibest.com.br><mailto:
> celsolorenzetti%40ibest.com.br>
> ----------------------------------------------------------
> SysRS Tecnologia da Informação Ltda.
> www.sysrs.com.br
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

[As partes desta mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a