Esse artigo faz parte da revista Clube Delphi edição 9. Clique aqui para ler todos os artigos desta edição



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.


Coluna dos Leitores

 

Oi Pessoal.

 

Abaixo tem a relacao dos arquivos em DLL para calculo de todas as inscricoes estaduais de todos os estados do Brasil e um exemplo em Delphi. Tem DLL para 16 e 32 bits.

Qualquer duvida, email-me.

Os arquivos sao muito grandes.

A DLL 16 bits tem 240 KB

A DLL 32 bits tem 370 KB

 

O Exemplo em Delphi de como chamar as DLL tem 9KB

Nas DLL estao os calculos de todos os estados.

 

Pegue voce mesmo no seguinte endereco:

ftp://ftp.sefaz.pe.gov.br/pub/sintegra/dllinsc16.zip

ftp://ftp.sefaz.pe.gov.br/pub/sintegra/dllinsc32.zip

ftp://ftp.sefaz.pe.gov.br/pub/sintegra/fontesD32.zip

Caso tenha algum problema, email-me

 

Geazi

 

 

Ola!

Eu fique interessado no componente tgifimage tentei
baixar na pagina indicada ,e não consegui.

Alguem pode me explicar o que pode ser ?

Fico no aguardo ,
Atenciosamente ,

Maik Ryuge Mochizuki
ryuge@yahoo.com

Prezado Maik,

 

O componente pode ser baixado no endereco www.clubedelphi.com.br/componentes/gifimage.zip

 

[]’s

Clube Delphi

 

--

 

 

Caros amigos de Clube de Delphi,

Gostaria de obter a ajuda de vocês com relação a algumas dúvidas.

01) Gostaria de saber como posso fazer para verificar se existem registros na tabela antes de efetuar uma exclusão. (Gostaria de fazer isto no código do datamodule);

02) Em uma tabela coloquei um campo memo. gostaria de saber como posso fazer para acessar as suas linhas. (obs: estou usando query para acessar a tabela).

 

 

Olá Vicente,

1) Basta questionar a propriedade RecordCount. Ex.:

if datamodule1.Table1.RecordCount>0 then

Datamodule1.Table1.Delete

Else

ShowMessage('Não é possível excluir');

 

2) var

x:String;

begin

x:=Memo1.Lines[0]; captura a primeira linha

Showmessage(x);

x:=Memo1.lines[Memo1.lines.count-1]; // captura a ultima linha

End;

Abraços,

Clube Delphi

 

 

 

Olá vocês,
Será que teriam um roteiro simples e seguro para que eu pudesse instalar um
aplicativo simples [ em Delphi 5 ] noutra máquina utilizando esta
ferramenta?
As tabelas são em Paradox.

Desde já obrigado
Renato

Caro Renato,

 

Em nosso, existe um simples roteiro de uso do InstallShield. Voce pode realizar o download em www.clubedelphi.com.br/XXX

 

[]’s

Clube DElphi

 

 

Como faço para somar os valores, de uma query em modo cachedupdate = true, em outras linguagens eu usava Sum(Query.valor) mas no delphi como devo fazer?

 

Heberval,

 

Olá Heberval,

No caso, vc então deverão criar uma rotina manual para realizar este trabalho. Infelizmente, o delphi nào possui algo como Sum(Query.Valor). Segue abaixo um exemplo de rotina para somatório local:

function Soma(q:Tquery; campo:String):Double;

var

s:Double;

begin

s:=0;

q.DisableControls;

q.First;

while not q.Eof do begin

s:=s+q.FieldbyName(Campo).asFloat;

q.Next;

End;

q.EnabledControls;

result:=s;

End;

Repare que o método DisableControls é utilizado. Este método evita que os controles na tela sejam atualizados juntamente com a query, evitando aquele efeito feio e lento dos dados passando na tela. Para voltar ao normal, basta utilizar o método EnabledControls.

Abraços,

Equipe de Suporte

 

 

Caro(s) editor(es),

 

Primeiramente gostaria de parabenizá-los pelo excelente material disponibilizado no Jornal do Delphi (ainda não conhecia o mesmo).  Fiquei impressionado com a qualidade do produto.

 

