Jump to content
Fivewin Brasil

Problema com Button ( Click/Return )???


Cezar

Recommended Posts

Olá,

Tenho uma dialog com vários buttons em sequencia:

Inclui Altera Exclui Consulta...

Se clico com o mouse no Altera, a clasula ACTION executa beleza !!!

Se aperto o ENTER, pula para o botão seguinte e não executa o ACTION !!!

O mesmo com todos!!

Estou olhando a classe TButton ( nativa do FWH 2.4 ), mais ainda não encontrei o problema.

Voces têm alguma dica sobre este problema???

Grato.

Link to comment
Share on other sites

// Cezar.. Eu Faço assim para substituir os botoes...

// 1) - exemplo

oLbx:bKeyDown := {|nKey| IIF( nKey==13 .OR. nKey==32, ;

MsgInfo( "Nao Disponivel" ), ) } // Sua Funcao

// 2) - exemplo

oLbx:bKeyDown := { | nKey | Faz_Pesquisa( nKey, ;

( oDbf:cAlias ), oLbx, oSay, ;

oLbx:SetFocus(), ;

oLbx:Refresh() ), ;

IF ( nKey = VK_RETURN, ;// Enter

( Click(), GetClientes( .F., oDbf ), ;

oLbx:SetFocus(), ;

oLbx:Refresh() ), ;

IF ( nKey = VK_INSERT, ;// Insert

( Click(), GetClientes( .T., oDbf ), ;

oLbx:SetFocus(), ;

oLbx:Refresh() ), ;

IF ( nKey = VK_DELETE, ;// Delete

( Click(), ApagarCli( oDbf ), ;

oLbx:SetFocus(), ;

oLbx:Refresh() ), ) ) ) }

João Santos

São Paulo-Brasil

(11) 3106-2832 a Noite

karinhannah@ubbi.com.br

Link to comment
Share on other sites

Ola João, como vai,

O seu exemplo controla os Keys dentro da ListBox; o meu problema está nos Buttons.

Na minha dialog não tem ListBox; tem 1 Folder, vários gets e vários buttons !!!

Buttons:

[inclui] [Altera] [Exclui] [Consulta]

Se clicar com o mouse no "botão Alterar" a cláusula ACTION é executada normalmente!!

Se posicionar, com as setas, o foco em cima do "botão Alterar" e der ENTER, a cláusula ACTION "NÃO É EXECUTADA" e foco passa para o botão seguinte.

Se funciona com o MOUSE e não funciona com o ENTER, presumo que seja um problema da classe TButton.

O que acha ???

Grato.

Link to comment
Share on other sites

Usando o mesmo exemplo, troque oLbx por oDlg... Tente... Olhe os exemplos do samples... Não desista tão fácil, pegue a idéia... Porque será que 'ele' postou isso? Eu sei que você é inteligente! Abraços.

João Santos

São Paulo-Brasil

(11) 3106-2832 a Noite

karinhannah@ubbi.com.br

Link to comment
Share on other sites

Cezar, Teste e você entendera o que eu quero dizer...

Se voce esta usando o WORKSHOP.EXE para fazer suas telas, verifique se

os estao alinhados com o <1,2>, se não estiverem alinhe-os.

oWnd:bKeyDown = { | nKey | MsgInfo( "Down: " + Str( nKey ) ) }

oWnd:bKeyChar = { | nKey | MsgInfo( "Char: " + Str( nKey ) ) }

oGet:bKeyDown = { | nKey | MsgInfo( nKey ) } // Troque pela funcao

oFld:bKeyDown = { | nKey | MsgInfo( nKey ) } // Troque pela funcao

oDlg:bKeyDown = { | nKey | MsgInfo( nKey ) } // Troque pela funcao

// Assim, também substituo os meus botões...

SetKey (32, { | nKey | Teste( nKey ) } )

SetKey (27, { | nKey | Teste( nKey ) } )

// Este Recurso Traz o Icone de Filtro Por Matricula

SetKey( VK_F2,{|nKey| FiltrarM( oDbf ), ;

oLbx:Refresh() , ;

oLbx:SetFocus(), ;

oLbx:DrawSelect() } )

João Santos

São Paulo-Brasil

(11) 3106-2832 a Noite

karinhannah@ubbi.com.br

