Dica : Do Pascal ao Delphi

By tresloukadu

Segue um bom artigo falando sobre a origem do pascal. Axei muito interessante e estou postando aqui.

Origem do Pascal

t+



categoriaDelphi, Miscelânea commentoNo Comments datadezembro 19th, 2008
Read All

Dica : Upgrade para Delphi 2009

By tresloukadu

Eu estive consultando os preços do Delphi 2009 e pude constatar que eles são um tanto salgados para a realidade brasileira. Por exemplo o “DELPHI 2009 FOR WIN 32 PROFESSIONAL NEW USER 10 NAMED USERS” custa R$ 22.287,00  e já o “DELPHI 2009 FOR WIN 32 PROFESSIONAL NEW USER CONCURRENT” está R$ 5.394,00 sendo que para os dois o frete é gratuito.  Por isso axo que muitas pessoas acabam buscando versões do Delphi 2009 sem licença. Bom sem querer entrar no mérito de compra e não compra de licença eu comecei a me questionar se é realmente vantajoso fazer a migração para o Delphi 2009 ou continuar nas versões 2008 e inclusive 2007 (eu utilizo a versão 2006).

Pois se colocarmos em pauta as novidades veremos que pra efeito prático não são muitas para realizar um upgrade. Novidades no VCL mesmo o que teve foi no Ribbons mas existe inúmeros componentes para versões anteriores do Delphi que fazem a mesma coisa, eu particulamente não utilizei o Ribbons em nenhum projeto ainda. As outras novidades nos componentes não são algo crítico que exigem um upgrade de todo o BDE.

Outra coisa que existe no Delphi 2009 é a internacionalização com um suporte a outros idiomas mais abrangente com o unicode. Mas a maioria dos softwares desenvolvidos são para consumo do mercado brasileiros e em alguns casos americano. Bom tudo tem funcionado bem antes desta nova versão.

É claro que existe muitas outras melhorias e extras como o SilverLight e desenvolvimento Web mas comecei a colocar na balança se eu precisaria disso tudo agora ou simplesmente se valeria a pena fazer um investimento em uma nova versão agora.

Bom cada caso é um caso, no meu axo que é possível esperar mais um pouco pela chegada de novidades mais interessantes. Eu gostaria de saber dos leitores as suas próprias opiniões e saber se eles econtraram algum motivo especial para fazer uma atualização para o Delphi 2009.

URL reduzida deste artigo: url20.ca/r1994

categoriaDelphi 2009 commento10 Comments datadezembro 15th, 2008
Read All

Dica : Disponível para Download Delphi 2009

By tresloukadu

A nova versão do Delphi já está disponível para baixar e é a primeira versão lançada pela nova detentora do CodeGear a Embarcadero Tecnologies. Esta versão do Delphi já foi escolhida como a melhor versão lançada até agora. O novo Delphi 2009 apresenta uma infinidade de novos recursos. É o Delphi ressurgindo das cinzas, depois de ter quase sido enterrado pelos antigos donos. A interface da IDE que já era boa ficou muito melhor com as características do Windows Vista mas ele funciona em outras versões do Windows também, sendo assim você pode baixar tranquilamente pois rodará no Windows XP.

Interface do Delphi 2009

Interface do Delphi 2009

Como dá pra notar na imagem o Delphi 2009 oferece novos componentes VCL como o pomposo Ribbons do Office 2007.

