programação orientada a objetos ?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Emanuel
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 20 Set 2018 14:39
Localização: parnaiba-pi

programação orientada a objetos ?

Mensagem por Emanuel »

ola pessoal...

algum de vocês podem me mandar um exemplo de programação orientada a objeto no xharbour??

estou com dificuldades para criar classes, estou errando muito na sintaxe tbm..

desde ja agradeço...
Avatar do usuário
susviela@bol.com.br
Usuário Nível 3
Usuário Nível 3
Mensagens: 236
Registrado em: 30 Jun 2017 11:17
Localização: São José / SC
Contato:

programação orientada a objetos ?

Mensagem por susviela@bol.com.br »

Opa...

Tem um Tutorial passo a passo aqui:

- https://programandoxbase.wordpress.com/ ... e-classes/
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Emanuel
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 20 Set 2018 14:39
Localização: parnaiba-pi

programação orientada a objetos ?

Mensagem por Emanuel »

sr. Susviela..
eu tentei compilar seus codigos, porém, sempre da erro em " #include <hmg.ch> "
aparece essa mensagem de erro -->
class.prg(3) Error F0029 Can't open #include file: 'hmg.ch'

eu tentei fazer algumas coisas pra resolver, mas não consegui :(
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

programação orientada a objetos ?

Mensagem por JoséQuintas »

José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Emanuel
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 20 Set 2018 14:39
Localização: parnaiba-pi

programação orientada a objetos ?

Mensagem por Emanuel »

sr. JoséQuintas, muito obrigado
conseguiu me passar tudo o que eu estava procurando por horas :)) :))

obrigado :xau
Avatar do usuário
susviela@bol.com.br
Usuário Nível 3
Usuário Nível 3
Mensagens: 236
Registrado em: 30 Jun 2017 11:17
Localização: São José / SC
Contato:

programação orientada a objetos ?

Mensagem por susviela@bol.com.br »

sr. Susviela..
eu tentei compilar seus codigos, porém, sempre da erro em " #include <hmg.ch> "
aparece essa mensagem de erro -->
class.prg(3) Error F0029 Can't open #include file: 'hmg.ch'
Obrigado pela dica / retorno ...
Esse é um #include <hmg> para quem usa HMG, pode retirar que não tem problema, mesmo assim vou corrigir no Blog.

Muito embora no texto esteja escrito:
Pré requisitos :
- HMG ( 3.4.4 - 32 bits)
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Emanuel
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 20 Set 2018 14:39
Localização: parnaiba-pi

programação orientada a objetos ?

Mensagem por Emanuel »