Link to comment
Share on other sites

Data: 19/09/2003 23:25:21

De:Cezar

Para:Karinh

Cc:

Assunto:Problemas de Foco !!

João, bom dia.

Desde já agradeço a sua ajuda e preocupação, VALEU MUITO!!!

Acho que chegamos a uma solução:

Deduzi que o problema estava no foco, após o ENTER

executava a function "Alterar",

mas não ia para o GET[ 2]; percebi que se coloca-se uma

Msginfo() simulando um stop,

o foco ia para o GET[ 2] !!

Lembrei de ter visto alguma coisa referente a foco em dicas: achei a

function xSetFocus() em dicas, postada pelo Vagner Virts, veja a mudança abaixo.

Ufa !!

Pra hoje é só, semana que vem tem mais um pepino prá voces.

Um abraço e bom fim semana !!!

Cezar.

Exemplo:

DEFINE DIALOG oDlg FROM ................

@ 10,10 GET oGet[ 2] PROMPT ........

.........

.........

Isto não funcionava !!!

@ 182,240 BUTTON oBtnicon_smile_8ball.gif PROMPT "&Alterar" ;

OF oDlg SIZE 25,10 PIXEL ;

ACTION ( aOpe := PN_Altera( aOpe, oDlg, oDbf, oGet, oBtn )

Isto funcionou !!!

@ 182,240 BUTTON oBtnicon_smile_8ball.gif PROMPT "&Alterar" ;

OF oDlg SIZE 25,10 PIXEL ;

ACTION ( aOpe := PN_Altera( aOpe, oDlg, oDbf, oGet, oBtn ),;

xSetFocus( oGet[2] ), oGet[2]:SetFocus() )

@ 182,280 BUTTON oBtn[9] PROMPT "&Sair" ;

OF oDlg SIZE 25,10 PIXEL ;

ACTION oDlg:End() CANCEL

oDlg:bStart := {|| oBtnicon_smile_8ball.gif:SetFocus() }

ACTIVATE DIALOG oDlg CENTERED VALID ( PN_Fecha( oDbf, oFld ), .T.)

RETURN Nil

*********************************************************************

Isto não funcionava !!!

*********************************************************************

FUNCTION PN_Altera( aOpe, oDlg, oDbf, oGet, oBtn )

oDbf[1]:Load()

aOpe[1] := 2

aOpe[2] := oDbf[1]:NumPed

aOpe[3] := oDbf[1]:NumPed

aOpe[4] := 0

oDlg:Update()

oGet[2]:SetFocus() // aqui o foco não ia para Get[ 2]

// Até ia, mas não segurava!!

RETURN aOpe

*********************************************************************

Isto funcionou !!!

*********************************************************************

FUNCTION PN_Altera( aOpe, oDlg, oDbf, oGet, oBtn )

oDbf[1]:Load()

aOpe[1] := 2

aOpe[2] := oDbf[1]:NumPed

aOpe[3] := oDbf[1]:NumPed

aOpe[4] := 0

//oDlg:Update()

//xSetFocus( oGet[ 2] ) // aqui também não

//oGet[ 2]:SetFocus()

RETURN aOpe

*********************************************************************

Esta function() foi postada pelo Vagner Virts em dicas!!

*********************************************************************

STATIC FUNCTION xSetFocus(oObj)

Local oTempo := ""

Define Timer oTempo Interval 10 Of oObj:oWnd ;

Action (oObj:SetFocus(),oObj:SetPos(0),oTempo:Deactivate())

Activate Timer oTempo

RETURN Nil

*********************************************************************

FIM *****************************************************************

Cezar... Esqueci que você usava o @Say Minha Resposta:

Que horror! Pensei que você estava usando o WORKSHOP.EXE! Isto nunca teria acontecido se

Fizesse seus programas usando o WORKSHOP.EXE. Ainda dá tempo! Desista desta coisa medonha

de @Say enquanto é tempo! Deus me livre e guarde de uma coisa terrivel destas em minha vida!

Isto é fim de carreira! Você nunca verá eu usando um truque ao usar o WORKSHOP.EXE para

acertar o FOCO de absolutamente nada em meus programas... o WORKSHOP acerta sozinho pra mim!

E Cezar? Você disse que estava com problemas nos BOTÕES e não no FOCO de um GET! Só quem usa

@Say pode confundir 'alhos' com 'bugalhos' nada a ver o seu problema... Se você estivesse

usando o WORKSHOP.EXE nunca pagaria este 'MICO'! No futuro, poste o Código junto com sua

pergunta, ai fica mais fácil para o pessoal do @Say(Irrccc) te ajudar! @Say... Eu não Say!

xSetFocus() Com Recursos... ???? Fala sério! Never! Never! Never! Só rindo! xSetFocus()?????

Me da calafrios só de pensar em @Say... hehehehehehehehehehehehe Abraços.

João Santos

São Paulo-Brasil

(11) 3106-2832 a Noite

karinhannah@ubbi.com.br

Link to comment
Share on other sites

Ola João,

Ia postar o código depois do seu e-mail, mas tive que sair rapidamente.

Comecei usando o WorkShop com FWH 2.4 mas desisti porque dá tanto erros de DLL, e as mensagens diz claramente que é corrompimento da DLL de 32bits coisa assim, tanto que desisti.

O problema não é Buttons nem dos Gets: o problema é do FWH, por isso que se criou uma function auxiliar.

Mas tá tudo certo.

Até mais,

Cezar.

Link to comment
Share on other sites

PRESTIGIE O I ENCONTRO DE PROGRAMADORES EM FW

Não concordo. Tente de novo! Pegue outros exemplos. Não desista do WORKSHOP.EXE nunca! É o futuro! Não constinue com o famigerado @Say... Você vai se arrepender! Abraços.

João Santos

São Paulo-Brasil

(11) 3106-2832 a Noite

karinhannah@ubbi.com.br

Link to comment
Share on other sites

Olá Edmar,

Não estou usando o WorkShop com o FWH 2.4 porque tive tantos problemas do tipo "corrompimento da DLL 32 bits" que desisti.

Voce usa Workshop com FWH 2.4 e não tem problemas??

Um abraço.

Cezar.

**********************************

citação:

Olá,

se você usa o WorkShop para colocar seus Buttons, o problema está lá. Verifique as propriedades dos Buttons dentro do WorkShop e você descobrirá o problema.

Edmar R. Santos

Sto. Ant. Monte - MG


id=quote>id=quote>
Link to comment
Share on other sites

Olá,

Utilize o WorkShop c/ RC ou RES no FWH (DLL 32 BITS) e você não terá mais problemas.Infelizmente o Workshop danifica as vezes a dll 32 bit

citação:

Olá Edmar,

Não estou usando o WorkShop com o FWH 2.4 porque tive tantos problemas do tipo "corrompimento da DLL 32 bits" que desisti.

Voce usa Workshop com FWH 2.4 e não tem problemas??

Um abraço.

Cezar.

**********************************

citação:

Olá,

se você usa o WorkShop para colocar seus Buttons, o problema está lá. Verifique as propriedades dos Buttons dentro do WorkShop e você descobrirá o problema.

Edmar R. Santos

Sto. Ant. Monte - MG


id=quote>
id=quote>


id=quote>id=quote>
Link to comment
Share on other sites

Olá,

Qual é a sua versão do FWH, a ultima é FWH build Julho, verifique, se não for eu mando a atualização para você.

citação:

Olá,

Tenho uma dialog com vários buttons em sequencia:

Inclui Altera Exclui Consulta...

Se clico com o mouse no Altera, a clasula ACTION executa beleza !!!

Se aperto o ENTER, pula para o botão seguinte e não executa o ACTION !!!

O mesmo com todos!!

Estou olhando a classe TButton ( nativa do FWH 2.4 ), mais ainda não encontrei o problema.

Voces têm alguma dica sobre este problema???

Grato.


id=quote>id=quote>
Link to comment
Share on other sites

Boa noite Gilmer,

Minha versão é FWH 2.4 e adquiri no começo de 04/2003 e

Harbour Alfa Build 42.0 ( Flex )

Sempre que usei o WorkShop foi com .RC, mas dá problemas também.

Tentei usar um programa que voce postou em dicas, acho que o nome é "ResHacker", mas tambem não resolveu.

Não tem sentido usar um segundo prá consertar o primeiro , isso não funciona. Desisti!!

Se tiver alguma solução, agradeço.

Cezar.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...