Instalando o Componente EmbeddedWB no Turbo Delphi
By tresloukadu
Já pensou criar o seu próprio navegador ou utilizar funcionalidades de um browser? Você pode fazer isto como o componente EmbeddedWB. A dica aqui é para a instalação no Turbo Delphi mas para a instalação no Delphi não muda muito também. Para baixar este componente clique aqui.
Confira os passos abaixo para instalação:
- Copiar o conteúdo do arquivo para a pasta Lib do Delphi ( C:\Arquivos de programas\Borland\BDS\4.0\lib )
- Adicionar este caminho no LIB (Tools > Options > Library – Win32 > Library Path) :
C:\Arquivos de programas\Borland\BDS\4.0\lib\EmbeddedWB_D2005\Source
C:\Arquivos de programas\Borland\BDS\4.0\lib\EmbeddedWB_D2005\Source\Lib - Abra o arquivo EmbeddedWebBrowser_D2006.bdsproj
- Dê BUILD ALL e, logo em seguida, INSTALL. Uma mensagem aparecerá dizendo que os componentes foram instalados
- Feche o projeto, saindo sem salvar.
Após instalado você terá os seguintes componentes:
GExperts – Aumente a sua Produtividade
By Elton Conz
O GExperts é um conjunto de ferramentas que tem por finalidade aumentar o índice de produtividade dos programadores. Eu utilizo este set de ferramentas a algum tempo, e posso dizer que ele facilita muitas tarefas do dia-a-dia de quem programa.
Trata-se de uma ferramenta Open Source e disponível para download no site www.gexperts.org. A instalação é bem simples. Basta executar o instalador, aqueles no estilo Next, Next, Finish. Existem versões para D-6, D-7, D-8, D-2005, D-2006, D-2007, D-2009 e D-2010.
Após a instalação o menu do GExperts ficará disponível no seu Delphi, como mostrado na imagem a seguir. Você pode acessá-lo tanto através do menu como através de teclas de atalho.

GExperts - Menu
A seguir, mostrarei brevemente alguns dos recursos do GExperts.
1. Code ProofReader
É sempre cansativo ter de ficar digitando o nome das funções que você usa com grande frequencia. Ainda mais se elas tiverem nomes extensos. Basta declarar as regras do tipo: Quando for digitado “mfc” então substitua por MinhaFuncao(_); para que você precise digitar menos e com isso ganhar tempo.

2. Set Tab Order
Uma forma simples e visual de organizar a ordem por onde o cursor irá passar na tela.

3. Clean Directories
Seu projeto esta muito grande? Que tal apagar os arquivos temporários do seu projeto de forma extremamente simples? …