Além dos componentes VCL o Delphi 2009 trás outros recursos interessantes, como por exemplo:

  • DataSnap (parecido com o MVC – Model View Controller) possibilita desenvolver uma aplicação em 3 camadas. E como informa o website de lançamento do Delphi 2009 a separação do view (camada visual) do model (camada de negócios) e as outras camadas é tudo COM-free ou seja sem o uso de COM. Com esta nova tecnologia podemos criar programas ultra leves que consomem o mínimo de memória e fazendo eles acessarem o servidor de aplicações para pegar datasets e outras funções ( tudo server side ). Isso tudo deixa a aplicação cliente super leve como foi mencionado.
  • Métodos generics e anonymous. O generics torna possível criar um código que seja compatível com todos os tipos de dados. Já os métodos anônimos permite injetar blocos de códigos onde for necessário tanto inline ou como parâmetros para outros blocos de código. Isso tudo deixa o Delphi na vanguarda da linguagem de programação nativa.
  • Com os novos componentes VCL, controles Ribbons, suporte a PNG, melhorias nos componentes antigos e suporte para a interface do Windows Vista é possível criar interfaces elegantes e ergonômicas para a nossa aplicação.
  • Internacionalização axo que essa palavra resume tudo. Com um maior suporte a internacionalização o Delphi está garantindo a sua continuidade no futuro, pois muito mais pessoas ao redor do mundo poderão utilizar, programar e participar do mundo Delphi. O Delphi 2009 oferece um novíssimo suporte ao Unicode facilitando desta forma a tradução da nossa aplicação para múltiplos idiomas. No Delphi 2009 todo o ambiente de desenvolvimento incluindo a IDE, CodeEditor, RTL, e o framework VCL são totalmente habilitados com suporte a Unicode permitindo a sua aplicação rodar e interagir com qualquer tipo de dados Unicode. E pra completar o Delphi oferece várias ferramentas que auxilam a tradução para outro idioma.
  • Manter a produtividade sempre alta, com as novas características disponíveis no Delphi 2009 podemos desenvolver aplicações com muito mais eficiência e rapidez. Algumas dessas caracterísitcas é o navegador de classes que provê uma visão intuitiva das hierarquias e estruturas de classes. E no Project Manager muitas melhorias de usabilidade.
  • Algo muito legal nessa versão do Delphi é o suporte para aplicações Web principalmente para nós que desenvolvemos aplicações para web com outras tecnologias como PHP, .NET, etc, agora podemos desenvolver tudo com o Delphi 2009. Com os componentes VCL para Web podemos criar aplicações baseadas na tecnologia AJAX com um super visual de aplicações Web 2.0 com a mesma facilidade que desenvolvemos aplicações Desktops no Delphi. Para completar o Delphi 2009 provê total suporte para a nova tecnologia da Microsoft o Silverlight 2.0.
  • Visualização de toda a estrutura das nossas databases, com suporte para modelagem e projeto de databases na Nova edição do Delphi Architect. Tudo isso graças as parecerias que o Delphi possui com a maiores empresas de database como a MySQL, Sybase e Oracle.

Bom vamos ao que interessa :) o link para baixar a versão trial do Delphi é o seguinte:

http://cc.codegear.com/free/delphi

Existem outras formas de baixar utilizando os famosos compartilhadores de arquivos, embora não indico pois não é correto. Opções gratuitas temos o Lazarus e o Turbo Delphi.

Algo interessante que tem no youtube é um vídeo mostrando o que há de novo na IDE do Delphi 2009:

Bom estou baixando a minha versão do Delphi 2009 ainda ( mais de 1Gb :O ) e quando terminar de baixar vou começar a utilizar para fazer uns testes, etc… E com isso vou estar postando maiores informações.

Referêcias:

http://www.codegear.com/products/delphi/win32/features/

t+

categoriaDelphi, Delphi 2009 commento14 Comments datanovembro 19th, 2008
Read All

Dica : Cores Personalizadas no Delphi

By tresloukadu

Muitas vezes queremos trocar as cores de certos componentes e inclusive do próprio form no Delphi. Porém as cores que existem no Object Inspector não são muito legais ou não combinam uma com as outras. Pensando nisso o Delphi permite trocar as cores dos componentes através do código. Tudo isso com a ajuda de um componente chamado TColor. É muito fácil fazer a troca das cores, assim podemos deixar a nossa aplicação com um aspecto mais legal e bonito e inclusive podemos utilizar cores em hexadecimal do mesmo jeito que é feito no HTML.