pessoal, desculpem pela minha burrice, mas ainda nn consegui entender como usar classes :'( :'(

todos os exemplos que eu tento compilar dão erro de compilação e quando compila da erro de execução :( :(

sr. susviela, o seu site esta me ajudando muito, muito mesmo. porém eu não to conseguindo aprender esse negocio de orientação a objeto (#-)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

programação orientada a objetos ?

Mensagem por JoséQuintas »

Apesar de classe fazer parte do Harbour, sem esse #include não vai.

#include "hbclass.ch"

Deve ser isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Emanuel
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 20 Set 2018 14:39
Localização: parnaiba-pi

programação orientada a objetos ?

Mensagem por Emanuel »

sr. Quintas..
eu to tentando assim

# include "hbclass.ch"

create class oCadastro
var nNome init ""
var cIdade init ""
var nNumTel init 0
var nCpf init 0
var nId init 0

METHOD New(cArqDB) CONSTRUCTOR
METHOD CriarTabela()

endclass



ta dando erro nos metodos
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

programação orientada a objetos ?

Mensagem por JoséQuintas »

Tá dizendo que a classe tem dois métodos.

Eles existem?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

programação orientada a objetos ?

Mensagem por JoséQuintas »

Deve ter dado a mesma mensagem que aqui:
hbmk2: Error: Referenced, missing, but unrecognized Harbour function(s):
OCADASTRO_NEW(), OCADASTRO_CRIARTABELA()

"referenciado, perdido, funções não reconhecidas pelo Harbour..."
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Emanuel
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 20 Set 2018 14:39
Localização: parnaiba-pi

programação orientada a objetos ?

Mensagem por Emanuel »

JoséQuintas escreveu:Deve ter dado a mesma mensagem que aqui:
hbmk2: Error: Referenced, missing, but unrecognized Harbour function(s):
OCADASTRO_NEW(), OCADASTRO_CRIARTABELA()

"referenciado, perdido, funções não reconhecidas pelo Harbour..."
deu esse mesmo erro aqui
eu vi que o problema é q esses metodos nn existem. eu to me complicando sozinho aqui (U)
Avatar do usuário
susviela@bol.com.br
Usuário Nível 3
Usuário Nível 3
Mensagens: 236
Registrado em: 30 Jun 2017 11:17
Localização: São José / SC
Contato:

programação orientada a objetos ?

Mensagem por susviela@bol.com.br »

Ajustei para você faltava os métodos ...

Código: Selecionar todos

# include "hbclass.ch"

  create class oCadastro
  var nNome init ""
  var cIdade init ""
  var nNumTel init 0
  var nCpf init 0
  var nId init 0

  METHOD New(cArqDB) CONSTRUCTOR
  METHOD CriarTabela()

endclass 


*---------------------------------------------------------------------------
METHOD New(cArqDB) CLASS oCadastro   // <==  FALTANDO ISSO mesmo PRG
*---------------------------------------------------------------------------

//   códigos aqui ...


Return Self    // construtor retorna self


*---------------------------------------------------------------------------
METHOD CriarTabela() CLASS oCadastro   // <==  FALTANDO ISSO mesmo PRG
*---------------------------------------------------------------------------

//   códigos outro método aqui ...


Return .T.


Melhor não usar esse nome (oCadastro) na classe .. Pode, mas não é mais recomendado ( talvez uma boa dica seria trocar por tCadastro )
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Emanuel
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 20 Set 2018 14:39
Localização: parnaiba-pi

programação orientada a objetos ?

Mensagem por Emanuel »

sr. susviela, mais uma vez, muito obrigado :)Pos me deu uma luz no fim do tunel :-Y :-Y
Emanuel
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 20 Set 2018 14:39
Localização: parnaiba-pi

programação orientada a objetos ?

Mensagem por Emanuel »

ola pessoal, bom dia :D

então pessoal
eu criei esse fonte pra estudar mais sobre classes, porém a minha dificudade agora são os metodos
não sei como usa-los

aqui esta o fonte!

# include "hbclass.ch"
# define ultimaLinha 24
# include "inkey.ch"
procedure main()
local nOpc
config()

cls
do while .t.
@ 0, 0 to 3, maxcol () DOUBLE // contorno do box
@ 1, 2 say "SISTEMA DE CADASTRO PARA PESSOAS FISICAS"
@ 1, maxcol () -15 say "Data:"+Dtoc(date()) // exibir data
@ 2, maxcol () -15 say "Hora:"+time() // exibe hora
@ 2, 2 say "cadastro de clientes"

@ 4, 0 to ultimaLinha, maxcol ()

@10, 23 to 18, 50 DOUBLE // contorno do menu
@10, 25 say ".: CADASTRAR CLIENTES :."
@12, 26 prompt "cadastro " message " cadastro de novo cliente "
@13, 26 prompt "alteracao" message " altera dados de um cliente "
@14, 26 prompt "exclusao " message " cancelar cadastro de cliente"
@15, 26 prompt "listagem " message " consulta de clientes "
@17, 26 prompt "sair " message " sair do sistema "

menu to nOpc
do case
case nOpc == 1
inclui ()
case nOpc == 2
altera ()
case nOpc == 3
exclui ()
case nOpc == 4
lista ()
case nOpc == 5
exit
endcase
enddo
return

function inclui ()
cls
?"inclusao de usuarios"
inkey(0)
cls
return nil

function altera ()
cls
?"alteracao de clientes"
?"tecle algo"
inkey(0)
cls
return nil

function exclui ()
cls
?"exclusao de clientes"
?"tecle algo"
inkey(0)
cls
return nil

function lista ()
cls
?"listagem de clientes"
?"tecle algo"
inkey(0)
cls
return nil

function config ()
set date british // converte data para a versao dd/mm/yy
set century on // exibe o ano em quatro digitos
set delimiters on// ativa os delimitadores
set delimiters to "[]" // informa como serao os delimitadores
set wrap on // quando chega no ultimo prompt ele volta ao primeiro
set message to ultimaLinha -1 center // exibe menssagem na ultima linha
return nil


e aqui a classe que estou querendo usar

class cliente
data Nome
data Cpf
data id
data NumTel
data caCred
data endereco
data codiCli
data idade
data datNasc
method adicionar()

endclass

method adicionar() class cliente

depois dos metodos eu me perco. não sei pra onde ir, nem o que fazer.
Responder