Fórum como fazer um quot;IF btnCancelar.focused THENquot; (Speed #240103
28/06/2004
0
Estou usando SpeedButtons na minha aplição, mas estou tendo problemas no evento OnExit dos meus edits... por ex.
if btnCancelar.focused then abort;
(cancela todo processo)
Eu acho que nao existe FOCUSED nos SpeedButton, mas tem outra solução ??
Valew
Omar Cury
Curtir tópico
+ 0Posts
28/06/2004
Cabelo
exatamente isso ..
Este tipó de botão não recebe foco.. Por isso vc não consegue achar o .focused, pq vc não usa o evento onClick para isso..
senão conseguir, vc pode utilizar o evento onmousemove..
espero ter ajudado..
sem mais
Cabelo
Gostei + 0
28/06/2004
Omar Cury
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if SpeedButton1.Click then abort;
end;
erro: Type of expression must be BOOLEAN
entaum, tentei
if SpeedButton1.Click = true then abort;
tbem nao funcionou. :(
Gostei + 0
28/06/2004
Cabelo
Não entendi ainda sua dúvida..
na verdade eu sugerí que vc colocasse no evento OnClick do SpeedButton o abort.
Não estou entendendo onde vc quer chegar.
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if SpeedButton1.Click then abort;
end;
Aqui vc está indicando que quando vc for sair do Edit1, verificar se o botão SpeedButton está clicado??????? Não entendi..
Acho que vc está confundindo os eventos..
Na verdade o quê vc quer fazer, me explique de forma sem estruturas, para que eu possa te ajudar..
Cabelo
Gostei + 0
28/06/2004
Omar Cury
Eu simplismente quero verificar se o botao cancelar foi clicado antes de fazer todo o processo no evento OnExit dos edits (como exemplos citados acima) !!
Gostei + 0
28/06/2004
Cabelo
vc pode utilizar uma variável boolean;
na seção PUBLIC declare uma variável buttom_click : boolean;
depois disso no evento oncreate do form set ela para false;
buttom_click := false;
depois disso no evento onclick do speddbutton set ela para true;
buttom_click := true;
no evento onexit do EDIT1
if buttom_click then
begin
abort;
end;
acho que é isso q vc quer, mas mesmo assim acho que vc não está usando o código nos eventos certos.
pra que vc quer saber se o botão foi clicado antes de realizar o evento on exit do EDIT, se vc pode fazer isso no evento click do botão..?
espero ter ajudado..
Cabelo
Gostei + 0
28/06/2004
Paulo_amorim
cabelo, analisando seu código eu percebi que pode não funcionar.
Se não me engano, o evento OnExit será executado [b:0f18932530]antes[/b:0f18932530] do OnClick. POrtanto, não será afetado
Omar, as hierarquias do Button e do SpeedButton são diferentes...aí que tá o problema...
Eu tentei dar um typecast meio ´reverso´, mas (era esperado) não funcionou...
É realmente necessário usar SpeedButtons?
Até+
Gostei + 0
28/06/2004
Cabelo
Os eventos não seriam hierárquicos, devido serem compónentes distintos, na verdade, iria armazenar um valor Lógico dentro de uma variável boolean se o speedbutton foi clicado, caso tenah sido clicado, no evento exit de um EDIT, seria alterado para as comparações e finalizações..
isto foi o quê entendi..
sem mais
Cabelo
Gostei + 0
28/06/2004
Paulo_amorim
Olá
Resolvi tirar isso a limpo, criei um teste com um edit e um spb
Descobri que o Spb não recebe foco, pode até ver que não consta no TabOrderList
Cabelo, isso não se trata de ser hierárquico ou não.
O problema eh quem será executado primeiro. Repare que ele primeiro sai do Exit, para depois pôr o foco no botão (se fosse um botão normal) e executá-lo
Assim, o teste da variável Booleana seria feita [b:702fe36e71]antes[/b:702fe36e71] da mesma ser afetada pelo clique do botão
Espero que ajude
Até+
Gostei + 0
28/06/2004
Cabelo
Ao meu entender é isto mesmo que ele quer..
Ele não quer disparar o evento Exit do EDIT sem testar se foi clicado o botão(SpeedButton), se for clicado este botão ele irá abortar, senão irá executar uma série de comandos..
por isso tem que ser um speedbutton, e trabalhar nisso, na verade ele quer abortar se esse botão for clicado..
entendeu??
Eu tb não entendi o pq de não usar o evento click deste botão para fazer as validações, mas mesmo assim é isso que ele quer..
sem mais
Cabelo
Gostei + 0
28/06/2004
Omar Cury
mesmo assim, obrigado por responderem, decidi trocar de componente, vou usar um bitbtn mesmo e no evento onExit dos Tedits vou usar testar com Focused.
Valew
Gostei + 0
28/06/2004
Paulo_amorim
mesmo assim, obrigado por responderem, decidi trocar de componente, vou usar um bitbtn mesmo e no evento onExit dos Tedits vou usar testar com Focused.
Valew[/quote:6ac987cce6]
Olá
eu concordo que esteticamente o SpeedButton eh melhor, pois fica bonitinho...
Mas nesse caso o BitBtn eh melhor devido a sua necessidade
Eu testei o BitBtn.Focused no OnExit do Edit, ele faz sim
Espero que funcione
Até+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)