Nesse vídeo demonstraremos a utilização da função GetClassName, que serve para buscar o nome da classe utilizada na criação do objeto.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe266
Retorna o nome da classe de um objeto
@type Function
@author Atilio
@since 21/02/2023
@see https://tdn.totvs.com/display/tec/GetClassName
@obs
Função GetClassName
Parâmetros
+ oObjeto , Objeto , Variável com o objeto instanciado de uma classe
Retorno
+ cClassName , Caractere , Nome da classe usada no Objeto
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe266()
Local aArea := FWGetArea()
Local nCorFundo := RGB(238, 238, 238)
Local nJanAltura := 281
Local nJanLargur := 358
Local cJanTitulo := 'Exemplo GetClassName'
Local lDimPixels := .T.
Local lCentraliz := .T.
Local nObjLinha := 0
Local nObjColun := 0
Local nObjLargu := 0
Local nObjAltur := 0
Private cFontNome := 'Tahoma'
Private oFontPadrao := TFont():New(cFontNome, , -12)
Private oDialogPvt
Private bBlocoIni := {|| /*fSuaFuncao()*/ } //Aqui voce pode acionar funcoes customizadas que irao ser acionadas ao abrir a dialog
//objeto1
Private oSayInsira
Private cSayInsira := 'Insira o Texto:'
//objeto2
Private oGetTexto
Private cGetTexto := "https://terminaldeinformacao.com" + Space(200)
//objeto4
Private oBtnConf
Private cBtnObj8 := 'Confirmar'
Private bBtnObj8 := {|| fConfirma()}
//Cria a dialog
oDialogPvt := TDialog():New(0, 0, nJanAltura, nJanLargur, cJanTitulo, , , , , , nCorFundo, , , lDimPixels)
//objeto1 - usando a classe TSay
nObjLinha := 4
nObjColun := 4
nObjLargu := 70
nObjAltur := 6
oSayInsira := TSay():New(nObjLinha, nObjColun, {|| cSayInsira}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/)
//objeto2 - usando a classe TGet
nObjLinha := 3
nObjColun := 64
nObjLargu := 110
nObjAltur := 10
oGetTexto := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , cGetTexto := u, cGetTexto)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels)
//objeto4 - usando a classe TButton
nObjLinha := 116
nObjColun := 2
nObjLargu := (nJanLargur/2) - 2
nObjAltur := 15
oBtnConf := TButton():New(nObjLinha, nObjColun, cBtnObj8, oDialogPvt, bBtnObj8, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
//Ativa e exibe a janela
oDialogPvt:Activate(, , , lCentraliz, , , bBlocoIni)
FWRestArea(aArea)
Return
Static Function fConfirma()
Local cMensagem := ""
//Busca a classe dos objetos em tela
cMensagem += "oDialogPvt: " + GetClassName(oDialogPvt) + CRLF
cMensagem += "oSayInsira: " + GetClassName(oSayInsira) + CRLF
cMensagem += "oGetTexto: " + GetClassName(oGetTexto) + CRLF
cMensagem += "oBtnConf: " + GetClassName(oBtnConf)
FWAlertInfo(cMensagem, "Teste GetClassName")
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.