Clipper On Line • Ver Tópico - programação orientada a objetos ?

programação orientada a objetos ?

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

Moderador: Moderadores

 

programação orientada a objetos ?

Mensagempor Emanuel » 21 Set 2018 17:28

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...
Emanuel
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 24
Data de registro: 20 Set 2018 14:39
Cidade/Estado: parnaiba-pi
Curtiu: 12 vezes
Mens.Curtidas: 0 vez

programação orientada a objetos ?

Mensagempor susviela@bol.com.br » 21 Set 2018 17:33

.
.
"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 )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes

programação orientada a objetos ?

Mensagempor Emanuel » 21 Set 2018 17:44

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 :(
Emanuel
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 24
Data de registro: 20 Set 2018 14:39
Cidade/Estado: parnaiba-pi
Curtiu: 12 vezes
Mens.Curtidas: 0 vez

programação orientada a objetos ?

Mensagempor JoséQuintas » 21 Set 2018 17:46

José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

programação orientada a objetos ?

Mensagempor Emanuel » 21 Set 2018 17:51

sr. JoséQuintas, muito obrigado



conseguiu me passar tudo o que eu estava procurando por horas :)) :))

obrigado :xau
Emanuel
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 24
Data de registro: 20 Set 2018 14:39
Cidade/Estado: parnaiba-pi
Curtiu: 12 vezes
Mens.Curtidas: 0 vez

programação orientada a objetos ?

Mensagempor susviela@bol.com.br » 21 Set 2018 18:07

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 )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes

programação orientada a objetos ?

Mensagempor Emanuel » 24 Set 2018 15:01

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 (#-)
Emanuel
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 24
Data de registro: 20 Set 2018 14:39
Cidade/Estado: parnaiba-pi
Curtiu: 12 vezes
Mens.Curtidas: 0 vez

programação orientada a objetos ?

Mensagempor JoséQuintas » 24 Set 2018 15:19

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

programação orientada a objetos ?

Mensagempor Emanuel » 24 Set 2018 15:31

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
Emanuel
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 24
Data de registro: 20 Set 2018 14:39
Cidade/Estado: parnaiba-pi
Curtiu: 12 vezes
Mens.Curtidas: 0 vez

programação orientada a objetos ?

Mensagempor JoséQuintas » 24 Set 2018 15:43

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

Eles existem?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

programação orientada a objetos ?

Mensagempor JoséQuintas » 24 Set 2018 15:48

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

programação orientada a objetos ?

Mensagempor Emanuel » 24 Set 2018 15:56

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)
Emanuel
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 24
Data de registro: 20 Set 2018 14:39
Cidade/Estado: parnaiba-pi
Curtiu: 12 vezes
Mens.Curtidas: 0 vez

programação orientada a objetos ?

Mensagempor susviela@bol.com.br » 24 Set 2018 16:29

Ajustei para você faltava os mé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 )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes

programação orientada a objetos ?

Mensagempor Emanuel » 24 Set 2018 16:39

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
Data de registro: 20 Set 2018 14:39
Cidade/Estado: parnaiba-pi
Curtiu: 12 vezes
Mens.Curtidas: 0 vez

programação orientada a objetos ?

Mensagempor Emanuel » 25 Set 2018 10:37

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.
Emanuel
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 24
Data de registro: 20 Set 2018 14:39
Cidade/Estado: parnaiba-pi
Curtiu: 12 vezes
Mens.Curtidas: 0 vez

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro