Sem formatar, assim o texto fica visÃvel sem precisar expandir.
E também não é pra copiar, então não precisa formatação.
CREATE CLASS Minhoca
METHOD Send( x )
END CLASS
METHOD Send( x ) CLASS Minhoca
RETURN NIL
A classe minhoca tem o método Send()
x := Minhoca():New()
x:Send( "texto" )
Após definir que x era o objeto minhoca, foi chamado o Send() dele, ok, normal.
x := Minhoca():New()
x:AlgumaCoisa()
Isso vai dar erro de mensagem AlgumaCoisa() não existe, porque não existe mesmo.
x := 0
x:Send()
Isso vai dar erro, porque x não tem nada a ver com classe, e não tem Send(), mesmo erro: mensagem Send() Não existe.
x := win_OleCreateObject( "ServerXmlHTTP" )
x:Send( cTexto )
Esse objeto criado com base em ServerXmlHTTP é um objeto do WINDOWS, pra comunicação.
O objeto do Windows tem a "mensagem" Send().
Se dá erro de "message Send() não existe", é porque não criou o objeto, igual aos exemplos anteriores, mas que foram criados no Harbour.
Estamos apenas usando o objeto do Windows, não é nada criado no Harbour, o Harbour apenas faz uso do que já existe.
Se isso não der certo:
1) o nome do objeto pode estar errado, pode não ser ServerXmlHTTP, e por isso não cria
2) o Nome Send() pode estar errado, e por isso não encontra
3) a rotina que trata da conversa entre o Harbour e o objeto não funcionam do jeito que deveria, está com defeito.
No Harbour funciona, no xHarbour não, então vamos recapitular as possibilidades:
1) o nome do objeto pode estar errado, pode não ser ServerXmlHTTP, e por isso não cria
Já vimos que tem diferença entre Harbour e xHarbour no nome, não deveria mas tem.
Então é confirmar qual o nome correto a ser usado.
2) o Nome Send() pode estar errado, e por isso não encontra
Se no Harbour funciona, e o nome é esse, então existe. Esta opção pode ser descartada.
3) a rotina que trata da conversa entre o Harbour e o objeto não funcionam do jeito que deveria, está com defeito.
Esta é uma possiblidade. Como já vimos, no xHarbour tem várias rotinas pra fazer a mesma coisa, e diferentes.
Se existem rotinas diferentes, é porque uma funciona e outra não.
Se todas continuam existindo, é sinal de que depende de outros fatores pra funcionar, pode ser compilador/lib/etc.
Pra eliminar qualquer interferência externa, a melhor coisa é criar um exemplo básico, e compilar em separado do aplicativo.
Se funcionar em separado, só com Harbour, e não com a LIB.... problema de compatibilidade com a LIB.
Se funcionar num lugar e em outro não, então depende de qual LIB está sendo usada.
Sugestão:
Aonde funciona com xHarbour, coloquem versão do xHarbour, compilador C, e qual biblioteca gráfica está sendo usada, talvez até que LIBs adicionais estão sendo usadas, e talvez também a versão do Windows.
É bom começar a montar um banco de dados sobre o que funciona com o que, senão sempre vai ter isto de tentar descobrir porque sim e porque não.
Eu não uso Xharbour, não sei o que tem que ser feito, e cada vez quero menos saber sobre ele, porque é esquisito.
PIOR QUE ISSO: As LIBs gráficas são feitas pra funcionar com Harbour e XHarbour, e a maioria tem até função extra pra compensar falhas, o que pode ser bom pra XHarbour e pode estragar o Harbour.
Talvez até por isso as LIBs tenham Harbour próprio.
Só que aà fud... porque passamos a ter Harbour 3.2, Harbour 3.4, Harbour que vém com HMGE, Harbour que vém com Fivewin, Harbour que vém com sei lá qual lib...
Entenderam porque eu reclamo sobre compatibilidade?
Porque comentei que as LIBs estragam o Harbour e/ou Xharbour, como se criassem uma linguagem própria?
Acredito que exista diferença entre Harbour 3.2 e Harbour 3.4 nesse ponto também.
Manter compatÃvel com Borland C 5.5 também é péssimo, ele é do tempo do Windows XP, não existia Windows Vista, Windows 7, Windows 8, Windows 10.
E muito menos Windows 64 bits !!!!!!
Pensem nisso.
Relacionem os detalhes do que funciona e aonde, conforme mencionei antes.
No Windows tem a opção de funcionar em modo de compatibilidade.
Isso também pode ser definido em arquivo MANIFEST.
É outra possibilidade pra usar compilador e fontes ultrapassados.
De repente o modo de compatibilidade poderia resolver, mesmo que seja quebra-galho, é uma opção disponÃvel.
Só que pra isso: ou coloca no manifest, ou configura no Windows, talvez os dois juntos não dê certo.
Isso não é exagero: já precisei usar o modo de compatibilidade no Windows 10, pra poder conseguir imprimir com o Open Office.
Sem o modo de compatibilidade, nada de imprimir....
Se isso acontece até com Open Office, imaginem nos aplicativos de nós pobres mortais.