Como utilizar a função CreateSession
Como utilizar a função CreateSession()
Este How To tem como objetivo apresentar a utilização da função CreateSession(). Para isso, é imprescindível observar a utilização da função com seus parâmetros.
Neste exemplo, demonstramos a criação de sessões e workspaces.
Para mais informações, consulte a documentação da função CreateSession().
Exemplo
#include "Totvs.ch"
//-----------------------------------
// Programa de teste
//-----------------------------------
User Function TstSession()
SetFlatControls(.T.)
DEFINE MSDIALOG oDlg TITLE "Exemplo CreateSession" FROM 000,000 TO 500,650 PIXEL
// Cria Folder da WorkSpace
workFolder := TWorkspaceFolder():New( oDlg, 000, 000, 500, 500 )
workFolder:Align := CONTROL_ALIGN_ALLCLIENT
// Cria primeira aba
workSpace1 := TWorkSpace():New( " Aba 01 MDI ", workFolder )
workSpace1:SetStatusBarText("Texto da barra de status - Tela 01")
Thread_01 := getThread()
CreateSession( Thread_01, workSpace1, "u_tstMdi", Thread_01, "Texto da Janela - 01" )
// Sleep de 500 milesegundos para terminar a criação
// da primeira Session e permitir a criação da segunda
Sleep(500)
// Cria segunda aba
workSpace2 := TWorkSpace():New( " Aba 02 MDI ", workFolder )
workSpace2:SetStatusBarText("Texto da barra de status - Tela 02")
Thread_02 := getThread()
CreateSession( Thread_02, workSpace2, "u_tstMdi", Thread_02, "Texto da Janela - 02" )
oDlg:Activate()
Return
//--------------------------------------
// Programa de teste para PtRunInSession
//--------------------------------------
User Function RunInSection(cThread)
// Muda o texto da Get
cTGet1 := "PtRunInSession: " + cThread
Return
//-----------------------------------
// Programa de teste
//-----------------------------------
User Function TstMdi( cID, cTitle )
Private cThread := cID
DEFINE DIALOG oDlg TITLE "Exemplo TGet" FROM 180,180 TO 550,700 PIXEL
cTGet1 := "Teste TGet 01 - " + cThread
oTGet1 := TGet():New( 01,01,{||cTGet1},oDlg,096,009,;
"@!",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cTGet1,,,, )
cTGet2 := "Teste TGet 02 - " + cThread
oTGet2 := TGet():New( 14,01,{||cTGet2},oDlg,096,009,;
"@!",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cTGet1,,,, )
// Executa Programa atraves do PtRunInSession
oButton1 := TButton():New( 28, 01, "PtRunInSession",oDlg,;
{|| PtRunInSession(cThread,"u_RunInSection('"+cThread+"')") },;
40,010,,,.F.,.T.,.F.,,.F.,,,.F. )
ACTIVATE DIALOG oDlg CENTERED
Return
//-----------------------------------
// Gera um ID para a Thread
//-----------------------------------
Static Function getThread()
// Garante que não seja retornado o mesmo segundo duas vezes
Sleep(1000)
Return StrTran( Time(), ":", "" )
Preview
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas