quarta-feira, 16 de dezembro de 2009

Melhorando o entendimento do seu código (Exit)

 

Fala pessoal,

Esses dias estava dando uma consultoria e encontrei um código cheio de exits no delphi algo que se utilizado sem critério torna a manutenção do código bem mais complicada e demorada.

vamos ver um exemplo disso:

function TForm1.PerguntaNome: string;
var
  nome, sobrenome : string;
begin
  Result := 'Preguiçoso';
  repeat
    if not InputQuery('Programa de teste', 'Nome :', nome) then
       Exit;
    if not InputQuery('Programa de teste', 'Sobrenome :', sobrenome) then
       Exit;
  until (nome <> '') or (sobrenome <> '');

  Result := nome + ' ' + sobrenome;
end;

Agora vejamos uma forma de se escrever sem a utilização de exit, como fica muito mais simples e claro de se entender.

function TForm1.PerguntaNome: string;
var
  nome, sobrenome : string;
begin
 
repeat
   if (not InputQuery('Programa de teste', 'Nome :', nome)) or
      (not InputQuery('Programa de teste', 'Sobrenome :', sobrenome)) then
     Result := 'Preguiçoso' else
     Result := nome + ' ' + sobrenome;
until Trim(Result) <> '';
end;

Note que o funcionamento de ambas as rotinas são idênticas porém escritas de forma diferente, da segunda forma notamos automaticamente que se a InputQuery de qualquer um dos valores (nome ou sobrenome) for cancelada o retorno de nossa função será ‘Preguiçoso’, do contrario, se em uma delas foi pressionado o botão ‘ok‘ então o retorno da nossa função será o nome + ‘ ‘ + sobrenome. Por ultimo no nosso repeat verificamos se o result contem algo diferente de ‘’ (vazio) caso seja positivo sai do laço e não pergunta mais para o usuário as informações.

O código deste exemplo esta disponível clicando aqui para download.

Reparem que este exemplo é pequeno mas imaginem uma rotina gigante que estamos acostumados ver no dia a dia o quanto o exit pode dificultar a visualização do que esta acontecendo e do que realmente deve acontecer.

Grande abraço,
Diego Garcia.

sábado, 31 de outubro de 2009

Dica para migrar para o delphi 2010

 

Fala pessoal,

Seguinte se você esta migrando uma aplicação por exemplo do delphi 2007 para o delphi 2010 então é muito importante que você verifique após migrar seu projeto, se em seu Project Options -> Delphi Compiler -> Unit aliases contém as seguintes definições:

 "WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE"

Caso não tenha, em alguns lugares do código do seu programa pode ser que o code completition do delphi não funcione !

Um Grande Abraço a todos e um ótimo feriado ;)

Diego Garcia.

quinta-feira, 29 de outubro de 2009

Preparem-se vem ai Delphi Conference

 

Para maiores informações clique aqui.

 

Grande abraço,

Diego Garcia

sexta-feira, 16 de outubro de 2009

ISSkin com a nova versão do Inno Setup

 

Fala pessoal,

Se você acabou de atualizar seu inno setup para a versão com suporte a Unicode e seu script de instalação utiliza o ISSkin, você notara que a skin não será carregada. Isso ocorre devido ao fato do inno setup agora utilizar strings no padrão WideString como o delphi 2009 e 2010, para resolver o problema basta declarar os métodos da dll IsSkin.dll da seguinte forma:

// Importing LoadSkin API from ISSkin.DLL
procedure LoadSkin(lpszPath: AnsiString; lpszIniFileName: AnsiString);
external 'LoadSkin@files:isskin.dll stdcall';

// Importing UnloadSkin API from ISSkin.DLL
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';

Execute seu script novamente e pronto seu instalador esta funcionando com a skin como anteriormente !

Grande abraço,

Diego Garcia

sexta-feira, 25 de setembro de 2009

Update 1 do RadStudio 2010 Disponível

 

Já esta disponível o Update 1 do RadStudio 2010 ;)

 

Grande abraço,
Diego Garcia

quarta-feira, 16 de setembro de 2009

Mad Except para Delphi 2010 Disponível !

 

Mad Except para delphi 2010 já esta disponível para download e compra no site www.madshi.net

Mad Except é fundamental para uma software house que utiliza delphi como ferramenta de desenvolvimento !

 

Grande abraço,

