Um conhecimento só é válido quando compartilhado.

sábado, 10 de outubro de 2009

Delphi "MS Sans Serif Size 8" no Windows 7

Para quem desenvolve em Delphi.
Não sei por que cargas d'agua, o Win7 não aceitou a fonte "MS Sans Serif", Size = 8.
Meus projetos tem muito forms que vieram e versões anteriores do Delphi, várioscom a font "MS Sans Serif" Size = 8. No Win 7 a fonte "MS Sans Serif" o Size minimo é 10, deixando meus forms c/ as fontes enormes, consequencia. Tiveque mudar todos meus .dfm p/ fonte Tahoma na mão.

ÊÊÊÊÊ windows 7, porque vc não deixou o "MS Sans Serif" assumir o Size = 8 heim...

Solução... Peguei essa fonte de outra maquina e intalei na mão.

terça-feira, 5 de maio de 2009

Axial Build 2009 for Windows

Foi lançado a versão 2009 do Axial Build. O poduto é de uso livre.
Criado pela Tecsis Soluções, o Axial Builder 2009, além de trazer o mais novo padrão no seu visual, seu código foi todo reescrito, trazendo assim optimização e rapidez nas compilações. No código reescrito a Tecsis utilizou o Axial framework, o qual é utilizado para criação de todos os seus projetos, com essas mudanças ficou muito fácil de incluir recursos de compilação ao Axial Build. Para baixar clique http://cc.embarcadero.com/Author/55953

terça-feira, 24 de março de 2009

MidasLib vs ReportMemoryLeaksOnShutdown

Nas minhas aplicações tenho o "ReportMemoryLeaksOnShutdown := DebugHook <> 0", habilitado sempre. Enquanto eu estava no D2007 o vazamento de memória estava zerado, tratei todos. Ao mudar para o D2009 começou a aparecer um vazamento de memória assim:

Como não me relata quais objetos não foram liberados da memória, eu não pude resolver este problema, até ontem. Ontem resolvi cercar alguns recursos em uma das telas de um sistema meu e observei que ao cercar o método que configura as propriedades dos TFields como:
  • ConstraintErrorMessage;
  • DefaultExpression;
  • Alignment;
  • DisplayFormat;
  • etc..
o erro acima não ocorria, então pensei. Já não bastava o erro "stack overflow", ainda mais esse ?
Meu proximo passo foi cercar propriedade por propriedade pra descobrir qual ou quais estavão gerando o vazamento de memória, até que descobri que era a propriedade "DefaultExpression". Bom agora além de ter que mudar o método de validação de minhas aplicações iria eu ter que mudar o método de alimentar os valores defaults dos TFields ? Não ! Parti então para fazer um exemplo e mandar para o Andreano na esperança dele reportar e o problema ser resolvido talvez no Update3, mas ao concluir o exemplo este não me mostrava o erro citado acima, então o que poderia ser ? Passei limpando uma de minhas aplicações vendo se tinha alguma Unit que poderia estar ocasionando o erro, mas não consegui achar nada, até que ao abrir o fonte do projeto em um de meus sistemas, no menu Project->View Source, descobri que tinha 3 units inseridas por mim mesmo ao projeto que são elas:
Como não poderia deixar, comentei as duas ultimas pensando que se fosse essas seria uma das duas a MidasLib não poderia ser..., o erro continuou aparecendo, então para desencargo de consciência comentei a MidasLib também e para minha surpresa era ela que estava ocasionando os vazamentos de memória.
Fica aqui mais uma situação ocorrida comigo para que outros não passem por isso, e mais uma vez vamos esperar que no Update3 isso seja resolvido.

T+

segunda-feira, 23 de março de 2009

MetaData no dbExpress e Delphi 2009

Assistindo alguns videos dos novos recursos do D2009, baixei um video de uma palestra ministrado por William Santos dbExpress - MetaData com Delphi 2009, que mostra os novos recursos do dbExpress e como trabalhar com MetaData. Lembrei também que baixei os exemplos do livro de Marco Contú e la tinha um exemplo de metadata, então resolvi vê como funcionava na pratica todos os recursos, como não era surpresa descobri que seria a solução para atualização dos MetaDatas dos meus bancos de dados, pois a Embarcadero provou que continua se preocupando com o desenvolvedor como a Borland fazia, pois foi fácil buscar as informações do metada, visualizando que pode ser feito uma aplicação para essa atualização automatica. Bom mais como sempre nem tudo são flores, pois quando fui buscar as Triggers descobri que este recurso ainda não estava disponível, então resolvi olhar dentro do código fonte do framework do dbExpress, pois achei que poderia os métodos estar com nomes não tão intuitivos. Depois que vasculhar, não achei nada e pensei que seria o fim para criar o recurso de atualização automática do meu banco, vendo que só faltava isso parti a pesquisar como eu poderia fazer isso manualmente e sem muito esforço consegui achar e é isso que quero passar aqui, em SQL Server.


SELECT
[Table Name] = OBJECT_NAME(sys.objects.parent_object_id),
[View Name] = sys.objects.name,
[View Source] = sys.sql_modules.definition
FROM sys.sql_modules
INNER JOIN sys.objects ON sys.objects.object_id = sys.sql_modules.object_id
WHERE sys.objects.type = 'TR'"


T+

Total de visualizações

Postagem em destaque

ORMBr - Mapeamento objeto-relacional

Mapeamento objeto-relacional ( ou ORM, do inglês: Object-relational mapping ) é uma técnica de desenvolvimento utilizada para reduzir...

Todo os direitos reservados.. Tecnologia do Blogger.

Seguidores