Resumo
O Gexperts possui uma grande quantidade de recursos para facilitar suas tarefas de programador. Além de ser uma ferramenta Open Source, ela possui variações para praticamente todas as versões do Delphi, o que indica que muita gente a utiliza. Não consegui, e nem conseguiria, mostrar todas as funcionalidades do GExperts neste post, mas a idéia é dar uma noção do que este set de ferramentas é capaz de fazer para te ajudar. Como usuário do GExperts, recomendo a todos a sua adoção. Agiliza, e muito, a tarefa de programar.
Aprenda a Criar um Programa Paint Parecido com o do Windows
By tresloukadu
Artigo Enviado por Marcelo Tropicore
Aqui segue um exemplo de um programa inspirado no Paint do Windows .Nós vamos usar dois componentes Image da paleta Additional para representar a nossa área de desenho. Esse componente assim como todos os componentes visuais do Delphi tem uma propriedade chamada “Canvas” ,é essa propriedade que vai determinar a aparência dos componentes visuais como um Edit, Label, Image etc… Dentre as propriedades da Classe TCanvas umas das principais são: Brush, CanvasOrientation, ClipRect, CopyMOde, Font, Handle, Pen, PenPos, Pixels, Ellipse, FillRect, LineTo, MoveTo, Rectangle e uma porção de outras propriedades.
Vamos declarar duas variáveis globais do tipo TBitmap com os nomes Backbuffer e backbuffer2, essas variáveis vão gerar a nossa área de desenho (é claro que é preciso declarar outras variáveis globais para esse exemplo rodar direito,qualquer dúvida é só dar uma olhada no código fonte
) . Eu coloquei os dois Images dentro de um ScrollBox (paleta Additional) para poder redimensionar os Images sem interferir no tamanho do Form. Agora que começa a parte boa, hora de por a mão na maça, dentro do OnCreate do Form faça o seguinte.
Para podermos usar os Backbuffers temos que criar com backbuffer:= TBitmap.Create; dimensionamos ele no mesmo tamanho do Scrollbox . O backbuffer.Canvas.Brush.Color:= ClWhite; é para determinar a cor de preenchimento do backbuffer. Na parte Image1.Canvas.FillRect(Rect(0,0,Image1.width, Image1.height)); vamos Limpar toda a área do Image e finalmente mandamos o backbuffer para o Image com : Image1.Picture.Assign(backbuffer);
Vamos repetir o mesmo procedimento para o backbuffer2 com algumas coisas adicionais.Aqui nós determinamos qual vai ser a cor transparente do backbuffer2 que vai pro Image2, e em muitas vezes o Image2 vai ficar sobre o Image1 como pode ver no evento de alguns botões das ferramentas com o comando Image2.BringToFront;. Assim quando o Image2 ficar sobre o Image1 vai ser possível ver o Image1 que está por baixo. Aqui no caso eu usei a cor branca.
Inicialize as outras variáveis como no exemplo do código fonte.
ferramenta:= ‘lápis’;
StatusBar1.Panels[1].Text:= ‘Lapis’;
Shape1.Brush.Color:= cor;
E por último vamos liberar as variáveis backbuffer e backbuffer2 da memória, por enquanto não precisamos mais delas ,pois já foram carregadas para os dois Images, portanto vamos trabalhar com eles.
As ferramentas que vão utilizar o Image2 são aquelas que desenham as linhas, retângulos e elipses. Dentro do Image2 vamos utilizar três eventos , o OnMouseDown, OnMouseMove e OnMouseUp. O componente Image é como um plano cartesiano, se você não matou as suas aulas de matemática sabe do que eu estou falando hehehe, ele tem duas dimensões , o X e o Y.
No OnMouseDown nós vamos pegar a posição X e Y que o usuário clicou dentro do Image2. Dai fazemos o seguinte, Image2.Canvas.MoveTo(X,Y); , com isso nós movemos a posição do ponto de partida de uma linha por exemplo ,não começamos a desenhar ainda só dizemos a propriedade Canvas do Image onde vai começar a linha.
No OnMouseMove nós usamos as variáveis X e Y do OnMouseDown e criamos uma linha (se o usuário selecionou essa ferramenta)dessa posição até a posição atual no OnMouseMove.
Image2.Canvas.MoveTo(posX2,posY2);
Note que antes de usar esse comando eu usei o Image2.Canvas.FillRect(Rect(0,0,Image2.Width,Image2.Height)); Para limpar o que já tinha sido desenhado antes, se não fizermos isso o Image2 vai desenhando um monte de linha uma atrás da outra, e fica um monte de linha desenhada no Image. Por isso eu usei dois Images , um para guardar o desenho e o outro para mostrar só o traçado da linha , se eu tivesse usado o Canvas.FillRect(); no Image1 a cada evento do OnMouseMove seria apagado todo o desenho principal.
No OnMouseUp quando o usuário solta o botão do mouse , o programa já tem a posição inicial e final da linha e faz o desenho no Image1 que é o desenho principal.
begin
Image1.Canvas.MoveTo(posX2,posY2);
Image1.Canvas.LineTo(posX,posY);
posX3:= x;
posY3:= y;
end;
Algumas ferramentas não utilizam o Image2 pois desenha direto no Image1 que são a ferramenta Lápis, Borracha, Spray e os baldes de tinta. No caso dos baldes de tinta eu não consegui achar nenhum comando que conseguisse fazer igual ao do Paint do Windows, então tive usar uma lógica meio maluca mesmo pra conseguir chegar o mais peto que eu pude, se alguém sabe como fazer isso por favor me diga como hehehe.
Bom é isso aí pessoal , eu passei o básico de algumas funcionalidades do programa dentro da propriedade Canvas do componente Image, o programa tem outras funções bem legais como abrir imagens e poder editar, salvar e também redimensionar o tamanho da área de desenho.
Se alguém quiser entrar em contato para tirar dúvidas é só mandar no meu email, marcelo_tropicore@hotmail.com
Baixe os Fontes Aqui: paint.
“Uma mente que se abre para uma nova idéia nunca voltará ao seu tamanho original”.
Utilizando DBExpress de uma Maneira Fácil
By tresloukadu
Artigo enviado por: Marcio F. Cruz
DBExpress, segundo meus testes, é a melhor tecnologia para comunicação com banco de dados. Mas, infelizmente, exige a configuração de vários parâmetros e manipulação de vários componentes visuais.
Pensando neste problema, resolvi criar um componente que contém um conjunto de classes, para facilitar a vida do programador em trabalhar com esta maravilhosa tecnologia.
Procurei criar as classes da melhor maneira possível, com os nomes dos métodos e propriedades o mais parecido possível com o que conhecemos e utilizamos em BDE, Zeos, ADO e mesmo no DBExpress.
Neste artigo, descreverei como instalar e fazer uma aplicação simples. Espero que seja útil para a comunidade e, talvez, os pacotes e classes de suas regras de negócio a utilizem.
Passo 1
Download http://sourceforge.net/projects/dddbxfacil/
Este pacote comtém o componente dddbxfacil com suas classes, bem como uma aplicação simples para utilizá-la.
Passo 2
Criar arquivo de configuração. Este arquivo, já está contido no pacote de exemplo e, ele contém a estrutura que é usada pelo dbconnections.ini e, serve para indicar os parâmetros para conexão ao banco de dados. Eu não costumo deixar o login e password contido neste arquivo mas, nada impede de se inserir nele.
A configuração que defini, foi para o Oracle mas, pode ser para qualquer banco que o Dbexpress é compatível que, acho que são todos:
CONNECTIONNAME=OracleConnection
GETDRIVERFUNC=getSQLDriverORACLE
VENDORLIB=oci.dll
LibraryName=dbxora30.dll
DriverName=Oracle
HostName=
Database=
User_Name=
Password=
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Compressed=False
Encrypted=False
Passo 3
No uses de sua unit, vamos inserir as seguintes units:
DB, DBTables, ddcomumDBX, ddconexaoDBX, ddsqlDBX, ddproviderDBX.
Passo 4
Vamos no private e, colocar as seguintes “variáveis”:
ProviderDBX: TProviderDBX;
SqlDBX: TsqlDBX;
Passo 5
Este passo é opcional mas, para mostrar melhor o funcionamento da classe, criaremos um método chamado MeuDataChange, novamente apontar ele.
procedure MeuDataChange(Sender: TObject; Field: Tfield);
//No implementation
procedure TForm2.MeuDataChange(Sender: TObject; Field: TField);
begin
// Nao é necessário colocar teste para ver se tabela tá aberta, DisableControls, etc…
grbTesteGrid.Caption := ‘Testando o grid. Agora são ‘+
FormatDateTime(‘dd/mm/yyyy hh:nn:ss’, now);
end;
Passo 6
Precisamos instanciar as variáveis que criamos no private. Para isso, criei procedimentos para facilitar isso. No formShow, colocaremos o seguinte código:
IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName))+‘configuracao.ini’,
‘NOMESECAOCONFIGORACLE’);
ConexaoDBX.Login := ‘usuario’;
ConexaoDBX.Senha := ‘senha’;
ddproviderDBX.ProviderDBXInit(ProviderDBX,
ConexaoDBX,
DBGrid1,
‘ROWID’,
true,
MeuDataChange);
ddsqlDBX.SqlDBXInit(SqlDBX, ConexaoDBX);
Passo 7
Exemplo de código para executar busca no banco de dados:
var
Retorno: TProviderRetorno;
begin
ConexaoDBX.ConectarSeDesconectado;
ProviderDBX.ClearAll;
with ProviderDBX, ProviderDBX.LinhaSQL do
begin
Add(‘SELECT * FROM TABELA’);
Retorno := OpenDQL;
end;
end;
Passo 8
Exemplo de evento de inclusão:
var
iProximoCodigo: integer;
begin
ConexaoDBX.ConectarSeDesconectado;
// Pegar Próximo Codigo
with SQLDBX do
begin
setLinhaSQL(‘SELECT MAX(CODIGO) PROXIMO FROM TABELA’);
OpenDQL;
iProximoCodigo := SQLDQl.FieldByName(‘PROXIMO’).AsInteger+1;
end;
ConexaoDBX.Transacao_Abrir;
try
// Incluir
with SqlDBX do
begin
ClearAll;
with LinhaSQL do
begin
Add(‘INSERT INTO TABELA (CODIGO, DESCRICAO)’);
Add(‘VALUES’);
Add(‘(:P_CODIGO,
_DESCRICAO)’);
end;
AddParam(ftInteger, ‘P_CODIGO’, iProximoCodigo);
AddParam(ftString, ‘P_DESCRICAO’, ‘nome ‘+IntToStr(iProximoCodigo));
ExecDML;
end;
ConexaoDBX.Transacao_Commit;
except
on E:Exception do
begin
ConexaoDBX.Transacao_RollBack;
ShowMessage(E.Message);
end;
end;
end;
No arquivo que é baixado do sourceforge, este exemplo já está contido.
Qualquer dúvida, podem me escrever para meu e-mail que eu respondo:
TMS Smooth Controls Pack para Delphi 2009 e C ++ Builder 2009
By tresloukadu
Olá, a Embarcadero está disponibilizando gratuitamente o TMS Smooth Controls Pack para todos os usuários registrados do C++ Builder e Delphi 2009. O TMS é um pack com 22 componentes que permitem a criação de interfaces ricas em Delphi, incluindo animações e estilos do Microsoft Office e do iPhone. Vale a pena conferir!
- TMS Smooth Controls Pack
- Interface feita com os componentes do TMS Smooth Controls Pack
- Interface feita com os componentes do TMS Smooth Controls Pack
- Interface feita com os componentes do TMS Smooth Controls Pack
Para quem está interessado o link para pegar o TMS Smooth Controls Pack é o seguinte:
http://latam.embarcadero.com/br/delphi2009tms/
Já a URL reduzida é a seguinte: url20.ca/bexe
Endereço reduzido desta dica: url20.ca/yefe
t+
Dica : Delphi Webinar – Porque migrar para Delphi 2009
By tresloukadu
Mais uma dica para os interessados no Delphi 2009. A embarcadero está promovendo um webinar gratuito mostrando as razões para migrar para o Delphi 2009.

