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

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

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

Mensagem por NiltonGM »

Amigos,

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

Código: Selecionar todos


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 do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

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

Mensagem por rubens »

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 do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

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

Mensagem por Toledo »

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:

Código: Selecionar todos

_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 do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

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

Mensagem por NiltonGM »

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
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

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

Mensagem por alxsts »

Olá!

Mas o exemplo do Toledo também utiliza macro substituição...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem por JoséQuintas »

Não dá pra usar DoMethod( oForm, "load" ) ???
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

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

Mensagem por asimoes »

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)
Responder