Clipper On Line • Ver Tópico - Como fazer funções para definir controles

Como fazer funções para definir controles

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Como fazer funções para definir controles

Mensagempor Paulo_CPV » 28 Jul 2014 11:57

Bom dia!

Gostaria de saber se alguém pode me tirar a seguinte dúvida se é possível construir funções para definir controles no Minigui Extend, uso a versão 237, para que eu não precise ficar definindo controle por controle toda a hora e para otimizar a aplicação , como por exemplo:

Tenho os seguintes controles definidos:

   DEFINE FRAME frame_1
      
      ROW 81
      COL 15)
      WIDTH 535
      HEIGHT 52
      CAPTION "Nome do Cliente"
      OPAQUE .T.
      FONTNAME "Arial"
      FONTSIZE 9
      FONTCOLOR PRETO
      FONTBOLD .T.
      BACKCOLOR BK_TEXTO0
      
   END FRAME

   DEFINE TEXTBOX TxNomeCli
      
      ROW 100
      COL 22
      WIDTH 521
      HEIGHT 18
      TOOLTIP 'Digite o nome do Cliente'
      FONTNAME "Arial"
      FONTSIZE 10
      FONTCOLOR PRETO
      FONTBOLD .T.
      BACKCOLOR BK_TEXTO3
      UPPERCASE .T.
      MAXLENGTH 60
      ON ENTER {|| oCadastro:PesqCli(janelaclientes.TxNomeCli.Value), janelaclientes.TxCepCli.SetFocus}



Para ser da seguinte forma:

FUNCTION EntradaDados(nLinha,nColuna,nLargura,nAltura,cControle01,cControle02,cValor01,cValor02,Cor_Bk01,Cor_Bk_02,ntLinha,ntColuna,ntLargura,ntAltura,lMaiuscula,nTamanho,cRotina)

// nLinha,nColuna,nLargura,nAltura - São as coordenadas do controle Frame
// ntLinha,ntColuna,ntLargura,ntAltura - São as coordenas do controle TextBox
// cControle01,cControle02 - Sao os nomes dos controles
// cValor01 - Titulo da Frame
// cValor02 - Descrição do TextBox
// Cor_Bk01, Cor_Bk02 - São as cores de fundo da Frame e do TextBox
// lMaiuscula - Quando o texto for preenchido com letras maiúsculas
// nTamanho - Quantidade de caracteres para digitação
// cRotina - Rotina a ser executada pelo controle TextBox.
........


Será que isto é possível de ser implementado ou eu tenho que fazer uma função para o controle FRAME e outro para o controle TEXTBOX? Se alguém tiver algum exemplo para dividir comigo e me ajudar ou aonde eu poderei encontrar exempkos para estudar ficarei grato por isso.

[]'s
Paulo
Jacareí-SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Como fazer funções para definir controles

Mensagempor Pablo César » 28 Jul 2014 16:27

Oi Paulo,

Os DEFINEs, nada mais é que a "tradução" de chamada de funções. Cada componente tem uma função e por geral é chamada desde um PRG. Por tanto é possível montar algo assim, não revisei com atenção mas eu não vejo o por quê não. Só que os DEFINEs tem também suas vantagens, pois na chamada de função de cada elementos, você vai precisar informar todos ou quase todos os parâmetros que necessitam cada componente e nesse DEFINEs que vem tanto na MiniGui Ext como na HMG e como outra bibliotecas gráficas, possuem tratamento desses parâmetros, seja para defini-los quando faltam ou quando precisa-se definir o componente de forma default ou especial.

Como disse em sintese, sim pode. Mas eu não abriria mão dos DEFINEs. Revise a sub-pasta SOURCE você encontrará ao menos um PRG para cada componente. Neste também poderá invocar funções na linguagem C.

Fazer de essa forma, requer um certo conhecimento de cada componente, suas variações, seu comportamento e o que se espera, Portanto, eu não abriira mão dos DEFINEs.

Espero ter sido esclarecedor.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Como fazer funções para definir controles

Mensagempor alxsts » 28 Jul 2014 20:46

Olá!

Se entendi bem a sua questão, o que você precisa é poder criar seus próprios componentes (User Defined Components).

Na pasta \SAMPLES\USER.COMPONENTS da instalação da HMG tem um exemplo (pouco claro). Talvez sirva para te dar alguma luz...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Como fazer funções para definir controles

Mensagempor Toledo » 28 Jul 2014 22:48

Paulo, segue um pequeno exemplo do que você pode fazer.

#include "minigui.ch"

Function Main()

  SET NAVIGATION EXTENDED

  DEFINE WINDOW Form_1 ;
      AT 0,0 ;
      WIDTH 580 HEIGHT 300 ;
      TITLE 'Função para Definir Frame e TextBox' ;
      MAIN

      EntradaDados(10,15,535,52,"Frame_1","TxNomeCli",;
                   "Nome do Cliente","Digite o nome do Cliente",;
                   AQUA,YELLOW,;
                   29,22,521,18,.T.,60,{|| MsgInfo(Form_1.TxNomeCli.Value)})

      EntradaDados(70,15,535,52,"Frame_2","TxEndCli",;
                   "Endereço do Cliente","Digite o endereço do Cliente",;
                   AQUA,GREEN,;
                   89,22,521,18,.T.,60,{|| .T. })

  END WINDOW

  On Key escape Of Form_1 Action Form_1.release
  Form_1.Center
  Form_1.Activate

Return Nil

************************************
Function EntradaDados(nLinha,nColuna,nLargura,nAltura,cControle01,cControle02,cValor01,cValor02,Cor_Bk01,Cor_Bk02,ntLinha,ntColuna,ntLargura,ntAltura,lMaiuscula,nTamanho,cRotina)

  DEFINE FRAME &cControle01
      ROW nLinha
      COL nColuna
      WIDTH nLargura
      HEIGHT nAltura
      CAPTION cValor01
      OPAQUE .T.
      FONTNAME "Arial"
      FONTSIZE 9
      FONTCOLOR BLACK
      FONTBOLD .T.
      BACKCOLOR Cor_Bk01
  END FRAME

  DEFINE TEXTBOX &cControle02
      ROW ntLinha
      COL ntColuna
      WIDTH ntLargura
      HEIGHT ntAltura
      TOOLTIP cValor02
      FONTNAME "Arial"
      FONTSIZE 10
      FONTCOLOR BLACK
      FONTBOLD .T.
      BACKCOLOR Cor_Bk02
      UPPERCASE (lMaiuscula)
      MAXLENGTH nTamanho
      ON ENTER Eval(cRotina)
  END TEXTBOX

Return Nil


Abraços,
Anexos
definir_controle.zip
(639.36 KiB) Baixado 52 vezes
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 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