Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
12 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 12 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

Tudo dá errado

3/2/2017, 16:50 por Douglas Pascini

Troquei de maquina, achei que seria uma boa, [Você precisa estar registrado e conectado para ver esta imagem.]  pois passei para uma maquina melhor.

Instalei o …

Comentários: 1

URGENTE - Instalação do aplicativo

24/1/2017, 08:51 por Douglas Pascini

Bom dia. Estou com um problema, ao fazer a instalação (colocar os arquivo) do aplicativo na …

Comentários: 0

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 3

Estatísticas
Temos 7021 usuários registrados
O último usuário registrado atende pelo nome de diegopeixoto

Os nossos membros postaram um total de 21 mensagens em 12 assuntos

Trabalhando com classes (.prg) no VFP 9.0

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Tutorial Trabalhando com classes (.prg) no VFP 9.0

Mensagem por Marcos Guedes em 6/11/2009, 11:52

Uma forma muito prática, porém - aparentemente - não muito utilizada, para se trabalhar com códigos no Visual FoxPro, é a utilização de classes em arquivos .prg.

Como criar tais classes?

Basta utilizar o seguinte modelo de código:
Código:
#DEFINE _enter CHR(13)+CHR(10)

DEFINE CLASS minhaclasse AS CUSTOM

   PROCEDURE minhafuncao AS void
      MESSAGEBOX(THIS.funcaointerna(), 48, "minhaClasse")
   ENDPROC

   HIDDEN FUNCTION funcaointerna AS STRING
      *!* O atributo HIDDEN torna esta função invisível para os
      *!* objetos instanciados desta classe.
      *!* Sendo assim esta função poderá ser utilizada apenas pelas
      *!* demais funções de classe.
      LOCAL mensagem AS STRING
      *!*
      m.mensagem = "Texto contido na função interna da classe!" + _enter
      m.mensagem = m.mensagem + "Esta função não poderá ser acessada por uma instância da classe"
      *!*
      RETURN m.mensagem
   ENDFUNC

ENDDEFINE

Como utilizar a classe criada?

Para chamar as funções, contidas em sua classe, basta seguir o seguinte modelo (Baseado na classe “minhaclasse” criamos):
Código:
LOCAL obj as Object
*!* Instancia um objeto da classe "minhaclasse"
m.obj = NEWOBJECT("minhaclasse", "caminhoDoArquivo\nomeArquivo.prg")
*!* Chama a função disponível na classe criada
m.obj.minhafuncao()
m.obj = NULL

Obs.:No exemplo de como utilizar as funções contidas na classe, temos a descrição "caminhoDoArquivo".
O ideal é utilizar o caminho relativo à pasta default de sua aplicação.
Ou seja, digamos que sua aplicação tem como diretório default o caminho "C:\aplicacao\" e você armazena seus códigos em "C:\aplicacao\prgs", na hora de instanciar um objeto de sua classe, o modelo de código a ser utilizado seria:
Código:
LOCAL obj as Object
*!* Instancia um objeto da classe "minhaclasse"
m.obj = NEWOBJECT("minhaclasse", "prgs\nomeArquivo.prg")
*!* Chama a função disponível na classe criada
m.obj.minhafuncao()
m.obj = NULL

Espero ter ajudado!
Qualquer dúvida é só postar!
Very Happy


Última edição por Marcos Guedes em 27/11/2009, 12:22, editado 1 vez(es)

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Tutorial Re: Trabalhando com classes (.prg) no VFP 9.0

Mensagem por Marcos Guedes em 6/11/2009, 13:17

Propriedades de uma classe:

Algo que é de grande importância numa classe é a criação de propriedades.
Tomaremos, como exemplo, a seguinte classe:
Código:
DEFINE CLASS propriedades AS CUSTOM

   HIDDEN propriedadeinvisivel AS STRING
   propriedadevisivel = "Propriedade Visível"

   FUNCTION lerinvisivel AS String
      RETURN THIS.propriedadeinvisivel
   ENDFUNC

   PROCEDURE alterarinvisivel AS void
      LPARAMETERS novovalor AS STRING
      THIS.propriedadeinvisivel = m.novovalor
   ENDPROC

   HIDDEN PROCEDURE INIT AS void
      THIS.propriedadeinvisivel = "Propriedade Invisível"
   ENDPROC

ENDDEFINE

Ao executarmos o seguinte código, certamente obteremos um erro:
Código:
LOCAL objClasse as Object
m.objClasse = NEWOBJECT("propriedades")
?m.objClasse.propriedadeinvisivel

Isto ocorre por que a variável foi declarada como "HIDDEN", podendo ser utilizada apenas dentro da própria classe, e não por objetos instanciados.

O mesmo ocorre se tentarmos alterar o seu valor, conforme o exemplo a seguir:
Código:
LOCAL objClasse as Object
m.objClasse = NEWOBJECT("propriedades")
m.objClasse.propriedadeinvisivel = "Novo valor"

Por conta disto, foi necessário a criação de duas funções em nossa classe, para que possamos ler e alterar o valor da propriedade "propriedadeinvisivel". São elas: "lerinvisivel()" e "alterarinvisivel()".

Logo se torna possível ler o conteúdo de nossa variável "protegida", da seguinte forma:
Código:
CLEAR

LOCAL objclasse AS OBJECT
m.objclasse = NEWOBJECT("propriedades")
?m.objclasse.lerinvisivel()

E para alterar seu valor, poderemos fazer o seguinte:
Código:
LOCAL objclasse AS OBJECT
m.objclasse = NEWOBJECT("propriedades")
m.objclasse.alterarinvisivel("Novo valor de minha variável")

No caso da propriedade "propriedadevisivel", não há tantas restrições.

Para ler sua propriedade, é necessário fazermos o seguinte:
Código:
LOCAL objclasse AS OBJECT
m.objclasse = NEWOBJECT("propriedades")
?m.objclasse.propriedadevisivel

E para alterar seu valor:
Código:
LOCAL objclasse AS OBJECT
m.objclasse = NEWOBJECT("propriedades")
m.objclasse.propriedadevisivel = "Novo valor para a variável"

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum