Tag Archives: Delphi

Delphi

Buscando comentários sobre drivers dbExpress do Delphi

Há anos venho utilizando drivers dbExpress de terceiros (DevArt) em meus aplicativos. O motivo é simples: sempre comprei Delphi Professional, que não traz drivers para Firebird e MSSQL.

No Delphi XE2 fiz upgrade de todas as licenças para Enterprise, e esta versão já traz os drivers. Então estou considerando migrar dos drivers da DevArt para eles, e ter um produto de terceiro a menos para me preocupar.

Gostaria de saber de quem usa esses drivers se estão satisfeitos. Só preciso acessar Firebird 2.5+ e SQL Server 2005+. Agradeço qualquer comentário.

Delphi

PDF do Fast Report compatível apenas com Windows

O Fast Report é com certeza um dos principais gerenciadores de relatório usado pelos desenvolvedores Delphi. É também o que eu uso em meus sistemas.

O formato PDF, que, pra quem não sabe, significa Portable Document Format, tem como seu principal objetivo ser um formato para troca de arquivos com “formatação rica”. Ou seja, quando você usa este formato, o objetivo é saber que seu documento vai manter a aparência visual não importa em qual aplicativo ou plataforma ele for aberto.

Infelizmente, para nossa surpresa, descobrimos que não é bem assim. Pelo menos não com os PDF gerados pelo Fast Report.

Alguns dias atrás um cliente entrou em contato nos reportando que um relatório gerado em PDF pelo nosso sistema não estava sendo visualizado corretamente no MacBook. Como eu mesmo tenho um MacBook, fui testar e confirmei o problema. Realmente os textos em negrito e as imagens do relatório simplesmente não apareciam no leitor nativo do Mac OS X.

Mais um pouco de testes e percebi que o problema não era exclusivo do Mac OS, mas também acontecia no iOS (iPad/iPhone/iPod) e no Android. Ou seja, só funcionava corretamente mesmo no Windows.

Apesar do Windows ser ainda a plataforma dominante, a cada dia temos mais usuários nas outras plataformas. Principalmente iOS com com iPad/iPhone e Android, com uma infinidade de aparelhos rodando esse sistema. Por isso não era um problema que poderia ser tratado com pouca importância.

Entramos em contato com o suporte do Fast Report e a primeira resposta que obtivemos foi de que teríamos que embutir as fontes no PDF. Fizemos o que nos pediram e o PDF subiu de 40K para 900K. Isso para um simples relatório de uma página com bem pouco texto. Fizemos testes com PDF gerados por outros aplicativos, usando a mesma fonte do nosso relatório (Arial) e em todos os casos os PDF funcionavam perfeitamente nas outras plataformas sem embutir a fonte. Ou seja, alguma coisa estava errada com o PDF do Fast Report.

Pressionamos mais um pouco o suporte do Fast Report e obtivemos a seguinte resposta:

…you should also understand that pdf is not a simple format and only its more complicated version is really portable. At the moment our pdf produces documents targeted for Windows. We are making steps towards more portability, for example we are developing pdf/a version of the export, but I can’t estimate when really portable pdf export is ready.

Ou seja, os PDFs gerados pelo FR são para Windows apenas e eles não sabem quando uma versão realmente portável estará disponível.

Nós obviamente já estamos procurando outras soluções. Infelizmente temos muitos relatórios em Fast Report, e mesmo diante desse absurdo, por mais que eu gostaria, inicialmente não estamos pensando em trocar de componente de relatório, mas apenas achar uma solução melhor para gerar os PDFs.

Portanto se você usa ou está pensando em usar Fast Report, fique atento com esse detalhe, que na minha opinião, é uma falha monstruosa do componente. Principalmente por saberem disso e não alertarem os clientes, simplesmente divulgando que geram os relatórios em PDF, sem especificar que é um PDF bizarro que vai de encontro ao principal motivo pelo qual o formato foi criado.

Delphi

Vem aí o Delphi XE

Delphi XE é o nome oficial do “Delphi 2011″. Agora os produtos da Embarcadeiro estão recebendo o XE no nome e as próximas versões serão Delphi XE2, Delphi XE3, etc. Um pouco sobre essa nova forma de nomear as versões foi explicada pelo Tim Del Chiaro em seu blog.

