madExcept 3.0k para Delphi 2010
Mathias Rauen (Aka madshi ), acabou de disponibilizar o madExcept versão 2.5.11.1 com suporte ao Delphi 2010.
Eu estava esperando esta versão para poder compilar o Xananews com o Delphi 2010.
A lista de alterações desde a última versão:
- added Delphi/BCB 2010 support
- added detection for Win2008, Win7, Win2008r2
- fixed: cleartext disassembly missed instruction labels
- fixed: cleartext instruction labels were sometimes wrong
- madListProcesses: added gdi/user object count
- added %exceptClass%
- only exe modules hook/protect new threads by default now
- added HookThreads/DontHookThreads to overwrite default
- undocumented OnExceptBoxDestroy callback added
- fixed: in certain situations bug report wasn’t saved
- added Delphi/BCB 2010 support
- added detection for Win2008, Win7, Win2008r2
- fixed: cleartext disassembly missed instruction labels
- fixed: cleartext instruction labels were sometimes wrong
- madListProcesses: added gdi/user object count
- added %exceptClass%
- only exe modules hook/protect new threads by default now
- added HookThreads/DontHookThreads to overwrite default
- undocumented OnExceptBoxDestroy callback added
- fixed: in certain situations bug report wasn’t saved
Referências

4 Comments
Bom dia Cesar, fico feliz que há pessoas portando aplicações para o Delphi 2010 (me parece ser um bom produto que vale a pena pagar o upgrade e fazer os ajustes nos códigos).
Topei com um problema e se puder me dar uma luz ou direção lhe agradeço. É o seguinte:
Eu estou testando o Delphi 2010 e um código que funcionou no 2009 (uso a versão 7 para ambiente de produção) apresenta o erro JPEG error #51 ao ler a imagem do TClientDataSet (firebird2.1.2+drive delphi2010) para um componente Timage:
ob_stream:TStream;
ob_jpg:TJPegImage;
ob_cld:TClientDataSet;
.
.
ob_stream:=ob_cld.CreateBlobStream(ob_cld.FieldByName(‘FOTO’),bmRead);
ob_jpg.LoadFromStream(ob_stream);
ob_img.Picture.Assign(ob_jpg);
.
.
e segue o código, mas o erro ocorre no trecho acima.
@Anderson:
Quando tiver tempo eu vou testar pra ver o que acontece.
Mas vão algumas dicas:
Aqui está uma tabela de alguns erros do JPEG
Uma dica de como saber que erros são estes
http://edn.embarcadero.com/article/20433
Pela descrição do erro, parece que está faltando alguma informação do JPEG que deveria ser salvo junto com a imagem.
Cesar, não utilizo o componente TDBImage (mas farei testes com ele).
Este mesmo código funciona no Delphi 2009 sem problemas (consigo salvar e ler a imagem – e trocar por outra, salvar de novo, ler de novo, etc.) – eu testei com drivers diferentes (upscene, devart) e tudo ok no 2009. No delphi 2010 testei com o próprio driver da Embarcadero e depois com um driver free do Chau Chee Yang (http://sites.google.com/site/dbxfirebird/) e o erro foi o mesmo.
Acredito que algo mudou no TJPeg/TImage/TStream/TClientDataSet.CreateBlobStream que trata de forma diferente a informação, já que no vídeo sobre o Delphi 2010+Driver Embarcadero+Firebird+DBImage funcionou.
Esta “quebra” de compatibilidade de código é prá matar, afinal, queremos produzir e não ficar consertando algo que já funcionava. E prá completar a Embarcadero ainda muda a política de licenciamento. Terei agora até o final do ano para comprar o upgrade, porque depois, só quem tiver delphi 2006 ou superior (No meu caso comprei o 2005 e solicitei downgrade para o 7). Isto foi uma decisão injusta, já que algumas das versões após o delphi 7 tiveram pouca aprovação.
Resolvida a questão de acesso a imagem. A rotina de acesso está ok, o problema era na definição do campo BLOB.
Definido agora como: BLOB SUB_TYPE 0
O driver da Devart me parece mais robusto, rápido (e mais experto), pois muitos dos problemas que se apresentaram com o driver da Embarcadero, o driver da Devart resolvia as questões internamente. Espero concluir os testes com os trials em 2 semanas.