Olá!
Seja bem-vindo ao Fórum Labrego!
asimoes escreveu:Se vai herdar tem que usar INHERIT
FROM e INHERIT, em [x]Harbour, são sinônimos. Sendo assim, tanto faz.
Seu exemplo de código é pequeno não sendo possÃvel uma análise mais ampla. Obrservando a mensagem de erro, observa-se que o método construtor da classe PopUp não está retornando um objeto, como deveria fazer. Algo assim:
/*******************************/
CLASS PopUp
/******************************/
//
// Declarações
//
EndClass
//----------------------------------------------------------------------
Method New() Class PopUp
//
// Procedimentos
//
Return self // --> self é um objeto e representa a própria classe
//----------------------------------------------------------------------
/*******************************/
CLASS TPopUp FROM PopUp
/******************************/
HIDDEN:
DATA oPopUp, oColors AS Object
EXPORT:
// METHOD New, AddPopUp, AddPrompt, AddSeparator, Modal
METHOD New
METHOD AddPopUp
METHOD AddPrompt
METHOD AddSeparator
METHOD Modal
ENDCLASS
//----------------------------------------------------------------------
Method New() Class TPopUp
//
// Procedimentos
//
Return self // --> self é um objeto e representa a própria classe
//----------------------------------------------------------------------
É este tipo de construção de código (método retornando a própria classe) que possibilita escrevermos código como:
oTBrowse:goTop():refreshAll()
Neste caso, o método goTop() retorna self o próprio objeto TBrowse(), que tem em seguida invocado o seu método refreshAll().
Para facilitar a análise de código fonte, o Fórum tem a "tag code" presente na barra de ferramentas da página que se abre para postar mensagens. Basta clicar no botão mostrado abaixo e colar o código entre as tags.
Para outras informações sobre formatação de mensagens, veja:
Guia do BBCode