Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
24 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 23 Visitantes :: 2 Motores de busca

memarques

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Brasília
Estamos no Twitter
Nossa Comunidade
Nosso Grupo
Últimos assuntos
Minimizar , Maximizar e Restaurar

17/5/2012, 13:46 por FERNANDOMATRELLA

Olá gostaria de saber se alguem ja se deparou com uma dificuldade que eu estou tendo:
Ao minimizar …

Comentários: 8

Fundo do PROJETO Transparente??

7/5/2012, 20:31 por thiag0ms

Ola, por favor alguem como faz pra deixar o fundo do PROJETO transparente ?? acredito que o …

Comentários: 7

Scroll EditBox Automatico

11/5/2012, 09:55 por renatojunior2009

Bom dia Galera,

Como fazer para que um editbox ao receber mensagens o scroll vai subindo …

Comentários: 2

Erro no Projeto Chat

2/5/2012, 08:37 por renatojunior2009

Bom dia Pessoal,

Estou desenvolvendo um chat , só que estou com dois erros o qual eu não sei …

Comentários: 4

Select Nexval do FoxPro no OracleXE

8/5/2012, 20:05 por anakeila

Olá pessoal, vejam se pode me ajudar, estou no meio do TCC e um pouco preocupada, sem conhecer …

Comentários: 5

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

Os nossos membros postaram um total de 14399 mensagens em 2043 assuntos

Aprendendo VisualFoxPro 5 4.8 16

Aprendendo VisualFoxPro

Página 1 de 2 1, 2  Seguinte

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

Tutorial Aprendendo VisualFoxPro

Mensagem por hvonk em 18/7/2010, 20:35

Ola galera, estava futucando alguns livros que tenho de FoxPro então pensei porque não compartilha-los como todos da comunidade ja que aqui sempre uns estão ajudando os outros e formamos praticamente uma familia. Então pensei digitaliza-los seria algo demorado uma vez que os livros possuem varias paginas, logo tive a ideia de tornar as coisas mais interativas onde todos pudessem ter o conteudo do livro e estar aprendendo também. Então o que pretendo fazer é digitar o livro inteiro por capitulos e procurarmos juntos entender o seu conteudo, em seguida passamos para o proximo capitulo, como meus dias são corridos, não posso garantir que todos os dias vou estar escrevendo, mas a ideia é essa. Bem espero que todos gostem da ideia, provavelmente este livro niguem mas vai encona-lo para venda, pois é muito antigo, acredito então que vamos nos divertir e aprender bastante nesta jornada. O nome do Livro é Aprendendo Visual Fox Pro. Vou colocar aqui o primeiro capítulo e gostaria que todos participassem tirando dúvidas. Sempre que houver exercícios colocarei a resposta, cabe a pessoa ser honesta consigo mesmo e tentar resolver sem ver a resposta, e uns tirar as duvidas dos outros sempre que surgirem, eu mesmo vou ter muitas no decorrer do livro.

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 18/7/2010, 20:36

Capítulo 1

Criando Classe


Na programação tradicional, criamos programas que executam determinadas tarefas quando são rodados. Na OPP, temos dois tipos principais de programas. O primeiro apenas carrega na memória uma coisa chamada classe. Vamos ver o que é isso logo logo. O segundo tipo é que executa mesmo o que queremos, como os programas de antigamente.
Uma classe é um conjunto de definições de variáveis e de pequenos programas. As variáveis dentro das classes são chamadas propriedades e os pequenos programas são chamados de métodos. Vamos fazer logo um exercício para isso não ficar muito esotérico e você não ir logo desanimando.
Para escrever um programa, primeiro, é claro, entre no FoxPro clicando sobre o seu ícone. Aparece então a tela principal do produto.
Selecionando File e logo em seguida new vai aparecer o quadro onde se deve selecionar program e clicar em New File.
Surge então uma janela onde vamos escrever o programa que criará, quando executado, uma classe na memória do computador.
Uma classe tem sempre um nome. Para padronizar vamos, neste início, preceder o nome de uma classe sempre com a letra c. Também vamos chamar o programa que cria uma classe pelo mesmo nome dela.
Todo programa no FoxPro é um arquivo com a extensão PRG. Assim se uma classe for se chamar cTal, o programa onde ela é definida chamará ctal.prg. Isso não é obrigatório.
A primeira linha de código de um programa que define uma classe básica é assim:

Código:
DEFINE CLASS nome-da-classe AS CUSTOM


Após essa linha vamos definir as propiedades.

No FoxPro, diferente de algumas outras linguagens, o tipo de uma variável ou propiedade (CHARACTER, NUMERIC E ETC.) é definido automaticamente quando se assinala um valor inicial para a variável. Então poderíamos criar propiedades só com umas linhas de código assim:

Código:
nome  =  ‘Carlos Amarante’
anovalidade = 1997
cadastradomatriz = .T.


Os pequenos programas de uma classe, chamados métodos, podem ser definidos de duas formas: Como PROCEDURES ou como FUNCTIONS. Por isso as vezes as pessoas se referem aos métodos como procedures ou funções, fazendo uma tremenda confusão. Na realidade, as FUNCTIONS sempre retornam valores e as procedures podem ou não retorna-los. Vamos procurar usar sempre métodos como procedures. A definição delas é feita assim:

Código:
PROCEDURE nome-da-procedure
   linha-de código
   linha de código
   ...
ENDPROC


Numa classe, podemos ter vários métodos definidos. Importante voltar a lembrar que, quando o programa que cria a classe é rodado, esse métodos não são executados. Eles são apenas carregados na memória do computador. Vamos ver daqui a pouco como fazemos para executar um método desses.
Para ecerrar um programa que define uma classe colocamos a linha de código:

Código:
ENDDEFINE


Como exercício, vamos criar uma classe bem simples que tem apenas uma propriedade e um método. A propriedade vai se chamar Mensagem e vai ser um string de caracteres com o texto: HELLO WORLD! O método / procedure quando executado, vai projetar na tela principal do FoxPro o texto: OI, TODO MUNDO!
Existe no FoxPro, um comando ou símbolo que, se colocado numa linha de código, faz com que o que lhe segue seja escrito na tela. É o sinal de interrogação. Então, se num programa temos uma linha de código assim:

Código:
? ‘TESTE’


Quando essa linha for executada mesmo(não apenas carregada na memória como parte de uma classe), aparecera a palavra na tela.
Vamos então escrever um programa que define uma classe chamada cHello. Depois de escrito este programa, najanela que aparece como explicamos acima, temos que salva-lo. Para isso crie primeiro uma pasta/diretório com o nome TESTESFP onde vamos arquivar todos os exercícios desse livro. Para salvar o programa selecione File em seguida save as e salve-o com o nome chello.prg

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 18/7/2010, 20:49

RESPOSTA DO PRIMEIRO EXERCICIO

Código:
DEFINE CLASS cHello AS CUSTOM

mensagem = ‘HELLO WORLD!’

PROCEDURE mostra
?’OI, TODO MUNDO!’
ENDPROC

ENDDEFINE

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 18/7/2010, 21:08

1.2 Criando Objetos

Escrito e salvo o programa que define nossa classe, vamos usá-la. Podemos usar propriedades de uma classe ou métodos de uma classe apenas depois de rodar o programa onde ela esta definida. As primeiras linhas de código de um programa de execução (vamos chamá-los assim para diferenciá-los dos programas que criam classe) rodam os programas que criam as classes na memória. Essas linhas de código são assim:

Código:
SET PROCEDURE TO path-do-arquivo-da classe ADDITIVE


Por exemplo:

Código:
SET PROCEDURE TO C:\testesfp\chello ADDITIVE


Mas para usar uma propriedade ou método da classe temos ainda que criar uma coisa chamada objeto desta classe. Esse objeto será então usado como prefixo nas propriedades ou métodos usados. Vamos ver como, logo.
Para criar um objeto de uma classe usamos a linha de código:

Nome-do-objeto = createobject (‘nome-da-classe’)

Pode ser dado qualquer nome para um objeto mas para padronizar, nos primeiros exercícios, iniciamos o nome com a letra o, colocamos então algumas poucas letras significativas do nome da classe.

Criando um objeto duma classe, seus elementos (propiedades ou métodos) podem ser usados. É mais fácil ver como se faz isso abaixo. Para criar esse programa siga as instruções dadas acima (File e depois New etc) Salve o programa como mex1.prg (m de main e ex1 de exercicio1)

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 18/7/2010, 21:09

RESPOSTA DO EXERCICIO

Código:
SET PROCEDURE TO c:\testesfp\chello ADDITIVE

oh1 = CREATEOBJECT(“cHello”)
oh1.mostra

? oh1.mensagem


Última edição por hvonk em 18/7/2010, 21:25, editado 1 vez(es)

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 18/7/2010, 21:19

Existem varias maneiras de se executar um programa no FoxPro. A mais simples, se a janela do progama está em foco na tela é clicar o botão da Barra de Ferramnta que tem um ponto de exclamação. Pode-se também selecionar Program I Do e escolher o aquivo do programa na janela que aparece.
Rodando o nosso programa veremos o nosso resultado.

OI, TODO MUNDO!
HELLO WORLD!


Vemos que a procedure mostra foi executada, fazendo aparecer o primeiro texto. Depois o programa projeta diretamente o conteúdo da propriedade mensagem.
Repare como o obejeto(ou nome do objeto) é usado como um prefixo.

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 18/7/2010, 21:21

BOM COM ISSO ESTAMOS ENCERRANDO O PRIMEIRO CAPÍTULO DE NOSSO LIVRO, AGORA É O MOMENTO DAS DUVIDAS SURGIREM. BREVE POSTO O CAPITULO 2, APROVEITEM PARA NÃO DEIXAR ACUMULAR DUVIDAS PARA O PROXIMO CAPITULO.

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 18/7/2010, 21:56

ENTENDENDO:

1.Primeiro criamos a classe a qual demos o nome de chello
2.Depois criamos a propriedade da classe
3.Depois definimos o método
4. Encerramos o método
5.E por ultimo encerramos o programa que define a classe

1 DEFINE CLASS cHello AS CUSTOM
2 mensagem = ‘HELLO WORLD!’ (Declaração de Variavel)
3 PROCEDURE mostra
?’OI, TODO MUNDO!’
4 ENDPROC
5 ENDDEFINE

DEPOIS CRIAMOS O OBJETO

SET PROCEDURE TO c:\testesfp\chello ADDITIVE (Adicionamos chello ao procedure)
oh1 = CREATEOBJECT(“cHello”) (Declaração de variavel)
oh1.mostra (oh1 foi declarado acima recebendo a criação de um objeto da classe chello, com isso esta exibindo o resultado de um procedure dentro de chello)
? oh1.mensagem (Leitura da variavel "mensagem" declarada dentro da classe chello)

OI, TODO MUNDO! (Resultado do oh1.mostra)
HELLO WORLD! (Resultado do oh1.mensagem)

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por Marcos Guedes em 18/7/2010, 23:05

Ótimo iniciativa, hvonk!
Very Happy

_________________
Marcos Guedes - Programador e desenvolvedor Web.

Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 19/7/2010, 06:40

Capítulo 2

Herança

Uma das características mais interessantes e mais usadas da Programação Orientada a Objeto é a herança.
Essa palavra significa a possibilidade de ser criar uma nova classe que herda as propriedades e métodos da classe ancestral. Vamos logo a um outro exercício.
Podemos criar uma classe chamada cAIo (por tradição, não usamos símbolos nacionais em linhas de código, mesmo quando isso é possível em algumas linguagens mais modernas) num programa calo.prg, como mostra abaixo:

Código:
DEFINE CLASS cAlo AS cHello

mensagem = ‘ALO MUNDO!’
outramensagem = ‘BOM DIA’

ENDDEFINE


Reparem como nos referenciamos a classe ancestral cHello.
Criamos uma propriedade com o mesmo nome de uma já existente. Quando isso acontece, dizemos que a propriedade da classe ancestral sofreu um override de substituição. Você vai ver o que acontece quando rodar o prgama mex2.prg abaixo:

Código:
SET PROCEDURE TO C:\testesfp\chello ADDITIVE
SET PROCEDURE TO C:\testesfp\calo ADDITIVE

oA1 = CREATEOBJECT ("Calo")
oHX = CREATEOBJECT ("cHello")
oA1.mostra

? oA1.mensagem
?oA1.outramensagem
?oHx.mensagem


Antes de analisar mais detalhadamente esse programa, vamos rodá-lo.
O resultado esta abaixo:

OI, TODO MUNDO!
ALÔ MUNDO!
BOM DIA!
HELLO WORLD!


O que fizemos foi criar um objeto oAl para classe cAlo.
Com ele chamamos o método mostra que é da classe cHello. Vemos então que a classe cAlo herdou esse método da classe pai.
Depois projetamos na tela a propriedade mensagem. O que é projetado é a mensagem de cAlo e não a de cHello que tem o mesmo nome. Houve um override de substituição.
Para projetarmos a propriedade de cHello, se isso for necessário, temos que criar um objeto da classe ancestral (oHx, no caso).
O fato de chamar uma propriedade ou método de mesmo nome usando objetos diferentes gerar resultados diferentes é chamado, as vezes, de polimorfismo. O termo, no entanto, tem outros significados variando de autor para autor.
Existe um outro tipo de override chamado de complementação em que se cria um método com o mesmo nome de uma classe ancestral e dentro desse novo método se executa o anterior, acrscentando mais algumas linhas de código. Vamos ver exemplo disso mais frente.
Para chamar um método duma classe ancestralpode-se usar o símbolo :: (duplo dois pontos) assim, por exemplo:

