Instalando o ZeosLib no Turbo Delphi

By admin

O ZeosLib é um suite de componentes para você ter uma conexão nativa com banco de dados, ou seja, uma conexão sem drivers auxiliares como o ODBC. Isso entre outras coisas deixa seu sistema muito mais rápido e agiliza na fase de desenvolvimento. Aqui vamos ver como instalar no Turbo Delphi, porém não é muito diferente de outras versões.

Instalação do ZeosLib:

  1. Clique aqui e baixe a última versão do Zeos.
  2. Descompacte o ZeosLib, e cole a pasta no caminho “C:\Arquivos de programas\Borland\BDS\4.0\lib” o path ficará C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable, gosto de deixar todos os componentes e bibliotecas aqui nesta pasta lib do Turbo Delphi por questões de organização, mas você pode colocar em outra pasta se quiser.
  3. Dentro do Turbo Delphi vá em Tools > Options > Library – Win32 > Library Path. Clique no  botão com “…” e ao abrir a tela do Library Path adicione os seguintes diretórios:
    • C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\component
    • C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\core
    • C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\dbc
    • C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\parsesql
    • C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\plain
  4. Entre no Turbo Delphi, clique em abrir e acesse a pasta: C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\packages\delphi10\ZeosDbo.bdsgroup (Obs: estou usando o package para o Delphi 10 pois foi o que ficou melhor compatível).
  5. Compile os arquivos na seguencia:
    • ZCore100.bpl
    • ZPlain100.bpl
    • ZParseSql100.bpl
    • ZDbc100.bpl
    • ZComponent100.bpl
    • ZComponentDesign100.bpl
  6. Clique no ZComponentDesign100.bpl e de install.
  7. Pronto!

Maiores detalhes clique aqui para uma documentação mais detalhada. Depois de instalado você terá os seguintes componentes:

zeos-lib-delphi

categoriaZeos commentoNo Comments datajaneiro 9th, 2010
Read All

Instalando o Componente EmbeddedWB no Turbo Delphi

By admin

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:

EmbeddedWB-Embedded-Web-Browser

categoriaEmbeddedWB commentoNo Comments datajaneiro 9th, 2010
Read All

Utilizando DBExpress de uma Maneira Fácil

By admin

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:

[NOMESECAOCONFIGORACLE]
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”:

ConexaoDBX: TConexaoDBX;
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.

//No private:
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:

ddconexaoDBX.ConexaoDBXInit(ConexaoDBX,  nil,
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:

procedure TForm2.btnProcurarClick(Sender: TObject);
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:

procedure TForm2.btnincluirClick(Sender: TObject);
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, :P _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:

programador@marciofcruz.com

categoriaComponentes, DBExpress commento2 Comments datamaio 4th, 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 : 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 : Turbo Delphi e DBExpress com MySQL

By admin

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