Clipper On Line • Ver Tópico - Evento FORM ON KEY ESCAPE ACTION

Evento FORM ON KEY ESCAPE ACTION

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Evento FORM ON KEY ESCAPE ACTION

Mensagempor NiltonGM » 27 Mai 2019 15:33

Jair, não entendi direito o que vc está querendo, mas se é executar uma procedure no evento "OnCheckBoxClicked", vou te mostra de forma simples, veja os passos seguintes:
1º) Ao carregar o Form:
     LOAD WINDOW Form_1
              ON KEY ESCAPE OF Form_1 ACTION Form_1.Release   // Esta linha é para funcionar a tecla ESC para sair do Form
     _HMG_SYSDATA[ 40 ][ GetControlIndex( "Grid_1", "Form_1" ) ][ 46 ] := {|| minhaProcedure1_OnCheckBoxClicked() }   // Define o CodeBlock, "procedure" que será invocada ao clicar ou desclicar o CheckBox da grade (antes da primeira coluna da grid)
     _HMG_SYSDATA[ 40 ][ GetControlIndex( "Grid_2", "Form_1" ) ][ 46 ] := {|| minhaProcedure2_OnCheckBoxClicked() }   // Voce pode ter outra Grid com CheckBoxEnabled, define a procedure para a grid2
     Form_1.CENTER
     Form_1.ACTIVATE


2º) Ao iniciar o Form (evento onInit do form):
     Form_1.Grid_1.CheckBoxEnabled := .T.   // Seta para usar o CheckBox na Grid
     Form_1.Grid_2.CheckBoxEnabled := .T.   // Idem


3º) Crie as Procedures do evento OnCheckBox para cada Grid
Procedure minhaProcedure1_OnCheckBoxClicked()
                Local var....

                Form_1.Grid_1.Value := This.CellRowClicked // Seta/Seleciona a linha da grade clicada
                // Form_1.Grid_1.Value := { This.CellRowClicked, 3}  // Seta a linha e a coluna desejada na grade da linha clicada caso CELLNAVIGATION for .T.

                /* Verifica se o usuário clicou ou desclicou o CheckBox da linha na grade */
                if Form_1.Grid_1.CheckBoxItem(This.CellRowClicked)
                   ...codigo
                else
                   ...codigo
                endif

Return


4º) Ao carregar os registros na Grid vc poderá setar ou não o CheckBox para cada linha:

Procedure form_1_CarregaGrid_1()
         Local i, ....

         ....codigo para carregar registros de uma query ou outro data base
         ....

         Form_1.Grid_1.DeleteAllItems()

         for i:=1 to query:LastRec()
         
              Form_1.Grid_1.AddItem( {....registro n da query:FieldGet('coluna_1'), query:FieldGet('coluna_n') } )
              Form_1.Grid_1.CheckBoxItem(i) := ( query:FieldGet('coluna_x') == <condição> )

              query:Skip()

         next i

         Form_1.Grid_1.Refresh
         ...

Return
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 25 vezes

Evento FORM ON KEY ESCAPE ACTION

Mensagempor JAIR RANGEL » 30 Mai 2019 22:06

Olá, NiltomGM

Sim, exatamente isso.
Ex: Na Grade de Títulos á pagar, o Operador poderá selecionar os Títulos que serão baixados naquele momento, marcando os checkbox no início da linha. Ao clicar, aciona a função para somar todos os Títulos marcados e exibir o Total de Títulos selecionados, ou seja, o Valor Total dos Títulos a serem baixados.

Muito louco esse código que postou. Vou testá-lo no programa e dou um feedback...

Obrigado pelo retorno!

Abraço

:xau
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar de usuário

JAIR RANGEL
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 177
Data de registro: 19 Jul 2005 16:01
Cidade/Estado: RIO DE JANEIRO
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

Anterior



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro