Página 1 de 1

TBrowse do clipper: algoritmo

Enviado: 05 Set 2009 19:33
por Iwasa
Caros colegas clippeiros,

Estou estudando o TBROWSE do clipper, por ser orientado a objeto, não estou conseguindo entender a estrtura de montagem. Procurei pela web, mas não encontrei nada que me fizesse entender sua estrutra de montagem...
Se por ventura, algum colega, puder me orientar como é a estrutura de montagem do TBROWSE ficaria muito agradecido.
Do inicio até que compreendi a montagem:
1. Declara-se as variáveis locais para objetos e variáveis de controle.
2. Cria-se o objeto Tbrowsedb em uma variavel local.
3. Declara-se as colunas na variavel objeto com TBColumnew
4. Adiciona-se as colunas declaradas ao objeto TBrowse
...

Até este passo eu consegui compreender... logo após estes passos não consegui compreender muita coisa...
Desde já agradeço aos colegas.
Abraços

Re: TBrowse do clipper: algoritmo

Enviado: 06 Set 2009 12:23
por Dr.Microso
Colega Iwasa, salve!

Se compreendi bem sua necessidade, acho que o link a seguir pode oferecer uma descrição de forma bem didática... Pelo menos para iniciar-se sem maiores sustos... Reconheço que há assuntos que são abordados de forma mais mítica do que técnica, onde a própria explicação acaba por nos afastar mais da compreensão...

http://iklosowski.no-ip.info/tbrowse.html

Realmente, do ponto de vista de um novato, a curva de aprendizado necessária para tornar-se efetivamente produtivo com Tbrowse é um pouco íngreme... A implementação proposta por OBJETOS é usada por muitos, mas compreendida por poucos!
O bakana é que uma vez dominado (vale estudá-lo), compreendemos como é indispensável sua funcionalidade e como proporciona elegância e simplicidade de design, e por isso é um recurso que muitos profissionais tentam implementar em outras linguagens que não o possui nativamente.
Veja que barato é possível fazer, via demonstração de alguns exemplos encontrados na sessão de download deste FÓRUM...

https://pctoledo.org/download/visualiza.zip (por Toledo)
https://pctoledo.org/download/brwcor.zip (por Toledo)
https://pctoledo.org/download/brwm.zip (por Marco Aurélio Martins)
https://pctoledo.org/download/tela.zip (por Luis Fernando Beniti)

Vale lembrar que o Clipper possui exemplos práticos do uso deste recurso em sua pasta de instalação.

Um abraço!

Re: TBrowse do clipper: algoritmo

Enviado: 06 Set 2009 13:22
por Maligno
Uma ligeira correção: o TBrowse não é orientado a objetos. Aliás, nada do Clipper passa nem perto do paradigma de orientação a objetos. O que muitos chamam de objetos, na verdade são estruturas de dados simples, ou pseudo-objetos. OOP, no rigor da palavra, é inumeras vezes mais complexo do que se vê em qualquer pseudo-objeto do Clipper, seja Browse, Get, etc. Ao que me consta, e conforme comentários lidos, nem o XHarbour tem OOP totalmente implementado.

Re: TBrowse do clipper: algoritmo