Antes de mais nada eu quero indicar para todos se cadastrarem no site Kuler da adobe. Esse website permite você ter acesso a esquema de cores que combinam uma com a outra. Assim você nunca vai errar na ora de utilizar as cores na sua aplicação. Em adição a isso tudo você pode criar uma conta e com isso fazer os seus próprios esquemas de cores. Depois que você está com as cores escolhidas é só pegar o código em hexadecimal que o Kuler fornece e utilizar no Delphi. O endereço para o site Kuler é o seguinte:

kuler.adobe.com

Pelo o que andei verificando o Delphi não aceita cores com o código hexadecimal no formato HTML diretamente. Então para podemos utilizar as cores como no formato HTML temos uma função fornecida no site About que nos ajuda a realizar essa tarefa de colorir os componentes. O endereço do artigo é:

http://delphi.about.com/cs/adptips2001/a/bltip0301_5.htm

Bom vamos ver algo prático. O exemplo é bem simples, somente uns botões para trocar as cores do componente panel.

unit UniCores;

{
Sobre: Código de exemplo de como utilizar cores personalizadas.
Autor: Dicas Delphi – www.dicasdelphi.com.br
Data:  13/11/2008
}

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function HexToTColor(sColor : string) : TColor;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

//TCOlor – Componente do Delphi

//HexToTColor – Função que converte uma cor Hexadecimal
//no formato HTML para o formato utilizado em TColor.

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//Atenção: Verfique que a cerquilha # que é utilizada no HTML
//aqui ela não vai.
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Panel1.Color := TColor(HexToTColor(‘A1000A’));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Panel1.Color := TColor(HexToTColor(‘BDAF7B’));
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Panel1.Color := TColor(HexToTColor(‘CFD649′));
end;

{
Função fornecida pelo website
http://delphi.about.com/cs/adptips2001/a/bltip0301_5.htm
em 13/11/2008
}

function TForm1.HexToTColor(sColor : string) : TColor;
begin
Result :=
RGB(
StrToInt(‘$’+Copy(sColor, 1, 2)),
StrToInt(‘$’+Copy(sColor, 3, 2)),
StrToInt(‘$’+Copy(sColor, 5, 2))
) ;
end;

end.

Analisando esse código podemos ver que a linha que nos interessa é a seguinte:

Panel1.Color := TColor(HexToTColor(‘A1000A’));

Podemos ver nessa linha que o retorno da função HexToTColor está sendo enviado para o componente TColor. Outra coisa interessante é que o argumento na função HexToTColor é o valor em hexadcimal fornecida pelo site Kuler da Adobe.

O código para download do exemplo acima, juntamente com o executável está aqui:

http://www.dicasdelphi.com.br/wp-content/uploads/2008/11/teste_cores.rar

t+

categoriaDelphi, Tcolor commento2 Comments datanovembro 13th, 2008
Read All

Dica : Limpando o Lixo Gerado pelo Delphi

By tresloukadu

Quando criamos um projeto no Delphi e começamos a programar o Delphi gera uma série de arquivos. Alguns dos arquivos são de muita importância como o .pas, .dfm, etc… Mas junto com esses arquivos vitais o Delphi gera uma série de outros arquivos que acabam por ocupar mais espaço no nosso HD. Um desses arquivos é o .dcu que a cada nova compilação o Delphi gera um arquivo deste novo sobrescrevendo o antigo. Também temos os arquivos com a extensão .~?? que nada mais é do que uma cópia de backup dos arquivos que estamos modificando, e assim por diante. Para limpar esses arquivos de uma maneira bem legal, é só criarmos um arquivo .bat na pasta do nosso projeto com o seguinte conteúdo:

del *.dcu
del *.~??
del *.bak

Assim tudo o que precisamos fazer é dar dois cliques no nosso limpar_lixo.bat e ele faz a limpeza do lixo gerado no diretório para nós. Estou disponibilizando para download esse arquivo também, para quem quiser baixar.

http://www.dicasdelphi.com.br/wp-content/uploads/arquivos/limpar_lixo.rar

(Se o link não estiver funcionando, é só clicar com o botão direito em cima, e depois na opção salvar como).

t+

