Cesar Romero

Delphi programming

Entries for the ‘Dicas’ Category

Everything search engine

Hoje conheci este sensacional indexador de arquivos, pequeno, leve e eficiente. O melhor que já usei, antes testei o Google Desktop, Copernic e o padrão do Windows Vista. O instalador completo tem apenas 334 KB, e vem com servidor ftp e http embutidos. O banco de dados também é mínimo, e ele indexou todo meu [...]

TSQLConnection.Params como ConnectionString

Pra quem está acostumado a trabalhar com as tecnologias de banco de dados da Microsoft como ADO, sabe que as configurações de conexão de banco de dados são passadas em uma propriedade chamada ConnectionString, uma linha única contendo todos os parâmetros da conexão separados por ponto e vírgula, diferente da propriedade Params do TSQLConnection, que [...]

Como comparar 2 Imagens

O código a seguir, está comparando 2 bitmaps, mas a idéia pode ser utilizada para comparar outros formatos de imagem, arquivos, ou qualquer conteúdo salvo em TMemoryStream. function IsSameBitmap(Bitmap1, Bitmap2: TBitmap): boolean; var Stream1, Stream2: TMemoryStream; begin Assert((Bitmap1 <> nil) and (Bitmap2 <> nil), ‘Params can”t be nil’); Result:= False; if (Bitmap1.Height <> Bitmap2.Height) or [...]

TFields em run time

Apenas um exemplo de código de como manipular TFields em run time. Criar TFields sem utilizar TDataSet.FieldDefs Clonar Fields TDataSetField: Manipular TFields aninhados procedure TFormDBUtils.ButtonCreateFieldsClick(Sender: TObject); function CreateField(DataSet: TDataSet; FieldClass: TFieldClass; const FieldName: string = ”): TField; begin Result:= FieldClass.Create(DataSet); Result.FieldName:= FieldName; if Result.FieldName = ” then Result.FieldName:= ‘Field’ + IntToStr(DataSet.FieldCount +1); Result.FieldKind := fkData; [...]

Acelerando TCustomSQLDataSet.ExecSQL no Delphi 2007

O TCustomSQLDataSet.ExecSQL tem um bug no Delphi 2007, que ignora quando uma Query já está preparada. A cada vez que o método é executado, ele refaz todo o processo, tornando as chamadas consecutivas do ExecSQL lentas por não aproveitar o ???Prepare???. Este problema está reportado no QC 56985 e foi corrigido no Delphi 2009. Se [...]

Resolvendo associação de arquivos do Excel

Ontem precisei resolver este problema em um cliente. Removi o Office, limpei o registro do Windows, reinstalei e nada. Após pesquisar um pouco, encontrei a solução: No Excel em Ferramentas | Opções | Geral Desmarque a opção “Ignorar aplicativos Externos”. Execute o shell do windows cmd.exe e digite os comandos: “C:\Arquivos de Programas\Microsoft Office\…\Excel.exe” /regserver  [...]

WordPress XML-RPC Com Delphi e Indy 10

O WordPress suporta comunicação remota, atravéz de XML-RPC, ontem ajudei um amigo a criar um aplicativo simples em Delphi, para postar e fazer upload de arquivos com Delphi e Indy 10. A minha primeira tentativa foi utilizando o RemObjects, mas ele apresentou alguns bugs, eu corrigi os fontes do RemObjects e consegui fazer a chamada, [...]

Simulando KeyPress com PostKeyEx32.

Esta  semana eu resolvi adicionar a simulação de KeyPress em um aplicativo, precisava simular o “CTRL + F10″ e enviar uma mensagem WM_HOTKEY. Para minha surpresa, não era uma tarefa tão simples de codificar, e depois de várias tentativas, consegui enviar o “CTRL + F10″, só que outro aplicativo que tinham registrado F10 também era executado, [...]

Delphi Sets, código legivel e bom desempenho

Hoje enquanto modelava e implementava Notificação e Estado dos objetos no Jazz, tive a preocupação com a memória utilizada e com o desempenho.  Na versão anterior eu utilizava Sets, mas a notificação e o status necessitavam melhorias. Então me ocorreu a idéia de utilizar bit para identificar o Estado, desta forma, um byte seria suficiente para [...]

7zip no Delphi – 7Zip plugin API

7zip Plugin API, utiliza os plugins do 7-zip para ler e gravar em todos os formatos suportados pelo 7-zip. Para utilizá-lo, são necessários todos os arquivos nas pastas ???Formats??? e ???Codecs??? do diretório de instalação do 7-zip.   Extraindo um arquivo para uma pasta específica: with CreateInArchive(‘Formats\zip.dll’) do begin OpenFile(‘c:\test.zip’); ExtractTo(‘c:\test’); end; Referências Site do [...]