como fazer um quot;IF btnCancelar.focused THENquot; (Speed
Olá pessoal,
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
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
Curtidas 0
Respostas
Cabelo
28/06/2004
Caro colega..
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
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
Omar Cury
28/06/2004
Eu fiz desse jeito e nao funcionou:
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. :(
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
Cabelo
28/06/2004
Colega..
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
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
Omar Cury
28/06/2004
Nao estou confundindo eventos...
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) !!
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
Cabelo
28/06/2004
Agora ficou bem mais simples..
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
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
Paulo_amorim
28/06/2004
Olá
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é+
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
Cabelo
28/06/2004
Paulo..
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
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
Paulo_amorim
28/06/2004
Paulo..
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..
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
Cabelo
28/06/2004
Caro Paulo
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
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
Omar Cury
28/06/2004
Eu estava tentando usar Speedbutton por ter a propriedade de transparencia do botao(flat) o que melhorava e muito o visual do programa...
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
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
Paulo_amorim
28/06/2004
[quote:6ac987cce6=´Omar Cury´]Eu estava tentando usar Speedbutton por ter a propriedade de transparencia do botao(flat) o que melhorava e muito o visual do programa...
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é+
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