categoriaUtilitários commentoNo Comments datanovembro 12th, 2008
Read All

Dica : Depurando no Delphi

By tresloukadu

Muitas vezes quando a nossa aplicação apresenta algum comportamento estranho, trava ou algo simplesmente não sai como o esperado temos um erro de lógica. E os erros de lógica são mais sutis pois eles não são acusados pelo compilador. Muitas vezes esses erros são difíceis de achar, pensando nisso a IDE do Delphi apresenta um super conjunto de ferramentas para nos auxiliar a encontrar onde está o erro de lógica.

A técnica de ir linha a linha em uma aplicação procurando onde existe o erro é chamada de depuração. É comum também escutar a expressão debugar, esta expressão é a mesma coisa que depurar, a diferença é que debugar vem da palavra em inglês debugger. Mas tanto depurar quanto debugar são a mesma coisa.

Bom indo direto ao ponto vamos começar com um exemplo prático. Tudo o que precisamos fazer é adicionar um breakpoint no nosso código.

Debugando no Delphi

Debugando no Delphi

Como a imagem mostra em 2 (imagem ampliada) tudo o que precisamos fazer é dar um clique com o mouse na linha que queremos e automaticamente uma bolinha vermelha aparece (como na imagem ampliada mostrando o breakpoint).

Agora quando apertarmos F9 para compilar o nosso programa ele vai executar normalmente e no momento em que a execução do programa chegar na linha onde colocamos o nosso breakpoint o Delphi dá uma pausa na nossa aplicação e dá o foco para o ambiente de depuração do dele próprio.

Bom estamos no ambiente de depuração, o que podemos fazer agora? Uma das coisas legais é só deixarmos a seta do mouse sobre alguma variável (como é mostrado em 1) e automaticamente o Delphi exibe um hint como o valor da variável naquele momento da execução da aplicação. Outra opção é usarmos o Watch List onde podemos arrastar qualquer variável para ele e o mesmo fica monitorando cada variável, como é mostrado na seguinte imagem:

Utilizando o Watch List

Utilizando o Watch List

Fora a chance de trabalharmos com as variáveis o debugger do Delphi permite também depurarmos as procedures. Para isso é só colocarmos um breakpoint onde estamos chamando a nossa procedure e apertar o F9. Quando o Delphi chegar na linha onde está o breakpoint ele vai parar (do mesmo modo que foi feito na variável), ai nesse momento é só apertarmos o F7 e o Delphi nos levará para dentro da procedure que estamos chamando, e como isso podemos ver o que está ocorrendo dentro da procedure.

Para pararmos a depuração e continuar a executar o programa é só apertarmos o F9 e para matar a aplicação é só apertamos o atalho CTRL + F2.

Essas ferramentas fazem toda a diferença quando estamos procurando um bug no nosso aplicativo. Existem outras coisas que são possíveis fazer com o debugger mas a citadas aqui são as mais usuais.

t+

categoriaDebugger, Delphi commentoNo Comments datanovembro 12th, 2008
Read All

Dica : Teclas de Atalhos no Delphi

By tresloukadu

No Delphi existe muitas teclas de atalhos, mas a maioria nem chegamos a utilizar, principalmente quando estamos começando a aprender. Por isso ao invés de colocar uma lista imensa de teclas de atalhos, vou apresentar quais são as teclas utilizadas com maior frequência. Essas teclas facilitam muito o nosso trabalho pois acabam por tornar a tarefa de programar mais ágil. Bom vamos começar…

A tecla mais importante é o CTRL + S pois é utilizada para salvar o projeto :) . Após que ganhamos uma certa experiência na programação no Delphi o uso desse atalho se torna frequente e automático. Qualquer alteração que fazemos já estamos apertando CTRL + S, assim garantimos que o projeto está salvo, e se por ventura der uma queda de energia, não perderemos nada.

F12 – Chama o Code Editor, se torna mais útil ainda quando o nosso form está ocupando a tela toda.