Enviado: 06 Set 2009 18:11
por Iwasa
Dr. Microso, muito obrigado pelas dicas, foram de grande valia, pois conheci mais sintaxes novas... Estou aprendendo e adaptando meus codigos no TBROWSE, não conheço o bem o TBROWSE, estou testando e aprendendo suas funções.
Pois estou vendo que simplifica muito os codigos e diminui bem os menus no sistema.
E como sempre o nosso colega Maligno nos ensinando dicas e técnicas importantes como sempre.
Agradeço a todos por terem respondido ao tópico e pelas dicas importantes.
Muito obrigado :{

Re: TBrowse do clipper: algoritmo

Enviado: 07 Set 2009 15:46
por billy1943
Depois que os amigos manifestaram-se acima, permitam-me expor o seguinte:
- Trabalho há muitos anos com o Clipper (desde o Summer 87) e quando apareceu o Clipper 5.01, foram acrescentadas AS CLASSES DE OBJETOS DO CLIPPER, segundo W. EDWARD TILEY e comecei a dar uns tratos ao meus sistemas procurando incluir o que vi de útil nessas classes.

Assim, passei a utilizar:
1. Classe Error ( muito interessante porque acusa com mais detalhes os erros de execução do Clipper
2. Objetos Get que colocou mais luz nos comandos @ ...SAY ......GET e READ, permitindo colocar GET´s dentro de GET´s, introduzindo os conceitos de pilha, Getlist, etc.

3. Sistema TBROWSE - aí é que mora o "danger", como se diz comumente. Eu não costumo usar o comando BROWSE de jeito nenhum, poucas vezes uso também o DBEDIT ou seja faço muitas telas de manutenção de arquivos usando os recursos das funções: INITVARS(), CLRVARS(), EQUVARS(), REPLVARS() e FREEVARS().

Pois bem, andei analisando vários exemplos de rotinas envolvendo o TBROWSE, e francamente, nada vi que pudesse aumentar a segurança das minhas rotinas de entradas de dados do jeito que eu já faço, principalmente com a classe de Objetos Get, aliado à rotinas de críticas de dados à medida que são inseridos.

O que é que eu ainda não captei que o TBROWSE possa acrescentar ?

Re: TBrowse do clipper: algoritmo

Enviado: 08 Set 2009 10:31
por Eliane
Meu amigo, quebrei minha cabeça para aprender a usar o TBROWSE. Mas aprendi. Nosso amigo Pablo Cesar me ajudou muitíssimo. Mando alguns exemplos completos:

tbwcli.prg -> usa tbrowse com arquivo de clientes (tbrowsedb)
tbwtab.prg -> usa tbrowse com tabela

Pode-se melhorar o código com certeza, mas funciona. Qualquer dúvida, é só falar.

Re: TBrowse do clipper: algoritmo

Enviado: 08 Set 2009 16:32
por Dr.Microso
Caro Billy, salve!

Creio que a utilidade de um recurso firma-se proporcionalmente à real necessidade de seus aportes.

Busca-se no TBrowse conveniência, flexibilidade, robustez e portabilidade, contudo, assim poder ser... Ou não.
Minhas sugestões partem da percepção do "nível" que o colega pode estar dentro da linguagem ou do problema, e procuro adaptar-se a isto tentando contextualizar-se o máximo possível para conseguir ajudá-lo. Na verdade, como gostaria... Se eu fosse "a bola da vez".
Dr.Microso escreveu:Se compreendi bem sua necessidade, acho que o link a seguir pode oferecer uma descrição de forma bem didática...
Há vários formas (estrutura/code) para tornar solúvel um determinado problema, mas o que pode ser conveniente para alguns, pode ser meramente supérfluo ou danoso para outros.
billy 1943 escreveu:Eu não costumo usar o comando BROWSE de jeito nenhum, poucas vezes uso também o DBEDIT ou seja faço muitas telas de manutenção de arquivos usando os recursos das funções: INITVARS(), CLRVARS(), EQUVARS(), REPLVARS() e FREEVARS()...
Por desconhecer estas funções (fiquei muito interessado até...), e o "engenho" de seu uso, não posso lhe dizer ao certo em que ponto o TBrowse poderia agregar "algo +" ao seu code....

Devido sua flexibilidade, o TBrowse possui emprego diverso, eu utilizo principalmente para sofisticar MENUS e como um veículo poderoso para a navegação e filtragem de dados... Há muitas vantagens:

- Atualizar, editar e eliminar dados;
- Apresentar multi-linhas;
- Realçar via cores diferentes colunas, linhas (usar vermelho para indicar números negativos por exemplo ou produtos especiais).
- Trabalhar com matrizes multi-dimensionais;
- Apresentar dados de fontes diversas;
- Mesclar relacionamentos de banco de dados;
- Criar navegação multi-usuário, etc.

Sua experiência com o code é seu patrimônio, e a "engenhação aplicada" seu limite.
Esta é uma das razões que tenho por hobby estudar o code alheio. Acabo sempre dando boas risadas ou começo imediatamente a rever e adaptar conceitos.

Um abraço!