Dica : Refatorar seu código Delphi

By admin

Bom essa é uma das super dicas que tem que ser dada. Existe um serviço na web para refatoração de códigos ou como no inglês code refactoring que possibilita você publicar o seu código para que outras pessoas vejam e ajudem você no processo de refatoração. Em adição, outros serviços são prestados como code highlighting para publicação em blogs e inclusive nos comentários. Muitas vezes quando temos um código feito em um Delphi com uma versão mais velha ou se no passado fizemos um código um tanto fora dos padrões e queremos reutilizar o mesmo, a refatoração é muito importante.

Em certas empresas existe muita pressão dos gerentes de projetos em cima dos programadores para concluirem o projeto em um tempo muito curto e com isso acaba ocasionando que o código acaba saindo sem qualidade. Pois sou defensor da seguinte lei que pretendo discutir ela em posts subsequentes, não sei se estou errado ou certo, mas criei a seguite lei para a programação em qualquer liguagem: A qualidade da aplicação é diretamente proporcional ao tempo investido. Sei que estou generalizando nesta idéia mas francamente isso é o que ocorre em vários lugares. Então quando fizemos algo as pressas para entregar algo pro cliente impaciente e depois paramos com calma para melhorar o código, o serviço deste website vai ser de grandíssima ajuda na refatoração. Principalmente para os programadores que trabalham sozinhos nos seus home offices.

Logotipo do website refactormycode.com

Logotipo do website refactormycode.com

Como este blog visa também ser para usuário leigos e avançados vou colocar aqui em linhas gerais o que vem a ser refatoração ou refactoring de acordo com o material disponível na wikipedia. “Refatoração (do inglês Refactoring) é o processo de modificar um sistema de software para melhorar a estrutura interna do código sem alterar seu comportamento externo.” Imagine você publicar uma parte de seu código em um website e outras pessoas vão poder opinar e melhorar o mesmo sem alterar o resultado final. Isso é muito bonito! Existem inúmeras outras vantagens e você deve conferir este serviço.

A seção dos códigos em Delphi está no seguinte endereço: http://refactormycode.com/refactorings/recent/delphi

O endereço oficial é: www.refactormycode.com

Já a url reduzida do Refactor my Code para você enviar para seus amigos ou enivar por celular é: url20.ca/s1976

Bom fica esta dica para facilitar a refatoração dos códigos em Delphi. Um serviço muito bom.

URL reduzida desta dica: url20.ca/k2003

t+

categoriaRefatoração commento2 Comments datafevereiro 23rd, 2009
Read All

Dica : Nova Comunidade do Dicas Delphi no Orkut

By admin

Esta semana foi criado no Orkut a comunidade do blog Dicas Delphi. A comunidade visa manter uma maior integração entre os leitores do blog para que eles possam participar do Dicas Delphi também. Assim como no blog a comunidade foi feita para ser “gerenciada” pelos próprios usuários e leitores que através de críticas e sugestões poderão definir como querem as coisas.

Comunidade do Dicas Delphi no Orkut

Comunidade do Dicas Delphi no Orkut

A comunidade também tem como um diferencial a imparcialidade. Por ser um canal aberto para todos os desenvolvedores e interessados em Delphi. Ela tem espaço para a divulgação de empresas, projetos, parcerias, produtos e muito mais. Além de divulgar as dúvidas e soluções que surgem ao se desenvolver uma aplicação Delphi.

Além dos posts livres, a comunidade tem os seguintes posts fixos:

  • INFORMAÇÕES IMPORTANTES ANTES DE POSTAR
  • BOLSA DE EMPREGOS
  • ANÚNCIOS DE PRODUTOS
  • ANÚNCIOS DE EMPRESAS E SERVIÇOS
  • ANÚNCIOS DE PROJETOS E PARCERIAS

Os tópicos acimas são os primeiros, mas assim que os leitores começarem a participar e opinar poderemos colocar novos tópicos.

O link da comunidade é:

