Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.
Moderador: Moderadores
maaupe
Usuário Nível 1
Mensagens: 4 Registrado em: 30 Mai 2013 20:18
Localização: Rio de Janeiro
Mensagem
por maaupe » 30 Mai 2013 21:00
Boa noite a todos.
como eu crio esta classe :
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
Mensagens: 3092 Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil
Mensagem
por alxsts » 30 Mai 2013 23:05
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
Mensagens: 3092 Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil
Mensagem
por alxsts » 30 Mai 2013 23:07
Olá!
Faltou dizer que para atributos coleção, você poderá usar variáveis dos tipos Array ou Hash.
[]´s
Alexandre Santos (AlxSts)