create class

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

Moderador: Moderadores

maaupe
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 30 Mai 2013 20:18
Localização: Rio de Janeiro

create class

Mensagem por maaupe »

Boa noite a todos.

como eu crio esta classe :

Código: Selecionar todos

create class cliente
data codigo 
data nome
data dtcad
gostaria de saber com coloco os metodos get e set.

e se tiver um atributo que e uma coleção por exemplo como eu declaro este atributo ???

muitas duvidas !!!! no help nao eocntei a definição do create class. Outr coisa tem heranca visual ???


Obrigado a todos
Editado pela última vez por Pablo César em 31 Mai 2013 17:35, em um total de 1 vez.
Razão: O presente tópico foi movido da seção MiniGui, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com a MiniGui.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

create class

Mensagem por alxsts »

Olá!

Seja bem-vindo ao fórum!

O exemplo abaixo foi extraído do xHarbour Language Reference Guide. Procure no Google que você encontrará (em inglês).

Código: Selecionar todos

   
Example
// The example implements a class whose instances have three states
// represented as numeric -1, 0 and 1. The state can be changed by
// assigning values of different data types.

   #include "Hbclass.ch"
   #include "Error.ch"

   PROCEDURE Main
      LOCAL obj := ThreeState():new()

      ? obj:state              // result: -1
      obj:state := "ON"

      ? obj:state              // result:  1

      obj:state := "OFF"
      ? obj:state              // result:  0

      obj:state := "UNDEF"
      ? obj:state              // result: -1

      obj:state := .T.
      ? obj:state              // result:  1

      obj:state := NIL
      ? obj:state              // result: -1

      obj:state := 1
      ? obj:state              // result:  1

      obj:state := 3           // runtime error

   RETURN

   CLASS ThreeState                                   //  ===> Define a classe
      PROTECTED:
      DATA _value  INIT  -1

      EXPORTED:
      ACCESS state                                       //  ===> Get
      ASSIGN state( x ) INLINE ::state( x )     //  ===> Set
   ENDCLASS


   METHOD state( xState ) CLASS ThreeState    //  ===> Define um método
      LOCAL lError := .F.

      IF PCount() == 0
         RETURN ::_value
      ENDIF

      IF Valtype( xState ) == "N"
         IF xState IN { -1, 0, 1 }
            ::_value := xState
         ELSE
            lError := .T.
         ENDIF

      ELSEIF Valtype( xState ) == "C"
         DO CASE
         CASE Upper( xState ) == "ON"
            ::_value := 1
         CASE Upper( xState ) == "OFF"
            ::_value := 0

         CASE Upper( xState ) == "UNDEF"
            ::_value := -1
         OTHERWISE
            lError := .T.
         ENDCASE

      ELSEIF Valtype( xState ) == "L"
         ::_value := IIF( xState, 1, 0 )

      ELSEIF Valtype( xState ) == "U"
         ::_value := -1

      ELSE
         lError := .T.
      ENDIF

      IF lError
         RETURN ::error( "illegal data assigned", ;
                         ::className(), "state" , ;
                         EG_ARG, {xState}         )
      ENDIF

   RETURN ::_value
Espero que ajude. Utilize o recurso de busca do fórum e continue postando suas dúvidas.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

create class

Mensagem por alxsts »

Olá!

Faltou dizer que para atributos coleção, você poderá usar variáveis dos tipos Array ou Hash.
[]´s
Alexandre Santos (AlxSts)
Responder