http://www.orkut.com.br/Main#Community.aspx?cmm=55165548

O link especial reduzido da comunidade para você divulgar para seus amigos ou enviar por celular é o seguinte: url20.ca/delphi

Bom fica aí mais esta excelente dica e novidade desta comunidade para aumentar muito mais a sinergia entre toda a Comunidade Delphi Brasileira.

URL reduzida desta dica: url20.ca/r2007

t+

categoriaNovidades commentoNo Comments datafevereiro 21st, 2009
Read All

Dica : Dia do Desenvolvedor Delphi 2009

By admin

O Dia do Desenvolvedor Delphi (tradução livre) ou Delphi Developer Day 2009 neste ano acontecerá em dois dias e em duas cidades diferentes. O primeiro encontro de dois dias será em Washington DC nos dias 30 e 31 de Março. Já o próximo encontro será em Chicago nos dias 2 e 3 de Abril. O evento deste ano contará com grandes figuras do mundo Delphi como Marco Cantù e Cary Jensen.

Logo do Delphi Developer Day 2009

Logo do Delphi Developer Day 2009

Alguns do temas abordados este ano serão:

E muitos outros temas interessantes que podem ser conferidos na lista completa do evento no seguinte endereço: http://url20.ca/m2004

O endereço oficial do Delphi Developer Day 2009 para quem quer conhecer mais ou se inscrever é: http://www.delphideveloperdays.com/

Esta aí uma grande oportunidade para ficar antenado nas novidades do mundo Delphi.

URL reduzida desta dica: url20.ca/k1992

t+

categoriaDelphi, Eventos commentoNo Comments datafevereiro 20th, 2009
Read All

Dica : Visualizando HTML no Componente Memo

By admin

Nesta dica vamos ver como acessar um website através do Delphi e exibir o código HTML do mesmo, no componente TMemo. Para este exemplo está sendo utlizado o componente TWebBrowser que vai acessar o website e o código fonte em si. É possível fazer muitas coisas interessantes com o TWebBrowser até mesmo criar um navegador de Internet. Um detalhe adicional é que o componente TWebBrowser é baseado no Internet Explorer e a sua documentação está no site de desenvolvedores da Microsoft no seguinte endereço: url20.ca/z1979 vale a pena dar uma conferida e consultar tudo que é possível fazer.

Vamos ao código do nosso visualizador de HTML:

unit UniMainBrowser;

{
Sobre: Código de exemplo para mostrar como exibir e ler um documento HTML
de um website.

Autor: Dicas Delphi
Data:  19/12/2008
}

interface

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

type
TfrmMain = class(TForm)
WebBrowser1: TWebBrowser; //utilizando o componente TWebBrowser
MemoCodFonte: TMemo;
Panel1: TPanel;
edtUrl: TEdit;
btnNavegar: TButton;
btnExibirCod: TButton;
Label1: TLabel;
procedure btnNavegarClick(Sender: TObject);
procedure btnExibirCodClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMain: TfrmMain;

implementation

{$R *.dfm}

{Adiciona o código fonte de um website no memo}
//===================================================================
procedure TfrmMain.btnExibirCodClick(Sender: TObject);
//===================================================================
var
documentoAtivo : variant;
begin

//Acessando a interface do site aberto
documentoAtivo := WebBrowser1.Document;

//Adicionando o código HTML ao MEMO
MemoCodFonte.text := documentoAtivo.Body.OuterHTML;

end;

{Acessa o website}
//==================================================================
procedure TfrmMain.btnNavegarClick(Sender: TObject);
//==================================================================
begin

//Verifica se foi informado alguma URL
if edtUrl.Text <> then
begin

//Acessando o website informado no edit
WebBrowser1.Navigate(edtUrl.Text);

//Colocando a ampulheta do windows só pra saber que está executando o
//programa
Screen.Cursor := crHourGlass;

