uso simples de uma classe

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

uso simples de uma classe

Mensagem por Emanuel »

ola pessoal, Bom dia

eu to com dificuldades para aprender classes
algum de vocês podem me mostrar um exemplo de algum uso bem simples de uma classe; criação da classe, como usar os metodos, forma de instanciar.

eu criei uma! porém eu sempre me perco na hora dos métodos e me complico mais ainda na hr de instanciar

Código: Selecionar todos

//o meu objetivo era criar uma classe para receber 
//os seguintes dados, porém eu teria que criar uma tabela no db 

class Tcliente 
    data nNome
    data cCpf
    data nIdade

    method cadastrar()
    method aTcadastro()
    method reCadastro()

endclass

method cadastrar() class Tcliente
    ::nNome  := nil
    ::cCpf   := nil
    ::nIdade := nil

return self
então em vez de começar a estudar classes com o dbf eu quero aprender a ultiliza-las sem precisar criar tabelas nem qualquer coisa do tipo

tem como ultilizar classes sem a necessidade de criar uma tabela ou coisa do tipo ne??
algum de vocês poderiam me dar exemplos
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

uso simples de uma classe

Mensagem por alxsts »

Olá!

Você abriu este tópico relativo ao mesmo assunto. Por quer abrir outro? Concentre suas dúvidas naquele outro tópico...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

uso simples de uma classe

Mensagem por JoséQuintas »

obs... sou iniciante, comecando a ver dbf agora
sei fazer alguns programas basicos com xharbour.
então em vez de começar a estudar classes com o dbf eu quero aprender a ultiliza-las sem precisar criar tabelas nem qualquer coisa do tipo
tem como ultilizar classes sem a necessidade de criar uma tabela ou coisa do tipo ne??
Pode-se trabalhar a vida inteira com Harbour sem nunca usar classe.
Pra fazer e usar uma classe, precisa conhecer bem o Harbour.

Então resta a pergunta:
Porque classe, se aparentemente sem sabe pra que serve?
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
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

uso simples de uma classe

Mensagem por rochinha »

Amiguinhos,

Acho que o Emanuel só deseja aprender sobre classes no Harbour.

Creio que a postagem a seguir pode ser um ponto de partida, clique aqui para acessar

Mais uma postagem que pode te ajudar para enteder e criar classes.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

uso simples de uma classe

Mensagem por JoséQuintas »

Pela pergunta, pode achar que é obrigatório, como acontece com linguagens visuais.
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

uso simples de uma classe

Mensagem por Emanuel »

