Cesar Romero

Delphi programming

Entries for the ‘Programação’ Category

Delphi 2010 DBX com SQL Server 2008

Há alguns dias eu postei o artigo Configurando DBX para acessar o MS SQL Server 2000 e 2005 no Delphi 2010, hoje o Bob Swart postou em seu blog o artigo Delphi/C++Builder 2010 DBX4 and SQL Native Client sobre o mesmo assunto com um complemento explicando a solução para o erro:
“DBX Error: Driver could not be properly [...]

BDE Install para Windows 64bit

Postei no Code Central um instalador para o BDE que funciona para Windows 32bit e Windows 64bit.
O link para download é http://cc.embarcadero.com/item/27573.
O crédito pelo instalador é do Edmar Frazão.
Atenção: O BDE foi descontinuado, então ele não terá atualizações. Por exemplo, nunca terá suporte a Unicode.
Você não deve iniciar o desenvolvimento de novas aplicações com BDE. Considere migrar [...]

Como criar um VCL Form sem .dfm?

As vezes precisamos criar um Form em tempo de execução, a partir de uma classe especializada de TForm, apenas com métodos, criando os componentes dinamicamente, ex:

type
TMyForm = class(TForm)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;

E nos deparamos com o erro:
Project MyProject.exe raised exception class EResNotFound with message ‘Resource [...]

Email com Indy “Socket error 11004″

Sempre tem alguém perguntando a solução para este erro quando vai mandar Email com o Indy, então vou tentar postar a explicação mais simples para que seja possível entender o erro e como resolver.
Socket error 11004 ou WSANO_DATA, significa que a resolução de nome, tradução de www.dominio.com.br para o número IP, foi encontrada no servidor [...]

Process Info Components

Hoje encontrei 2 componentes gratuitos bem interessantes:

TProcessInfo
TAppInfo

TProcessInfo disponibiliza uma lista de processos que estão rodando. Esta lista é uma coleção de objetos TProcessItem. Cada instância de TProcessItem disponibiliza informações e ações para o processo correspondente.
TAppInfo disponibiliza uma lista de programas rodando, similar a aba Aplicativos do Gerenciador de Tarefas do Windows. Esta lista é uma coleção de [...]

Qual é a CPU?

Boa dica para descobrir a CPU em que o programa está rodando:
Fontes:

Forums » Delphi » Language » BASM
Fast Code Project

type
TCPUVendor = (cvUnknown, cvAMD, cvCentaur, cvCyrix, cvIntel, cvTransmeta,
cvNexGen, cvRise, cvUMC, cvNSC, cvSiS);

TCPUVendorStr = string[12];

const
CPUVendorStr: array [ Low(TCPUVendor) .. High(TCPUVendor)]
of TCPUVendorStr = [...]

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 [...]

Blaise Pascal Magazine – Edição Especial + 1 ano de Assinatura Grátis

A  Blaise Pascal magazine publicou uma edição especial e gratuíta da revista cobrindo todos os produtos da Embarcadeiro, CodeGear e DatabaseGear.
Mas a grande novidade é que a revista também está disponível para download na área de download de usuários registrados do Delphi 2009, mas baixando do site da CodeGear você ainda ganha 1 ano de assinatura da [...]

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 [...]