Estava desenvolvendo uma classe customizada herdando da classe padrão FWMBrowse, visando simplificar seu uso para minhas rotinas. Porém observei que caso eu crie um método ClassName(), que eu sempre crio por padrão em minhas classes o sistema passa a apresentar erros logs, quando eu não coloco esse método a classe funciona perfeitamente. O que poderia ser esse comportamento? Não seria recomendado ter esse método ClassName()?
O erro ocorre quando executa o comando tCXMBrowse():New() na função chamadora, e tanto faz se eu passo ou não um objeto como argumento.
#INCLUDE 'RWMake.ch'
#INCLUDE 'Totvs.ch'
#Include "tlpp-object.th"
Class tCXMBrowse From FWMBrowse
PUBLIC DATA _oDlg AS Object
PUBLIC METHOD New() Constructor
PUBLIC METHOD ClassName() AS Character
EndClass
Method New(oDlg) Class tCXMBrowse
::cClassName := 'tCXMBrowse'
::_oDlg := oDlg
_Super:New(::_oDlg)
Return Self
Method ClassName() Class tCXMBrowse
Return ::cClassName
Erro log gerado:
THREAD ERROR ([17368], cirilorocha, NBK061) 02/02/2023 07:16:00
variable is not an object on FWFORMBROWSE:SETOWNER(FWFORMBROWSE.PRW) 30/12/2022 14:25:06 line : 1698
[TOTVS build: 7.00.210324P-20221215]
Called from FWBROWSE:NEW(FWBROWSE.PRW) 30/12/2022 14:25:06 line : 812
Called from FWFORMBROWSE:NEW(FWFORMBROWSE.PRW) 30/12/2022 14:25:06 line : 212
Called from FWMBROWSE:NEW(FWMBROWSE.PRW) 30/12/2022 14:25:06 line : 147
Called from TCXMBROWSE:NEW(TCXMBROWSE.TLPP) 02/02/2023 07:15:40 line : 24
Called from U_CXTESTE(CXTESTE.TLPP) 02/02/2023 06:48:38 line : 5