Então resta a pergunta:
Porque classe, se aparentemente sem sabe pra que serve?
Sr. Quintas... eu sou estudante de uma escola de ensino tecnico em informatica e infelizmente a base de programação que eu tive ano passado ( quando eu estava no 2º ano ) não foi tão boa. :(Neg

os professores deste ano começaram com a linguagem clipper, e eu gostei muito, muito mesmo.

um professor em especial passou um trabalho pra turma, "criar um programa que receba os dados cadastrais de um cliente e salvar esses dados no dbf. ao final o programa devera ter as seguintes opções; cadastrar, ver a lista de cadastros e excluir.

tudo o que eu consegui ate agora foi isso
não sei como usar os metodos tambem não sei bem como criar essa tabela no dbf

Código: Selecionar todos

# include "hbclass.ch" 
# include "inkey.ch"

class Tcliente 
    data nNome
    data cCpf
    data nIdade

    method cadastrar()
    method listCadas()
    method excCadast()
endclass

function main()
    local nOpc

    set century on
    set delimiters on
    set delimiters to "[]"
    set wrap on    
    set message to ultimaLinha -1 center
   
    cls
    do while .t.
    @ 0, 0 to 3, maxcol () DOUBLE
    @ 1, 2 say "SISTEMA DE CADASTRO PARA PESSOAS FISICAS"
    @ 1,  maxcol () -15 say "Data:"+Dtoc(date()) 
    @ 2, 2 say "cadastro de clientes"

    @ 4, 0 to ultimaLinha, maxcol ()

    @10, 23 to 18, 50 DOUBLE 
    @10, 25 say ".: CADASTRAR CLIENTES :."
    @12, 26 prompt "      cadastro        " message " cadastro de novo cliente    "
    @13, 26 prompt "      exclusao        " message " cancelar cadastro de cliente"
    @14, 26 prompt "      listagem        " message " consulta de clientes        "
    @16, 26 prompt "        sair          " message " sair do sistema             "

    if Lastkey() == K_ESC
        cls
        exit
    endif

    menu to nOpc
    do case 
        case nOpc == 1; cadastro()
        case nOpc == 2; exclui()
        case nOpc == 3; lista()
        case nOpc == 4; exit 
    endcase
enddo
return nil

function cadastro()
    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

desculpas por ter aberto outro topico com o mesmo assunto anterior, sou novo aqui no forum e eu nn tinha lido o topico de leitura obrigatoria. não sabia bem como ultilizar.
sr's isso não acontecera de novo...
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

uso simples de uma classe

Mensagem por JoséQuintas »

Aí que está....

Esqueça classe por enquanto.
Vai acabar só te atrapalhando.

Classe é pra agrupar um conjunto de tarefas repetitivas pra faciitar múltiplas rotinas/módulos.
Se não sabe criar um módulo, não vai facilitar nada, vai estar brigando pra entender o módulo e a classe.
Se fizer sem nada disso, vai estar concentrado apenas no módulo, no que interessa no momento.
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
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

uso simples de uma classe

Mensagem por clodoaldomonteiro »

Olá,
Inclua no seu fonte uma função pra cria sua base de dados.

Código: Selecionar todos

Function CriaDBF()
   If !File('meuArquivo.dbf')
      DbCreate('meuArquivo', {;
       {'Codigo','C',6,0},;
       {'Nome','C',100,0},;
       {'Endereco','C',100,0};
      }
   Endif
   Return .t.
Não use acentos nos nomes dos campos.
Você pode chamar essa função no início do se sistema, logo depois dos SETs.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

uso simples de uma classe

Mensagem por clodoaldomonteiro »

Tá ficando assim:

Código: Selecionar todos

# include "inkey.ch"

Function Main()
   local nOpc

   set century on
   set delimiters on
   set delimiters to "[]"
   set wrap on
   set message to ultimaLinha -1 center

   CriaDBF
   
   Clear

   Do While .t.
      @ 0, 0 to 3, maxcol () DOUBLE
      @ 1, 2 say "SISTEMA DE CADASTRO PARA PESSOAS FISICAS"
      @ 1,  maxcol () -15 say "Data:"+Dtoc(date())
      @ 2, 2 say "cadastro de clientes"

      @ 4, 0 to ultimaLinha, maxcol ()

      @ 10, 23 to 18, 50 DOUBLE
      @ 10, 25 say ".: CADASTRAR CLIENTES :."
      @ 12, 26 prompt "      cadastro        " message " cadastro de novo cliente    "
      @ 13, 26 prompt "      exclusao        " message " cancelar cadastro de cliente"
      @ 14, 26 prompt "      listagem        " message " consulta de clientes        "
      @ 16, 26 prompt "        sair          " message " sair do sistema             "

      if Lastkey() == K_ESC
         Clear
         exit
      endif

      Menu to nOpc
      
      do case
      case nOpc == 1; cadastro()
       case nOpc == 2; exclui()
       case nOpc == 3; lista()
       case nOpc == 4; exit
       endcase
   enddo
   
   Return nil

Function cadastro()
   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"
   //Aqui vc coloca a Function para consultar
   Browse()   //ou DBEdit()
   inkey(0)
   cls
   return nil

   /////////////////////////////////////////////////////////////////////////////
   //Testa a existencia das tabelas do sistema
Function CriaDBF()
   If !File('meuArquivo.dbf')
      DbCreate('meuArquivo', {;
       {'Codigo','C',6,0},;
       {'Nome','C',100,0},;
       {'Endereco','C',100,0};
      }
   Endif
   
   //Aqui vc pode incluir mais Tabelas
   
   Return .t.
Anexos
xHarbour Language Reference Guide.rar
Manual do xHarbour, tem muito exemplo bom.
(2.2 MiB) Baixado 58 vezes
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
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:

uso simples de uma classe

Mensagem por susviela@bol.com.br »

clodoaldomonteiro escreveu: ... Esse manual que você passou para ele, é muito bom, mesmo.
Mas eu penso que se não for "pré requisito do tema usar Classes" o livro do Vlademiro seria mais didático para quem está começando:

https://drive.google.com/drive/folders/ ... TFCU0VkRUk

Se for para usar classes o "bicho vai pegar" ... mas ao conseguir cair a ficha para ele, vai ser um grande passo.

O mais interessante, e animador, disso tudo é um professor usar Harbour em um curso atual .. precisamos saber mais sobre isso.
:-Y :-Y :-Y

Diz ai colega, qual é a escola ?

.
.
.
"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 )
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

uso simples de uma classe

Mensagem por alxsts »

Olá!

Só lembrando que este guia de referência do xHarbour está disponível na Seção de Downloads do Fórum.
[]´s
Alexandre Santos (AlxSts)
Responder