Na oportunidade, fiquei feliz ao saber que vocês possuem uma sessão que trata de outras linguagens de programação, mostrando abrangência do jornal e sua imparcialidade na análise.

 

Fiquei mais feliz ainda na matéria sobre o "VISUAL FOXPRO", na sessão "Outras Linguagens".

 

Gostei da matéria de um modo geral, apesar de não concordar em alguns pontos, os quais gostaria de comentar, para que numa próxima oportunidade possam ser melhor analisados, ok?

 

- O Visual FoxPro é uma excelente ferramenta para aplicações comerciais gerenciadoras de bancos de dados, tanto no desktop, como front-end para aplicações cliente-servidor usando qualquer banco de dados via ODBC, OLE-DB, ADO, etc.   Isto a Microsoft sabe, mas não divulga, pois o seu carro chefe, o Visual Basic, não chega nem perto do poder do Visual FoxPro em termos de bancos de dados.  Pra resumir a questão, o Visual Basic nem gerenciador de bancos de dados é...  Enquanto o Visual FoxPro tem o banco de dados nativo mais rápido do mercado!!!!

 

- Realmente o Visual FoxPro esteve esquecido, jogado de lado, pela própria Microsoft, por medo de concorrer com um outro produto Microsoft, o Visual Basic.   Mas isto, sabemos nós, só acontece no Brasil... Nos Estados Unidos, por exemplo, o Visual FoxPro tem muita força!!!

 

- Os conceitos de OOP do Visual FoxPro é bem superior aos do Visual Basic, como afirmam vocês, como nós (usuários do VFP sabemos) e até a Microsoft admite isto :-)

 

- O Gerenciador de Projetos do Visual FoxPro é fantástico e bastante produtivo.

 

- Em termos de RAD, o Visual FoxPro está anos-luz na frente do Visual Basic.

 

- Um recurso excepcional do Visual FoxPro, não comentado, é o AMBIENTE DE DADOS.  Trata-se de um objeto, inerente aos formulários, em que adicionamos tabelas dos bancos de dados do projeto e, automaticamente, o Visual FoxPro gerencia estas tabelas para o formulário em questão, herdando do banco de dados todas as definições, tais como índices, relacionamentos, etc.  O próprio Visual FoxPro abre as tabelas quando o formulário é apresentado, fechando-as no final do mesmo.   Usa-se de técnicas de "buferização de dados", permitindo-se, facilmente, desfazer alterações no registro, em campos específicos ou em toda tabela, antes da confirmação final do usuário em gravar os dados.  É algo sem similar em outros produtos!!!

 

Agora, discordo da matéria publicada por vocês nos seguintes aspectos:

 

1) "A ferramenta peca pela pouca variedade de componentes e pelas limitações de interface do FoxPro".

 

A limitação de componentes não é uma característica do produto, pois componentes podem existir ou não em maior quantidade para uma ferramenta, dependendo da produção de terceiros.  O Visual FoxPro trabalha bem com a maioria dos controles Active-X do mercado, sem problemas... Inclusive vários componentes para Delphi, Visual Basic, etc. podem ser usados no Visual FoxPro.

 

Não entendi as "limitações da interface do FoxPro", pois para quem trabalha com a ferramenta, temos tudo ao alcance da mão e não tenho conhecimento de reclamações de usuários quanto a este aspecto.

 

2) "A total compatibilidade com o Xbase atrapalha um pouco, pois ainda deve-se respeitar técnicas de programação muito antigas"

 

Vou discordar neste ponto.  A total compatibilidade com o Xbase não atrapalha em nada, na verdade até ajuda na migração de usuários que vêm de outras plataformas, como o dBase e o Clipper.  Muitos usuários sofrem, e até desistem, ao migar para Visual Basic ou mesmo para o Delphi por total falta de compatibilidade com o padrão utilizado por eles até então.

 

Além do mais, no Visual FoxPro, existem várias formas de se programar.  O padrão Xbase é apenas uma delas, utilizado somente por programadores iniciantes no mundo FoxPro, vindos geralmente do Clipper.

 

A partir da sua versão 3, o Visual FoxPro está "livre" de ser somente um "padrão Xbase", pois é uma ferramenta orientada a objetos e com linguagem SQL incorporada de forma nativa em linha de comando (nada de strings com instruções SQL para avaliação posterior).

 