Apesar das mudanças no nome, o que realmente importa são as melhorias no produto pra decidir se vale a pena ou não investir numa atualização. Hoje foi publicado o primeiro vídeo mostrando algumas das novidades. Prometeram publicar novos vídeos a cada terça-feira.

Você pode assistir o vídeo na página RAD Studio XE Sneak Preview.

Até agora foi mostrado integração com o Subversion e melhoria da modelagem visual de objetos.

Apesar de eu usar Subversion o tempo todo, não sinto nenhuma necessidade em integrar na IDE. É uma novidade legal e acho até que votei nela no QC, mas com o tempo foi perdendo a relevância para mim. Acho que o TortoiseSVN atende tão bem que provavelmente eu nem usaria essa integração na IDE. Inclusive controlo muitos arquivos não reconhecidos pela IDE do Delphi e preciso ver como a integração lidaria com isso.

Modelagem visual de objetos foram raras as vezes que usei e não tenho muito interesse. Nunca me achei mais produtivo usando isso, talvez porque quase sempre eu conheço muito bem o código que estou mexendo.

Vou aguardar os próximos vídeos, mas por enquanto vou ficando com o Delphi 2010 mesmo.

E vocês, o que acharam?

Delphi

Delphi no MacOS: Será que precisamos disso?

Todo mundo que acompanha as notícias sobre Delphi já deve estar sabendo que a próxima versão trará um compilador nativo para MacOS. Não é usando Mono e Delphi Prism, como já é possível hoje, é um novo compilador. A IDE vai continuar no Windows, mas poderá compilar para MacOS.

Que a plataforma Mac está crescendo um pouco, ninguém tem dúvida, provavelmente em grande parte devido ao iPhone, que é um aparelho fantástico, eu mesmo tenho um. Mas quantos de vocês já tiveram uma demanda realmente importante para portar seus sistemas para MacOS? Sim eu já tive alguns clientes querendo rodar meus produtos no Mac, mas posso contar nos dedos. Certamente nada que justifique uma versão para essa plataforma.

Estamos falando de sistemas empresariais, que deve ser o que a maioria aqui no Brasil desenvolve usando Delphi. Para nós, se precisarmos suportar qualquer plataforma além do Windows, vejo muito mais sentido usar web, e já estaremos suportando não só Mac, mas também Linux, Chrome OS, telefones, PS3, etc.

Além disso, quem não é desenvolvedor Delphi certamente não vai usar o Delphi para fazer algo no Mac. Eles tem a IDE Xcode da Apple, que é muito poderosa, gratuita e mais “nativa” da plataforma. Então os clientes potenciais que restam realmente são apenas os clientes que já usam Delphi no Windows. Portanto dificilmente isso trará uma quantidade significante de novos usuários para o Delphi.

Lógico que é um recurso legal de ter, só não podemos esquecer que custa dinheiro para desenvolver e manter isso, dinheiro esse que poderia estar sendo melhor utilizado no Delphi Win32, que usamos diariamente e que infelizmente ainda tem muitos bugs a serem corrigidos.

A Embarcadero faz pesquisas anuais para saber o que os usuários querem no Delphi, então estou curioso para saber o que vocês acham disso. Vocês acham que esse recurso vai ser útil? Alguém aqui pretende usar? Meus usuários são diferentes e eu não estou percebendo a necessidade? Talvez consigam me fazer mudar de idéia, ou confirmar meu receio de que quase ninguém vai usar isso pelo menos por aqui.

Delphi

Pesquisa Delphi 2010

Todo ano a Embarcadero vem fazendo uma pesquisa entre os desenvolvedores para definir o futuro do Delphi. Ela é longa, mas muito importante, e todos usuários Delphi deveriam dedicar um tempo para responde-la com calma.

Eu já respondi. Se você é desenvolvedor Delphi, não deixe de fazer, pois o futuro do produto está muitas vezes diretamente ligado ao seu futuro e/ou de sua empresa.

Link para a pesquisa:
http://www.surveymonkey.com/s.aspx?sm=XrKr27_2bmLfybzGzZi_2brsBQ_3d_3d