cHello::mostra

Isso só pode ser feito dentro de um método.
Repare que quando se usa uma classe herdeira, é preciso as um SET PROCEDURE em cima da ancestral, a não ser que essa classe ancestral seja uma das classes básicas da biblioteca do VFP. Vamos falar sobre essas classes básicas depois, também. Alias já usamos no primeiro exercício, a mais básica de todas as classes do VFP: CUSTOM.


Última edição por Marcos Guedes em 19/7/2010, 14:14, editado 1 vez(es) (Razão : Alterado a pedido do autor)

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por mfelis em 19/7/2010, 09:57

Bacana!Ajuda!

mfelis
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 19/7/2010, 13:33

Galera encontrei um pequeno errinho no livro, porem não estou conseguindo editar o post, vou mostrar aqui qual foi o erro e depois por favor Marcos edite o post.
Quando fui rodar o programa percebi que ele estava dando um erro direto na terceira linha. E percebi que o livro pediu para colocar um aspas, quando na verdade eram 2, na criação de objeto o aspas tem que ser duplo (").
SET PROCEDURE TO C:\testesfp\chello ADDITIVE
SET PROCEDURE TO C:\testesfp\calo ADDITIVE
oA1 = CREATEOBJECT (‘Calo’) (Aqui o certo é ("Calo"))
oHX = CREATEOBJECT (‘cHello’) (Aqui o certo é ("cHello"))
oA1.mostra
? oA1.mensagem
?oA1.outramensagem
?oHx.mensagem

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por Marcos Guedes em 19/7/2010, 14:14

hvonk escreveu:Galera encontrei um pequeno errinho no livro, porem não estou conseguindo editar o post, vou mostrar aqui qual foi o erro e depois por favor Marcos edite o post.
Quando fui rodar o programa percebi que ele estava dando um erro direto na terceira linha. E percebi que o livro pediu para colocar um aspas, quando na verdade eram 2, na criação de objeto o aspas tem que ser duplo (").
SET PROCEDURE TO C:\testesfp\chello ADDITIVE
SET PROCEDURE TO C:\testesfp\calo ADDITIVE
oA1 = CREATEOBJECT (‘Calo’) (Aqui o certo é ("Calo"))
oHX = CREATEOBJECT (‘cHello’) (Aqui o certo é ("cHello"))
oA1.mostra
? oA1.mensagem
?oA1.outramensagem
?oHx.mensagem
Corrigido, favor conferir.

_________________
Marcos Guedes - Programador e desenvolvedor Web.

Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 19/7/2010, 14:22

Ok, esta correto, breve coloco o capitulo 3 estou acabando de digitar.

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Tutorial Re: Aprendendo VisualFoxPro

Mensagem por hvonk em 19/7/2010, 15:39

Capítulo 3

Construtora e Destruidora


Quando se cria um objeto com a função CREATEOBJECT, uma série de coisas acontecem, conforme o tipo de classe que esta sendo instancializada (esse verbo instancializar significa criar uma classe ou uma instancia de uma classe). Uma das coisas que sempre acontece é que, se criarmos uma procedure chamada INIT dentro da classe, essa procedure será executada nessa hora.
A criação dessa procedure especial tem varias utilidades, sendo que uma delas é colocar valores iniciais em propriedades de um dado objeto. É claro que uma propriedade poderia ter um valor default definido na classe. Podemos então deixar esse valor ou alterá-lo quando for criado o objeto.
Vamos fazer um exercício e para isso vamos dar algumas informações sobre uma função básica do VFP muito usada chamada MESSAGEBOX.

3.1 Mostrando um MESSAGEBOX

Um MESSAGEBOX é um quadro, uma pequena janela ou um form (como se esta usando falar mais atualmente) que aparece na tela e onde podemos colocar uma mensagem. A sintaxe da função é:

Código:
r = MESSAGEBOX (‘mensagem’, tipo de ícone, ‘título’)


Para tipos de ícones temos os números:

16 Stop

32 Interrogação

48 Exclamação

64 Informação

A especificação do retorno é necessária por se tratar de uma função, mesmo que geralmente não se use o valor retornado.

hvonk
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

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