Atualizar SET MESSAGE

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

Atualizar SET MESSAGE

Mensagem por Daiane »

Olá pessoal,estou tentando atualizar o nome da empresa que será apresentada no SET MESSAGE.
De inicio para a empresa que esta ativa no sistema (Obs: é ativada uma empresa de cada vez no sistema) aparece a empresa normal,
o problema é quando vou mudar de empresa. Quando mudo de empresa o nome da mesma é atualizada no SET MESSAGE,pois reescrevi o codigo do SET MESSAGE
na rotina que muda a empresa,porem quando passo o mouse na linha do SET MENSAGE ele mostra o nome da primeira empresa.

O que devo fazer?
Este Method New é logo no main do sistema onde inicializo a primeira empresa para mostrar no SET MESSAGE

Código: Selecionar todos

METHOD New() CLASS MFolha
   local i, hIniFile

	
	DEFINE BRUSH oBrush RESOURCE "#7041" // FILENAME "c:\mfolha\icons\logo.jpg"
	DEFINE ICON oIco  RESOURCE "#8001" // FILE "c:\mfolha\icons\principal.ico"

	::sgbdInst := SGBD():getInstance(if(xteste,"c:\mfolha",""))

	DEFINE WINDOW oWnd FROM 2, 8 TO 46, 120 MDI VSCROLL HSCROLL;
      TITLE "MFOLHA" COLOR RGB( 255, 255, 255 );
      MENU  ::BuildMenu();
      BRUSH oBrush;
      ICON oIco

   
	SET MESSAGE OF oWnd TO Space(49) + "CopyRight By 3Soft Sistemas - 2011"+Space(20)+;
		"F8->Calculadora / F9->Período" + Space(20) + ::Apelido() CENTERED  KEYBOARD DATE TIME 2007
   
 	oWnd:Center()
	::oWndMain:=oWnd   
RETURN self
Aqui é a rotina que encontra o nome da empresa, KWEMPDIR é uma var de memoria,fica alocada o nome da empresa ativa

Código: Selecionar todos

METHOD Apelido() class MFolha
   //abrearq(arquivo,modo,segundos,apelido)
   REST FROM &(SGBD():getInstance():arqParam) ADDI
  // MSGINFO(strtran(KWEMPDIR,"\"),"Apelido\Pasta da Empresa")
  ::xCaminho:= CurDrive()+":\MFOLHA\" + strtran(KWEMPDIR,"\") 
RETURN ::xCaminho
Aqui já a função para mudar de empresa,onde chamo de novo o SET MESSAGE para ser atualizado

Código: Selecionar todos

FUNCTION MFOLDIR(oWnd,lSelecionar, selecionou)
	local XEMAR, XATIVAINS, bancos,lSel:=if(VALTYPE(lSelecionar)!="L",.F.,lSelecionar)
   
	REST FROM &(SGBD():getInstance():arqParam) ADDI	//add 07/10/2015 para usar o KWEMPDIR
	
	selecionou := if(VALTYPE(selecionou)!="L",.T.,selecionou)
	
	bancos := SGBD():getInstance()
	
	XEMAR := "S"
	
	XATIVAINS:=.F.
	*if !file("C:\MFOLHA\MFOLHA.DIR")
 	criarq()
	*endif
	if !lSel	
		xen := MsgNoYes("Existe empresa nova para a lista? ", "Empresas do MFOLHA")
	else					
		xen:=.T.
	endif
	
	if xen	   			
		IF !zerarq()
	   	MsgInfo("Não há empresas", "MFolha")
	   	IF !DlgNovaEmpresa():New2():buildDlg2()
				    RETURN .F.
			  ENDIF   
		ELSE		
			bancos:reindexBco(39)
		ENDIF
	endif
	
	IF(!selecionou)
		bancos:abrir(39)
		SELE 39
		DBGOTOP()
		bancos:setSubDir(DIRETORIO)
		bancos:fechar(39)
	ENDIF
		
	xbmudaremp  := XBMudarEmpresa():New2()
	lSelecionou := xbmudaremp:modalDialog(oWnd)
	 
	//add 07/010/2015 as linhas abaixo para atualizar o nome do caminho da empresa quando mudar a empresa ativa
	yCaminho2:= CurDrive()+":\MFOLHA\" + strtran(KWEMPDIR,"\")
	SET MESSAGE OF oWnd TO Space(49) + "CopyRight By 3Soft Sistemas - 2011"+Space(20)+;
		"F8->Calculadora / F9->Período" + Space(20) + yCaminho2 CENTERED  KEYBOARD DATE TIME 2007

return lSelecionou
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Atualizar SET MESSAGE

Mensagem por Kapiaba »

Se entendi, o melhor é você deixar os dados da empresa e apelido, no TITULO DA JANELA, como na imagem abaixo, pois ai, você pode trocar em tempo real, já no SET MESSAGE não, pois sempre que o usuário passar o mouse em cima da BUTTOBAR ou BOTÕES, ela voltará a mensagem original. Veja onde está escrito PETSHOP.

Imagem
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Atualizar SET MESSAGE

Mensagem por Kapiaba »

Outra idéia, mas mesmo assim não acho viável... Mas... Abs

Código: Selecionar todos

#include "FiveWin.ch"

static oWnd

static cMessage

function Main()

   cMessage := "FiveWin power!"

   DEFINE WINDOW oWnd TITLE "Menu test" MENU BuildMenu()

   SET MESSAGE OF oWnd TO  cMessage 

   ACTIVATE WINDOW oWnd ON PAINT( NOVA_EMPRESA( cMessage ) )

return nil

function BuildMenu()

   local oMenu

   MENU oMenu
     MENUITEM "One"   ACTION oWnd:oMsgBar:SetText( "One" )
     MENUITEM "Two"   ACTION oWnd:oMsgBar:SetText( "Two" )
     MENUITEM "Three" ACTION oWnd:oMsgBar:SetText( "Three" )
   ENDMENU

return oMenu

FUNCTION NOVA_EMPRESA( cMessage )

   oWnd:oMsgBar:SetText( "Apelido da Empresa" )

RETURN( cMessage )
Responder