Diego Garcia.

segunda-feira, 14 de setembro de 2009

POG ou Não ?

 

Hoje pela manha estava tentando acessar minha conta bancaria pelo site do banco e após fazer quase todo o processo (digitar agencia, conta, senha da internet, etc)  na ultima etapa de inserir o código do iToken, peguei meu dispositivo iToken pressionei o botão, inseri o código informado pelo tal dispositivo no campo solicitado, cliquei em continuar e então veio a surpresa “O código do iToken informado é invalido”.

Mas como ? acessei minha conta ontem com o mesmo iToken e agora não é mais valido ?

Tentei novamente e mesma coisa.

Resolvi então ligar no atendimento do banco, falei com a atendente e ai ela me disse que iria fazer uma re-sincronização do meu iToken … na mesma hora veio na minha cabeça a imagem das letras garrafais P.O.G. em neon piscando intensamente … e ainda a lembrança de alguns sistemas de clientes antigos meus que tinham sempre uma rotina para reindexar o banco de dados ou recalcular diversos dados que por algum motivo que nem mesmo eles sabiam sumia.

Após a ressincronização meu iToken voltou a funcionar …

Qual sua opinião ?

 

Grande abraço,

Diego Garcia

segunda-feira, 7 de setembro de 2009

Mozy - Solução para Backup

 

Acabamos de adotar o Mozy aqui na empresa como solução de backup, um programinha muito eficiente e com o custo viavel para qualquer tipo de empresa !

Testem vocês também, vale a pena. clique aqui

Grande abraço,

Diego Garcia

Interessante – Visão do futuro pela Microsoft

 

Olhem que bacana o video da visão do futuro que a Microsoft tem !

 

 

Grande Abraço a todos

Diego Garcia

terça-feira, 1 de setembro de 2009

Não se esqueça Code Rage 4 vem ai !

 

Para quem não se inscreveu, aproveite a oportunidade de assistir diversas palestras on-line sobre o que há de melhor no mercado de desenvolvimento e aprenda como utilizar ;)

Veja o que terá no Code Rage 4 e inscreva-se:

http://conferences.embarcadero.com/coderage/sessions

Grande abraço,

Diego Garcia

segunda-feira, 31 de agosto de 2009

MadExcept para Delphi 2010 vem ai !

 

Hoje o Mathias Rauen desenvolvedor do famoso madExcept anunciou no fórum de sua pagina que até o fim desta semana será lançado a versão oficial que suporta o delphi 2010 :)

Recomendo a todos comprarem, afinal o seu custo é muito baixo e os benefícios são muitos.

Fiquem ligados !

Abraço,

Diego Garcia.

domingo, 30 de agosto de 2009

deAudio convertido para delphi 2009

Fala pessoal,

Semana passada estive trabalhando na conversão do componente de gravação de áudio chamado deAudio desenvolvido pelo Peter Morris, após algumas horas de atenção no componente, comparações nos arquivos binários (wav e riff) gerados pelo componente terminei a conversão.

Conversei com o Peter e ele me autorizou ser o novo dono da suíte de componentes deAudio !

Em breve postarei aqui o link para download da versão para Delphi 2009 e 2010 !

Grande Abraço,

Diego Garcia.

------

English:

Hello guys,

Last week I`ve been working at the conversion of the audio recording components called deAudio developed by Peter Morris, after some hours expended comparing binary files (riff and wav) generated with the component I finish it !

I`ve talked to Peter and he allows me to take the ownership of deAudio components.

In a few days I will post the link here to download the new version form Delphi 2009 and 2010 !

Regards,

Diego Garcia

sexta-feira, 28 de agosto de 2009

Lançado Delphi 2010

Finalmente Delphi 2010 esta pronto, agora podemos brincar com a nova versão !

Baixem de https://downloads.embarcadero.com/free/rad_studio

 

Grande abraço,

Diego Garcia.

sexta-feira, 21 de agosto de 2009

Pesquisa !

Fala pessoal,

Estou fazendo uma pesquisa de qual a notação a maior parte da comunidade delphi utiliza para nomear variáveis, componentes,  etc.

Aqui na empresa utilizamos notação húngara e ainda o padrão lower camel case para a escrita.

Qual é o seu ?

Poste aqui sua opinião ou então siga-me no twiter  e poste uma mensagem com sua opinião.