F11 – Chama o Object Inspector, eu gosto de trabalhar com o Code Editor Full Screen e a mesma coisa se dá com o form, sendo assim quando preciso alterar a propriedade de algum componente no Object Inspector, é só apertar F11.

CTRL + Setas ( as setas para esquerda, cima, baixo, direita) – No form elas ajustam a posição dos dos componentes no form.

Shift + Setas ( as setas para esquerda, cima, baixo, direita) – No form elas alteram o tamanho do componente selecionado.

CTRL + F2 – Quando executamos o nosso aplicativo e por algum motivo ele trava não deixando fechar o mesmo, podemos apertar CTRL + F2 para matar e voltar para o Delphi.

CTRL + Shift + C – Essa tecla é meia complicadinha de apertar mais muito muito útil. Quando estamos na seção interfaces definindo a nossa procedure e apertamos esse atalho o Delphi já gera a procedure certinha para nós na parte do implementation. Como mostra o exemplo:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, LResources, Forms, Dialogs, StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

private
{ private declarations }

//*************************************************************

//Apertando CTRL + SHIFT + C, em cima dessa procedure

//*************************************************************

procedure MinhaProcedure(minha_var : string);

public
{ public declarations }
end;

var
Form1: TForm1;

implementation

{ TForm1 }

//*************************************************************

//Ao apertas o CTRL + SHIT + C essa procedura foi gerada automatica

//*************************************************************
procedure TForm1.MinhaProcedure(minha_var: string);
begin

end;

CTRL + Espaço – Essa tecla server para chamar o code completion, quando estamos digitando alguma procedure, variável, etc… e apertamos CTRL + Espaço ele já tenta completar o resto para gente. Muito útil, principalmente quando estamos em dúvida com o nome de alguma variável, pois assim ele já coloca a variável com o nome certo.

CTRL + Shift + Espaço – Quando estamos digitando alguma procedure e não sabemos o argumento que ela aceita, é só apertarmos esse atalho e o Delphi mostra os paramêtros aceitos pela mesma.

F1 – Essa tecla chama a ajuda do Delphi, muito útil, se estamos no Object Inspector e estamos em dúvida com alguma opção é só clicarmos nela e apertar o F1 e o Delphi traz a ajuda dessa opção. A mesma coisa se dá na edição de código só clicarmos na procedure que temos dúvida e apertar F1 e voila a ajuda aparece na nossa frente =).

CTRL + F – Abre a tela para pesquisar. Quando o nosso código está muito grande e queremos achar algo (uma variável por exemplo) esse atalho se torna super útil.

CTRL + Shift + Seta para cima – Quando estamos em uma procedure e queremos ver a definição da mesma na interface é só apertar esse atalho e o Delphi nos leva até lá, e para retornar para o ponto de onde saímos é só apertar CTRL + Shift + Seta para baixo.

Bom essas são as teclas mais usuais.

t+

categoriaDelphi, IDE commento2 Comments datanovembro 11th, 2008
Read All

Dica : Turbo Delphi e DBExpress com MySQL

By tresloukadu

Vou mostar nesse artigo como acessar o MySQL com o componente DBExpress que já vem junto por padrão na IDE do Turbo Delphi. Para realizar a conexão com o MySQL precisamos de duas DLL’s.

São elas:

  • dbxopenmysql50.dll (Driver para conectar no MySQL versão 5)
  • libmysql.dll (É interessante baixar a última versão).

Os links para baixar são:

Após baixar as duas dll’s você pode descompactar as duas na pasta do seu projeto (onde estão os seus arquivos .pas, .dfm e .exe).

Depois de executado esses passos temos que editar um arquivo .ini do DBExpress para que ele possa reconhecer o novo Driver para o MySQL 5 ( que no nosso caso é o dbxopenmysql50.dll ). É muito fácil temos que ir no seguinte caminho “C:\Arquivos de programas\Borland\BDS\4.0\dbExpress” e editar o seguinte arquivo dbxdrivers.ini.

(Se o caminho do arquivo apresentado aqui, não for o mesmo que o seu. Você pode utilizar o Localizar do windows para procurar onde está o dbxdrivers.ini no seu computador).

