Página 1 de 1

Passagem de parâmetros

Enviado: 14 Mai 2015 20:06
por Paulo_CPV
Boa noite!

Pessoal, gostaria de uma orientação de vocês como eu posso fazer o seguinte: como eu devo passar o parâmetro cFormulario para o comando LOAD WINDOW e ACTIVATE WINDOW.

Código: Selecionar todos

#include "hmg.ch"

declare window Main

Function main_janela_action

	LOCAL cFormulario := ThisWindow.Name

	IF IsWindowActive(cFormulario)
	
		DoMethod(&cFormulario,"MINIMIZE")
		DoMethod(&cFormulario,"RESTORE")
		DoMethod(&cFormulario,"SETFOCUS")
	
	ELSE
	
		LOAD WINDOW &cFormulario         -> Está dando erro aqui
		ACTIVATE WINDOW &cFormulario  -> e aqui, como pode ser resolvido
	
	ENDIF

Return Nil
Abraços,

Paulo - Jacareí/SP

Passagem de parâmetros

Enviado: 15 Mai 2015 10:21
por Toledo
Amigo, acho que o ThisWindow.Name só vai retornar o nome do formulário quando a window estiver ativa, então neste caso você não poderia usar o ThisWindow.Name e sim já informar o nome do formulário:

Código: Selecionar todos

LOCAL cFormulario := "Main"
Abraços,

Passagem de parâmetros

Enviado: 19 Out 2018 21:13
por NiltonGM
Olá Paulo,
Estou com este mesmo problema, como vc resolveu para não usar a macro substituição "&"? Ao Compilar a macro não substitui nesse caso.

Passagem de parâmetros

Enviado: 19 Out 2018 21:25
por JoséQuintas
Essa foi uma coisa chata que achei da HMG, mas com certeza tem solução.
Como HMG usa variável pra isso, talvez criar como STATIC dentro do form, e colocar sub-rotinas nesse mesmo fonte usando a variável, e acessar a variável por meio de função ou classe dentro do PRG.

Isso caso não encontre outra alternativa.