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:
- Clique aqui e baixe a última versão do Zeos.
- 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.
- 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
- 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).
- Compile os arquivos na seguencia:
- ZCore100.bpl
- ZPlain100.bpl
- ZParseSql100.bpl
- ZDbc100.bpl
- ZComponent100.bpl
- ZComponentDesign100.bpl
- Clique no ZComponentDesign100.bpl e de install.
- Pronto!
Maiores detalhes clique aqui para uma documentação mais detalhada. Depois de instalado você terá os seguintes componentes:
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:
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:
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:
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:
{
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+
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:
{
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:
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+
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:
- http://www.justsoftwaresolutions.co.uk/files/dbxopenmysql5_dll.zip
- http://www.dll-download-system.com/dlls/libmysql.zip
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 “.
Interbase=1
MYSQL=1
ASA=1
OpenMySQL50=1
Agora precisamos colocar a seguinte seção no arquivo:
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:
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.
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:
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.




janeiro 9th, 2010