Na seção ” [Installed Drivers] ” adicione a seguinte linha ao final da seção: ” OpenMySQL50=1 “.

[Installed Drivers]
Interbase=1
MYSQL=1
ASA=1
OpenMySQL50=1

Agora precisamos colocar a seguinte seção no arquivo:

[OpenMySQL50]
LibraryName=dbxopenmysql50.dll
GetDriverFunc=getSQLDriverMYSQL50
VendorLib=libmysql.dll
HostName=localhost
Database=Nome_da_Minha_Database
User_Name=Login_do_Meu_Usuario
Password=Senha_do_Meu_Usuario

Pontos para observar nessa seção: em LibraryName estamos declarando o nome da DLL (driver) com o banco que baixamos, a mesma coisa estamos fazendo em VendorLib. As três últimas linhas são as linhas que você vai colocar os dados de acesso da sua database.

Tudo Pronto!! :)

Passos Adicionais:

Teste de Acesso ao MySQL no Turbo Delphi com o DBExpress
Primeiro vamos criar um novo projeto:

Novo projeto no Delphi

Novo projeto no Delphi

Após isso recomendo salvar o seu projeto hehe.

Vamos agora adicionar os seguintes componentes no nosso form.

  • dbExpress -> TSQLConnection
  • Data Access -> TDataSetProvider
  • dbExpress -> TSQLTable
  • Data Access -> TClientDataSet
  • Data Access -> TDataSource

E para testarmos vermos o resultado:

  • Data Controls -> TDBEdit

Configurações de Acesso a Database do MySQL

Para abrir o editor de configuração é só darmos 2 cliques em cima do componente TSQLConnection. Agora vamos cliar no botão com um “+” para criar uma nova conexão.

Criando uma nova conexão no DBExpress

Criando uma nova conexão no DBExpress

Escolhemos o Driver OpenMySQL50 e informamos o nome de nossa conexão.

Agora temos que entrar com os dados de acesso ao banco de dados, como segue a imagem de exemplo:

Configurando o DBExpress e Testando a Conexão

Configurando o DBExpress e Testando a Conexão

Como observado no passo 5 da imagem, podemos clicar no botão “v” e verificar se a conexão já está funcionando. Se der algum erro nessa parte, eu recomendo reler este artigo novamente para procurar onde está o erro.

Se retornar sucesso podemos clicar em OK e retornar para o nosso form. Uma dica legal nessa parte do artigo é clicarmos no nosso objeto TSQLConnection e no Object Inspector na propriedade LoginPrompt trocarmos de true para false. Com isso o Turbo Delphi não vai pedir para digitarmos a senha toda hora.

Depois dos passos acima executados, vamos setar as configurações nos outros componentes para acessarmos a Database. Precisamos de muita atenção agora.

Clicar no componente TSQLTable e no object inspector na propriedade SQLConnection selecionar SQLConnection1 e em TableName selecionar alguma tabela do nosso banco de dados.

Agora vamos clicar no componente TDataSetProvider e na propriedade DataSet vamos selecionar a opção SQLTable1.

No componente TClientDataSet vamos setar duas propriedades, a primeira é ProviderName vamor selecionar a opção DataSetProvider1 e na propriedade Active vamos selecionar a opção true.

Já no compoente TDataSource vamos na propriedade DataSet e selecionamos a opção ClientDataSet1.

Agora por último vamos exibir alguma informação da database no nosso componente DBEdit1. Na propriedade DataSource vamos selecionar a opção DataSource1 e na propriedade DataField vamos selcionar alguma coluna da tabela que informamos no componente TSQLTable. Após selecionar o nome da coluna o dado já vai aparecer no DBEdit. :)

Após isso podemos dar um F9 e compilar o nosso projeto. Ou ainda podemos colocar os outros componentes da Seção Data Controls no nosso formulário. O processo é basicamente igual ao que fizemos no nosso DBEDit.

categoriaComponentes, DBExpress, Delphi, MySQL commento1 Comment datanovembro 10th, 2008
Read All