Delphi

Utilizando XML Data Binding do Delphi

O recurso XML Data Binding do Delphi permite gerar classes tipadas a partir de arquivos XML, facilitando em muito quando se precisa ler e escrever arquivos XML.

Se não me engano, anteriormente esse recurso não estava disponível na versão Professional do Delphi, mas agora está, pelo menos no Delphi 2009.

Eu usei recentemente e tinha colocado na minha lista de assuntos para blogar, mas o Diego Garcia acabou de publicar um video detalhado de como utilizar esse recurso.

Vale a pena conhecer, pois mais cedo ou mais tarde todo mundo acaba precisando manipular XML.

Delphi Microsoft

Uma semana de Windows 7 RTM

3660039011_073d6a4fb7_oEstou rodando Windows 7 RTM (versão final) na minha máquina principal há pouco mais de uma semana. Ela foi liberada no dia 06/08 para assinantes da TechNet e foi dessa forma que baixei.

Da primeira vez que testei o Windows 7, foi a versão 64-bits, mas desta vez optei pela versão 32, pois a 64 ainda tem algumas poucas incompatibilidades e nenhum benefício aparente até o momento.

A ótima notícia é que pelo menos na versão 32, o Delphi 2009 funciona perfeitamente, não existindo o problema do debugger que eu já tinha reportado aqui. Agora só falta pesquisar como tirar proveito dos novos recursos do Windows 7 nos nossos aplicativos. A “jump list” da nova barra de tarefas é a primeira candidata.

O Google Chrome também está perfeito e rodando sem nenhum problema.

Esses foram os únicos aplicativos que me deram problema da primeira vez e agora estão 100% na versão RTM 32-bits.

Devo dizer que a instalação do Windows foi perfeita e a performance é realmente superior ao Vista e XP, incrível o que eles conseguiram fazer.

Para não dizer que tudo são flores, o único problema que tive até agora com o Windows 7 é que não consigo mais ligar meu notebook a minha TV LCD. Ainda não consegui resolver, e toda vez que conecto a TV diz que a imagem esta em modo incompatível. É uma TV Samsung Full HD 40 polegadas. Se alguém tiver qualquer dica, é bem vinda. Minha placa de video é uma ATI Mobility Radeon X1600.

Apesar disso o Windows 7 é um upgrade totalmente recomendado, inclusive para os fanáticos pelo XP. Podem ir sem medo. Deixem o XP para trás, por favor! :)

Delphi

Video em Português com as Novidades do Delphi 2010

Mais um video produzido pela Embarcadero com as novidades do Delphi 2010, mas desta vez em português.

Delphi

Novidades do Delphi 2010

A Embarcadero publicou um primeiro video com algumas das novidades que o RAD Studio 2010 vai trazer.

Finalmente teremos um formatador de código, e o atalho para disparar ações na IDE (IDE Insight) também é muito legal. Os data visualizers é outra novidade bem vinda para facilitar o debug. Espero nunca mais ver datas como números durante o debug.

Um ponto negativo do video é que usaram um miserável Windows XP para o demo, credo. Perderam uma boa oportunidade de mostrar a IDE rodando no Windows 7.

Alguém precisa dar uma camiseta nova para o David I. :)

Delphi

Updates 3 e 4 para Delphi 2009

É isso ai, de uma só vez a CodeGear disponibilizou dois updates para o Delphi 2009. Se você também usa o C++ Builder, serão 3 updates.

  • Post do Nick Hodges aqui.
  • Release notes aqui.
  • Lista do que foi corrigido no Update 3 aqui.
  • Lista do que foi corrigido no Update 4 (database pack) aqui.

Para instalar eu simplesmente lancei o “Check for Updates” do meu Delphi e pronto, mas você também pode baixar os updates da área de download para usuários registrados. Que foi o que eu fiz para instalar no restante das máquinas aqui.

A instalação foi tranquila, porém no about no meu Delphi, na caixa “Installed Updates” não aparece o Update 3, apenas o 4. Isso aconteceu para mais alguém aí? Vou testar em outras máquinas aqui para ver o que acontece.

