Clipper On Line • Ver Tópico - Como não usar Macro Substituição nesse caso:

Como não usar Macro Substituição nesse caso:

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Como não usar Macro Substituição nesse caso:

Mensagempor NiltonGM » 19 Out 2018 19:43

Amigos,

O que eu faço para não usar macro substituição no caso baixo onde uso &cForm_1.


Procedure AtivaFormExemplo( cForm )

        IF IsWIndowActive( &cForm. )   // Aqui vai bem
            DoMethod( cForm, "MINIMIZE" )
            DoMethod( cForm, "RESTORE" )
            DoMethod( cForm, "SETFOCUS" )
         ELSE
            LOAD WINDOW &cForm.  // Aqui dá pau!  (Error F0029  Can't open #include file '&cForm..fmg, se eu tirar o ponto, tbm da erro #include file &cForm.fmg, ou se tirar a macro da erro #include file cForm.fmg)
            ON KEY ESCAPE OF &cForm. ACTION DoMethod( cForm, "RELEASE" )   // Aqui não sei se vai dar erro ou não, não chega a compilar por causa do erro da linha acima.
            DoMethod( cForm, "CENTER" )
            DoMethod( cForm, "ACTIVATE" )
        ENDIF



Alguém tem algo melhor pra não usar a Macro "&cForm."??
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: 24 vezes

Como não usar Macro Substituição nesse caso:

Mensagempor rubens » 20 Out 2018 10:22

Bom dia..

Tente coloca o cForm entre parenteses..
LOAD WINDOW (cForm)

Só um palpite...

* Não funciona... vamos ver se aparece mais resposta

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Como não usar Macro Substituição nesse caso:

Mensagempor Toledo » 20 Out 2018 11:15

Amigos, este comando LOAD WINDOW, que está dentro do i_window.ch, está da seguinte forma:

MiniGui Extended:
#xcommand LOAD WINDOW <w> ;
=> ;
_HMG_TempWindowName := <"w"> ;;
DECLARE WINDOW <w> ;;
DECLARE CUSTOM COMPONENTS <w> ;;
#include \<<w>.fmg\>

HMG - MiniGui Oficial:
#xcommand LOAD WINDOW <w> ;
=> ;
DECLARE WINDOW <w> ;;
_HMG_SYSDATA \[ 214 \] := <"w"> ;;
#include \<<w>.fmg\>


Não testei, mas será que se no lugar do LOAD WINDOW você colocar os comandos abaixo não vai funcionar:

_HMG_TempWindowName := cForm
   DECLARE WINDOW &cForm.
   DECLARE CUSTOM COMPONENTS &cForm.
   #include cForm+".fmg"


Abraços,
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

Como não usar Macro Substituição nesse caso:

Mensagempor NiltonGM » 20 Out 2018 16:20

Oi Toledo, parece que funciona, vou testar, mas descobrir que mesmo se funcionar, vou ter outros problemas, é que eu estava criando uma classe para controlar os componentes do form, percebi que se eu criar o formulário dentro da classe (objeto), é criada uma nova linha do "tempo" rs, Todas as funções ou Procedures dentro do prg que criou o objeto não é mais acessível.

prg_fonte_1.prg Linha to tempo 1 ------ cria objeto para o Form_1 ------ Procedures Form_1_OnInit(), etc...
class_fonte_1.prg Linha do tempo 2 |__cria Form_1 dentro da classe_______ não encherga a Procedures Form_1_OnInit(), etc...
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: 24 vezes

Como não usar Macro Substituição nesse caso:

Mensagempor alxsts » 20 Out 2018 16:23

Olá!

Mas o exemplo do Toledo também utiliza macro substituição...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

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

Como não usar Macro Substituição nesse caso:

Mensagempor JoséQuintas » 20 Out 2018 16:26

Não dá pra usar DoMethod( oForm, "load" ) ???
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como não usar Macro Substituição nesse caso:

Mensagempor asimoes » 21 Out 2018 06:17

Experimenta colocar entre ( )
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Google [Bot] e 11 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