Grande abraço,

Diego Garcia.

quinta-feira, 20 de agosto de 2009

Mais novidades do delphi 2010 – DataSnap

Fala pessoal,

Mais um vídeo disponível do delphi 2010 mostrando agora o DataSnap melhorado ainda mais.

O novo datasnap traz suporte a autenticação via http e calback de métodos remotos para que um método posso executar uma ação na aplicação cliente e muito mais.

Confira no link http://etnaweb04.embarcadero.com/rad-studio-2010/

Grande abraço,

Diego Garcia

quarta-feira, 19 de agosto de 2009

Utilizando XML DataBinding

Fala pessoal,

fiz um screencast explicando como utilizar o XML DataBinding do Delphi para um amigo meu e resolvi postar ele aqui para vocês.

O XML DataBinding é um recurso simples do delphi mas que muita gente não utiliza. Após terminar a gravação, reparei que não expliquei algumas coisas básicas detalhadamente, como por exemplo:

Porque que o os método públicos gerados pelo delphi utilizam interfaces invés de utilizar diretamente a classe gerada por ele ?

A explicação é simples pra quem já esta acostumado a utilizar interfaces já sabe que o delphi utiliza um mecanismo chamado de contagem de referência para liberar a instancia da memoria, sendo assim como os métodos utilizam interfaces você não precisa remover nenhuma referência explicitamente.

Outra coisa é que na hora do vídeo eu disse que o delphi gera o xml em uma parte mas na verdade é a unit que mapeia o xml, sabe como é né a cabeça anda a mil e como eu queria fazer um resumo rápido acabou acontecendo estes errinhos.

Bom segue abaixo o link !

http://tinyurl.com/xmldatabinding

Qualquer outra duvida por favor poste aqui que assim que possível responderei com maior prazer.

Grande Abraço,

Diego Garcia.

sexta-feira, 14 de agosto de 2009

Delphi 2010 – Suporte touch e controle por gestos !

Fala pessoal !

Confiram no blog da embarcadeiro as primeiras imagens da vcl com suporte a touch (toque) e controle por gestos.

http://blogs.embarcadero.com/seppybloom/2009/08/11/37624

Grande abraço

Diego Garcia.

quinta-feira, 6 de agosto de 2009

Novo Driver do DBExpress para Firebird

Fala pessoal, uma ótima noticia é o anuncio do novo driver gratuito para firebird.

Confiram no endereço http://sites.google.com/site/dbxfirebird/

Grande abraço,

Diego Garcia.

segunda-feira, 16 de fevereiro de 2009

Pense antes de realmente programar ;)

Esses dias estive pensando em como as vezes os vicios de programação atinge a maior parte dos programadores (Pelo menos os das empresa que eu dou consultoria).

Uma delas é a utilização excessiva de condicionais desnecessariamente.

Um exemplo disso esta na solução do seguinte problema:

Cliente solicita um modulo do sistema onde deve ser separado uma determinada quantidade de peças de sua loja, em caixas de 40 pçs, caixas de 10 pçs e que ainda contabilize a qtd de peças restantes.

É muito comum quando estou dando consultoria em algum sistema me deparar com soluções com um monte de if’s para resolver este simples problema que podemos simplificar com apenas 3 linhas de código.

Veja abaixo:

qtdCaixasGrandes := qtdPecas div 40;
qtdCaixasPequenas := (qtdPecas mod 40) div 10;
qtdSemCaixas := qtdPecas mod 10;

Espero que isso faça com que vocês pensem um pouco mais antes de realmente escreverem um codigo ;)

Grande abraço,
Diego M. Garcia

terça-feira, 13 de janeiro de 2009

Msn 2009 Beta e Live Writer novo estão muito legais.

Hoje tive a oportunidade de testar o msn 2009 que possui alguns recursos de compartilhar arquivos com outras pessoas da sua lista bem interessante, junto com ele instalei o Live Writer, que me surpreendeu ao configurar meu blog sem precisar fazer nenhum procedimento a mais do que teoricamente o necessario para o programa funcionar, você pode ver que antigamente era necessario cadastrar o blog da forma descrita em um outro artigo meu que pode ser visto aqui.

Vale a pena ficar de olho nesses programas que a cada dia mais estão evoluindo para agilizar e melhorar nossa comunicação on-line. :)

Grande Abraço,
Diego Garcia