Não achei nada sobre Windows 7 na lista de correções, então acredito que o problema do debugger continue.

Delphi

Varrendo DataSet com Métodos Anônimos

Métodos anônimos é um dos novos recursos trazidos pelo Delphi 2009. De início ele parece meio estranho e podemos levar um tempo para nos acostumar com a sintaxe, mas podem ser bem úteis em alguns casos como o que eu vou mostrar agora.

Quantas vezes você já não precisou escrever código para varrer um dataset do início ao fim?

DataSet.First;
while not DataSet.Eof do
begin
  //
  // Faz alguma coisa com o registro atual
  //
  DataSet.Next;
end;

Isso pode ficar ainda maior se você precisar usar DisableControls ou ainda restaurar o ponteiro do registro do DataSet após a varredura:

var
  Bookmark: TBookmark;
begin
  DataSet.DisableControls;
  try
    Bookmark := DataSet.Bookmark;
    DataSet.First;
    while not DataSet.Eof do
    begin
      //
      // Faz alguma coisa com o registro atual
      //
      DataSet.Next;
    end;
    DataSet.Bookmark := Bookmark;
  finally
    DataSet.EnableControls;
  end;
end;

Esse código todo é praticamente repetido em todas as varreduras que precisamos fazer em um DataSet. Então seria muito útil se pudéssemos extrair esse código e trocar apenas a parte que “faz alguma coisa com o registro atual”.

É aqui que os métodos anônimos nos ajudam muito.

Na unit SysUtils do Delphi, existe um tipo TProc declarado desta forma:

type
  TProc = reference to procedure;

E vamos usá-lo para criar uma procedure que recebe um dataset e um método anônimo como parâmetros:

procedure ForEach(DataSet: TDataSet; Proc: TProc);
var
  Bookmark: TBookmark;
begin
  DataSet.DisableControls;
  try
    Bookmark := DataSet.Bookmark;
    DataSet.First;
    while not DataSet.Eof do
    begin
      Proc;
      DataSet.Next;
    end;
    DataSet.Bookmark := Bookmark;
  finally
    DataSet.EnableControls;
  end;
end;

E com isso podemos chamar a procedure dessa forma:

ForEach(Table1,
  procedure
  begin
    ShowMessage(Table1NAME.Value)
  end);

Como eu disse, a sintaxe inicialmente é meio estranha, mas com o tempo você acostuma. No exemplo acima eu codifiquei uma procedure sem nome e sem parâmetros e passei para ser executado em cada registro. Eu tinha um dataset chamado Table1 no form. ShowMessage será chamado para cada registro. Além disso, ele desativa os controles conectados ao dataset e restaura o ponteiro no final.

Perceberam como isso facilita nossa vida? Então pronto, pode ir remover o monte de código duplicado que você tem em seus aplicativos. :)

Existe ainda uma idéia mais legal que é transformar esse recurso em um helper para a classe TDataSet, mas isso eu vou deixar para vocês como lição de casa ou para um próximo post aqui no blog.

Update: Eu já estava prevendo que alguém comentasse isso. Sim, eu sei que já era possível antes com ponteiros de funções, mas com métodos anônimos é muito mais legal e é uma forma de tirar proveito dessa novidade do Delphi 2009. Para quem ainda não tem o Delphi 2009, vale a dica do amigo Marcos Douglas, postada nos comentários.

Delphi Microsoft

Problemas com Delphi no Windows 7

Depois de realizar mais testes, cheguei a conclusão que infelizmente o Windows 7 ainda não é uma boa opção para quem trabalha com Delphi.

Rodando o Delphi 2009 encontrei problemas na hora de usar o debugger em aplicativos com mais de uma thread. Quando uma exception é levantada, não é possível dar um break e resetar o aplicativo (Ctrl+F2) e você precisa reiniciar a IDE.

Já notifiquei o pessoal da CodeGear, mas como essa é uma versão beta e não suportada do Windows, não posso querer que eles resolvam.

Fica aí o alerta para os desenvolvedores Delphi.

Delphi Firebird Microsoft

Primeiras impressões do Windows 7 com Delphi, Firebird e mais