Eu mesmo desenvolvo minhas aplicações sem nenhum padrão com o Xbase, pois utilizo-me apenas de classes de objetos e linguagem SQL..   Um programador Clipper que veja o código de um programa assim ficaria espantado, pois para ele isto não tem nada de Xbase.

 

A programação multi-usuário virou brincadeira!!!!   Podemos construir sistemas complexos sem sequer emitir um dos velhos comandos/funções RLOCK() ou FLOCK(), para bloquear manualmente um registro ou tabela. 

 

Com o uso de "buferização" e com o conceito de transações de dados do Visual FoxPro, o próprio banco de dados bloqueará o registro ou grupo de registros quando, efetivamente, a atualização for efetuada, guardando requisições múltiplas numa fila de espera, controlada pela transação.  Se algo der errado, com um simples comando (ROLLBACK) temos nossas tabelas dos bancos de dados restauradas a sua condição original anterior, sem dificuldade nenhuma!!!!

 

Por isto, dizer hoje em dia, que o Visual FoxPro é uma ferramenta padrão Xbase somente (como se isto fosse algo de muito ruim) é algo dizer que o Delphi é somente o velho Pascal, sem suas novidades e recursos avançados, e que o Visual Basic é o velho QBasic!

 

3) "...ao trabalharmos com mais de uma tabela, devemos sempre selecionar o comando USE para alternar a área de trabalho".

 

Aí tem algumas falhas...  para selecionar áreas de trabalho não se usa o comando USE (este é usado apenas para abrir ou fechar uma tabela), mas sim o comando SELECT (que não é o SELECT do SQL).

 

Mas, como já citei acima, podemos escrever aplicações complexas sem usar os comandos Xbase, portanto não é obrigatório o uso do comando USE para abrir uma tabela, nem também é obrigatório usar áreas de trabalhos para abrir várias tabelas e selecioná-las com o comando SELECT.

 

 

Então, o Visual FoxPro hoje não é "apenas" uma ferramenta padrão Xbase... é bem mais do que isto.  Além do mais, como citei acima, o fato de ser compatível com o padrão Xbase não é uma falha para nós, mas sim uma vantagem em relação a outros produtos no caso de migração de usuários provindos do Clipper, dBase, etc...  Para migrar é fácil demais, depois pode-se usar a técnica e linguagem que melhor se adequar.  São opções que temos, e isto é uma vantagem a nosso favor!

 

4) "... vale a pena dar uma conferida na Raposa, que está atualmente na Versão 6.0, traduzida para o português..."

 

Infelizmente o Visual FoxPro 6.0 não está disponível em português (pelo menos esta é a informação da Microsoft Brasil).  Somente a versão 5.0 é que saiu em português.

 

5) "...visite o site (http://www.microsoft.com/brasil/vfoxpro) para maiores informações."

 

Quanto a este item, gostaria apenas de informar que no Brasil, temos um Grupo de Usuários FoxPro, sendo o maior de toda América Latina, gratuito, com fóruns de discussão, lista de mensagens, FAQ, dicas, artigos, técnicas de programação, eventos (cursos, seminários, etc...)... Tudo de forma gratuita e aberta para os adeptos do Visual FoxPro.  Nele, estão os maiores feras em FoxPro do Brasil, com participação de membros dos Estados Unidos, Argentina, Portugal, etc...  Escritores, como Ricardo Peralva e Cláudio Cuoco também são membros do Grupo FoxBrasil.

 

O endereço é: http://www.foxbrasil.com.br , o que agradecemos, numa futura discussão sobre o tema, fazer o favor de divulgá-lo.

 

 

No mais, é agradecer a iniciativa do Jornal do Delphi pela publicação da matéria e aguardar novos assuntos a respeito :-)

 

Nós, do Grupo FoxBrasil, estaremos à disposição para quaisquer informações a respeito do mundo FoxPro.

 

Um abraço a todos vocês, que estão de parabéns!!!!

 

 

Carlos Moisés  (cm@nextway.com.br)

Desenvolvedor Visual FoxPro

Membro do Grupo FoxBrasil

Home-page: http://www.foxbrasil.com.br