Porque migrar para o Delphi 2009?
Segue a descrição do evento:
“A Embarcadero Technologies preparou pra você que ainda não migrou para Delphi 2009 um evento online para tirar todas as suas dúvidas.
Efetuando seu registro, você garante no mínimo 30% de desconto na compra de Delphi, RAD Studio, C++ Builder e InterBase, desconto válido para novas licenças e atualização.
Participe do evento online gratuito “Razões para migrar” e conheça todas as novidades que vão ajudar ainda mais o desenvolvimento de seus sistemas.
Serão 3 horas na prática de novos recursos incorporados ao Delphi desde a versão 7, como: novidades no IDE, linguagem, VCL, documentação, banco de dados, modelagem e muito mais.
Para participar, efetue o seu registro agora mesmo.”
O link para os interessados que queriam participar desse interessante Webinar é: https://www124.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=991mhh5r2rs7j70h
Vale a pena participar, para os interessados não esqueçam de enviar esta dica para outros programadores Delphi também. Pois quanto mais pessoas paticiparem maior será a sinergia entre a comunidade Delphi brasileira.
URL reduzida desta dica: url20.ca/adeq
t+
Dica : Migrar do Delphi 7 para o Delphi 2009
By tresloukadu
Dica quentíssima no site da Rede de Desenvolvedores da Embarcadero tem um documento de 60 páginas listando todas as diferenças desde o Delphi 7 até o Delphi 2009. Então se você está com dúvidas para baixar o Delphi 2009 por ser um lançamento da Embarcadero vale a pena conferir este documento e consultar todas as diferenças entre o Delphi 7 e o Delphi 2009. É bom isso também pois quando você realizar um upgrade e abrir os seus projetos antigos no Delphi 2009 você não tenha surpresas não muito legais, e se caso você tiver vai ser mais fácil encontrar solução para o problema de troca da versão 7 para a versão 2009.

Preview da Rede de Desenvolvedores da Embarcadero
O endereço para baixar este excelente documento é: http://cc.codegear.com/Item/26707 já a URL reduzida desta página se caso você quer enviar para os seus amigos é a seguinte: url20.ca/eked
Essa é uma leitura essencial para todos que pensam em migrar para o Delphi 2009.
URL reduzida desta dica: url20.ca/inix
t+
Dica : Refatorar seu código Delphi
By tresloukadu
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
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+
Dica : Dia do Desenvolvedor Delphi 2009
By tresloukadu
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
Alguns do temas abordados este ano serão:
- Guia para os Desenvolvedores Delphi 2009
- Criando Aplicações Amigáveis para o Windows Vista Com Delphi 7 e 2009
- Desenvolvendo com Datasets Desconectados
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+
Dica : Visualizando HTML no Componente Memo
By tresloukadu
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:
{
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:
O código deste exemplo como sempre foi simplicado, mas existem coisas interessantes como no seguinte trecho:
//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+



janeiro 9th, 2010