Windows 7 Beta e Delphi 2009Instalei o Windows 7 Beta build 7000 em uma máquina de testes e já deu tempo de brincar um pouco. A instalação foi totalmente tranquila, reconheceu todo o hardware assim como o Vista já fazia. Optei pela versão 64 bits, que já venho usando no Vista há algum tempo.

A nova task bar realmente é bem melhor e é a primeira diferença que se nota logo que o sistema inicializa.

Depois disso comecei a instalar alguns dos aplicativos que mais uso no dia-a-dia.

Instalados e rodando sem nenhum problema até agora:

  • Delphi 2009
  • Firebird 2.1
  • IBExpert
  • TortoiseSVN
  • Mozilla Firefox

Não funcionaram Funcionando após algum ajuste:

Conclusão, estou considerando sériamente em arriscar e instalar ele na minha máquina principal.

Para quem está interessado em testar e não tem assinatura MSDN nem TechNet, acho que ele vai estar disponível publicamente para download amanhã.

Delphi

Delphi 2009: Finalmente uma IDE que não quebra o dia todo?

Apenas uma nota rápida sobre Delphi 2009 após alguns dias usando em tempo integral.

Finalmente depois do Delphi 7, esta parece ser uma versão que não quebra o dia todo. Apesar de muita gente dizer que o Delphi 2007 era estável, eu pelo menos não tinha estabilidade com ele. Quebrava pelo menos duas ou três vezes por dia.

Isso não acontece com o 2009, que está bem mais estável. E não venha me dizer que isso tem algo a ver com a versão ser impar, porque o 2007 também era. :)

.NET Chrome Delphi RemObjects Visual Studio

RemObjects Oxygene é o novo Delphi Prism

Apesar de até este momento não terem divulgado oficialmente, está na cara que o novo Delphi Prism é o Oxygene (antigo Chrome) da RemObjects.

Vejam o post que o Marc Hoffman da RemObjects fez em seu Twitter cerca de duas horas atrás. Traduzindo seria algo como: “Novo build beta do Prism saindo da linha de produção agora”.

O Delphi Prism foi anunciado pseudo-oficialmente na SDN Conference na Holanda. O Marco Cantu publicou alguns detalhes do anuncio em seu blog.

E se você quer participar do beta do Prism, pode se inscrever aqui.

Delphi Microsoft

Não teremos BorCon esse ano

O nome BorCon já não fazia muito sentido e já tinha sido abandonado pela CodeGear nos EUA. Por aqui ele resistiu um pouco mais.

Hoje alguém da Borland (sim, ela se identificou dessa forma) me ligou oferecendo o Delphi 2009. Eu disse que tinha interesse, porém iria esperar o BorCon para comprar com desconto, como faço todo ano. Então ela me disse que não teríamos BorCon esse ano.

Será que teremos que comprar o Delphi com preço full? Ou teremos alguma promoção estilo BorCon? Só isso me preocupa. A pessoa ficou de me enviar a proposta de upgrade para o Delphi 2009. Isso foi hoje de manhã e nada até agora.

De qualquer forma, em outubro tem o TechEd da Microsoft e estarei por lá novamente, principalmente para ver o keynote do Steve Ballmer.

Delphi Free Pascal RemObjects

RemObjects SDK com suporte a Delphi 2009 e Lazarus

A nova versão (5.0.33) do RemObjects SDK, lançada no último dia 29, traz suporte ao Delphi 2009, além de suporte a IDE gratuita Lazarus, do Free Pascal.

No caso do Delphi 2009, o instalador não traz as versões compiladas dos pacotes e units pois a versão final do Delphi 2009 ainda não foi liberada. Mas ele traz todo o código fonte compatível para que seja utilizado quando a nova versão estiver disponível.

.NET Delphi Java

SmartInspect 3.0 lançado

Uma das ferramentas que eu mais uso no dia a dia é o SmartInspect. Ele te ajuda a entender muito melhor como seu aplicativo se comporta internamente. Quando você começa a incluir log nas operações internas do seu aplicativo, você descobre que ele se comporta de forma muito diferente do que você imaginava. :)

A nova versão foi anunciada e lançada com muitas novidades.