//Enquanto o site não é carregado totalmente fica no loop até o estado
//do ReadyState for ‘completo’
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
begin
Application.ProcessMessages;
Sleep(0);
end;

//Site foi carregado, tira a ampulheta e coloca a seta no mouse novamente
Screen.Cursor := crDefault;

//Site foi carregado, libera o botão de vizualizar o código fonte
btnExibirCod.Enabled := true;

end

//Se nenhuma URL for informada dá uma mensage de erro, e dá focus no edit
else
begin

//Exbindo a mensagem
ShowMessage(‘Entre com uma URL’);

//Setando o focus no edit
edtUrl.SetFocus;
end;

end;

end.

A parte que estamos acessando o código do website e adicionando ano componente TMemo é na seguinte linha:

MemoCodFonte.text := documentoAtivo.Body.OuterHTML;

O código deste exemplo como sempre foi simplicado, mas existem coisas interessantes como no seguinte trecho:

//Enquanto o site não é carregado totalmente fica no loop até o estado
//do ReadyState for ‘completo’
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
begin
Application.ProcessMessages;
Sleep(0);
end;

Onde é dado um loop para verificar se o website foi totalmente carregado ou se ele está ainda fazendo ainda o download do conteúdo.

Segue o pacote com o executável e o código fonte para baixar:

http://www.dicasdelphi.com.br/wp-content/uploads/2008/12/vercodigosite.rar

URL reduzida desta dica: url20.ca/m1986

t+

categoriaComponentes, Delphi, TMemo, TWebBrowser commento7 Comments datadezembro 19th, 2008
Read All

Dica : Do Pascal ao Delphi

By admin

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 admin

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 commento7 Comments datadezembro 15th, 2008
Read All

Dica : Adicionar itens no componente TListBox

By admin

O componente TListBox nada mais é que um componente para exibir um conjunto de informações em uma lista com barra de rolagem. Este componente permite fazer a seleção de somente um único ítem ou de vários itens ao mesmo tempo. O TListBox é um dos componentes descendentes da classe TControl que possui mais de 70 componentes descendentes,  tais como: TBitBtn, TButton, TCheckBox, TColorDialog, TComboBox, TForm, TFontDialog, TGroupBox, THeader, TImage, TLabel, TListBox, TMainMenu e TMediaPlayer, entre outros.

Podemos  fazer coisas muito legais com o TListBox inclusive colocar imagens. Nessa dica irei mostrar como adicionar itens ao ListBox através do código.

Segue o código de exemplo:

unit UniTeste;

{
Sobre: Código de exemplo para mostrar como adicionar valores no listbox
através do código.

Autor: Dicas Delphi
Data:  05/12/2008
}

interface

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

type
TForm2 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
//Declarando uma variavel string
itemNoList : string;
begin

//Adicionando a data e horario atual a variavel.
//
//A função DateTimeToStr converte o componente
//Now para string
//
itemNoList := DateTimeToStr(Now);

//Aqui estamos adicionando a data e horario
//armazenado na variável itemNoList em nosso
//listbox
ListBox1.Items.Add( itemNoList );

end;

end.

A linha que nos interessa neste código é a seguinte:

ListBox1.Items.Add( itemNoList );

Esta instrução diz para adicionar um item (o valor da variável itemNoList ) no nosso componente ListBox1. E no exemplo que foi preparado a cada clique do mouse um novo item é adicionado ao componente TListBox programaticamente.

http://www.dicasdelphi.com.br/wp-content/uploads/2008/12/testelistbox.rar

URL reduzida deste artigo: url20.ca/p1978

t+

categoriaComponentes, Delphi, TListBox commento2 Comments datadezembro 5th, 2008
Read All

Dica : Disponível para Download Delphi 2009

By admin

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 commento11 Comments datanovembro 19th, 2008
Read All

Dica : Cores Personalizadas no Delphi

By admin

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 commento1 Comment datanovembro 13th, 2008
Read All

Dica : Limpando o Lixo Gerado pelo Delphi

By admin

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