Delphi

Anunciado o Delphi 2009

Ontem foi anunciado oficialmente o Delphi 2009, que também vinha sendo conhecido como Tiburon.  Ele já está disponível para pré-venda nos EUA, mas ainda não no Brasil, pelo menos não na loja virtual da Borland/CodeGear/Embarcadero.

Para nós usuários do Delphi uma nova versão é sempre uma esperança renovada de que a ferramenta esteja melhor e nos dando mais produtividade. Entre as novidades dessa versão, estão melhorias importantes na linguagem como Generics, que para mim é a principal novidade e o que tenho esperado no Delphi há muito tempo.

Ele tras também novos controles da VCL, como o Ribbon, que serve para criar barras de tarefas estilo Office 2007. Pra quem já utiliza os componentes da DevExpress, pouco importam essas novidades. Inclusive nós já temos o Ribbon lá há muito tempo.

Existem melhorias no DataSnap, que são muito interessantes, principalmente para quem usa o DataSnap atual puro do Delphi, que depende de COM e sempre só ouvi reclamações. Digo DataSnap atual puro, pois eu utilizo o DataSnap com RemObjects para camada de comunicação, então nunca dependi do COM e nunca passei as dificuldades que isso trás.

E claro, Unicode, que praticamente nenhum desenvolvedor brasilieiro precisa, mas que é importante para que a ferramenta atender o maior mercado possível suportando qualquer conjunto de caracteres.

Junto as novidades, sempre vem um pouco de melhoria na estabilidade e performance da IDE. Isso eu diria que pra mim é um dos itens mais importantes. O meu Delphi 2007 por exemplo, ele dá pau pelo menos entre duas a três vezes por dia. São aqueles erros inexplicáveis que te obrigam a fechar a IDE e recomeçar o trabalho.

Vale a pena atualizar seus Delphi para o 2009? Na minha opinião vale. Eu com certeza atualizarei o quanto antes. Meus principais motivos são:

  • Generics vai permitir que eu elimine muito código.
  • IDE mais rápida e estável, reflete em maior produtividade do desenvolvedor.
  • Suporte ao produto. Não podemos negar que a CodeGear está se esforçando de verdade para melhorar o produto e parece que está cada vez mais na direção certa. Pare e pense qual seria o tamanho do prejuízo se você tivesse que migrar seus projetos para uma outra plataforma no caso do Delphi ser abandonado. Pensou? Pois é, você vai ver que o custo do Delphi é insignificante perto desse custo. Então temos que suportar o produto, comprando as licenças.

Mais informações sobre o anúncio:

.NET Chrome Delphi RemObjects Visual Studio

Delphi 2009 apenas Win32 e futuro Delphi .NET

Nick Hodges, gerente de produto do Delphi, explicou em seu blog que o Delphi 2009 (Tiburon) será um produto apenas para desenvolvimento nativo, ou seja, Win32.

Acho uma ótima notícia. O Delphi Win32 ainda tem tanto potencial que merece com certeza toda a atenção possível.

Porém, o que mais me chamou a atenção foi que o .NET não foi abandonado, e um novo roadmap será divulgado em breve, além de um produto suportando as últimas tecnologias e frameworks .NET. Humm. Será que vão realmente investir pesado em uma IDE paralela ao Visual Studio ou vão finalmente desenvolver um plugin para ele?

E ao contrário dos que pensam que teriam que comprar o Visual Studio separadamente para rodar o Delphi plugin, isso não é necessário não. O Oxygene (ex Chrome) da RemObjects já vem com a IDE, ou seja, se você não tem o Visual Studio, quando instala o Oxygene, é instalado um Visual Studio apenas com a linguagem Oxygene.

A CodeGear poderia tranquilamente fazer a mesma coisa. São apenas especulações da minha parte. Mas faria muito sentido.

Quer mais um pouco de especulação? Quando a RemObjects mudou o nome do Chrome para Oxygene, disse que simplesmente não podia explicar o motivo. Disse apenas que era um bom motivo e que só faria o bem ao produto. Hum.. teria essa mudança algo a ver com as mudanças de planos da CodeGear para a plataforma .NET? Quem sabe? :)