• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Criando uma aplicação de Banco de Dados

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Este tutorial guiará você através da criação de um programa que navegará num banco de dados sobre a vida marinha. Depois de colocar acesso para o Banco de Dados, você poderá escrever um evento que abre uma caixa de diálogo padrão Salvar Como (standard Save As dialog box), permitindo que você escreva informações do Banco de Dados para um arquivo.



Nota: Este tutorial é somente para as versões Professional e Enterprise. Ele monta um acesso a Banco de Dados que requer características não disponíveis na versão do C++Builder Personal.





Iniciando uma nova aplicação





Antes de começar uma nova aplicação, crie uma pasta para guardar os seus arquivos. (Também verifique se você copiou o exemplo arquivo database em seu diretório ...\Borland Shared\Data quando você instalou o C++Builder.)



1 Crie uma pasta chamada Marine no diretório Projects do diretório principal do C++Builder.



2 Inicie um novo projeto.



Se algum outro projeto estiver aberto no momento, escolha File|New Application para criar um novo projeto.



3 Escolha File|Save All para salvar todos os arquivos em disco. Quando a caixa de diálogos Save aparecer, navegue para sua pasta Marine e salve cada arquivo usando o nome default.



Depois você pode salvar o seu trabalho em qualquer momento escolhendo File|Save All.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Adicionando objetos ao form





O Component palette representa componentes por ícones agrupados em páginas guias (tabbed pages). Adicione um componente num form selecionando o componente na palette, então dê um clique no lugar do form onde você quer colocar o componente. Você também pode dar um duplo clique no componente para colocá-lo no centro do form.



Adicionar um Table e um StatusBar no form:



1 Colocar um componente Table no form.



Dê um clique na guia Data Access no Component palette. Para achar o componente Table, coloque o ponteiro do mouse sobre um ícone por um momento; C++Builder exibirá um Help hint mostrando o nome do componente.

Quando você achar o componente Table, dê um clique nele para selecioná-lo e, então, clique no form para instalar o componente nele. O Table é um componente não-visual, assim ele não poderá ser visto, em tempo de execução, no lugar onde você o colocou. Por default, C++Builder nomeia o objeto como Table1. (Quando você aponta o componente no form, C++Builder exibe o seu nome (propriedade name) - Table1 - e o tipo de objeto que ele é - TTable).



Cada componente C++Builder é uma classe; colocando um componente no form cria-se uma instância dessa classe. Uma vez que o componente esteja colocado no form, C++Builder gera o código necessário para construir uma instância objeto quando sua aplicação estiver executando.



2 No Object Inspector coloque a propriedade DatabaseName de Table1 para BCDEMOS. (BCDEMOS é um apelido para o banco de dados exemplo que você usará.)



Selecione Table1 no form, então escolha a propriedade DatabaseName no Object Inspector. Selecione BCDEMOS na lista drop-down.



3 Dê um duplo clique no componente StatusBar na guia Win32 do Component palette. Esse procedimento adicionará uma barra de status na parte de baixo de sua aplicação.



4 Coloque a propriedade AutoHint da barra de status para true. Uma maneira fácil de fazer isto é dar um duplo clique sobre a palavra false ao lado da propriedade AutoHint no Object Inspector. (Setar AutoHint para true permitirá que apareça um Help hint na barra de status em tempo de execução).



Nota: Dependendo do compilador, a propriedade AutoHint poderá se chamar ShowHint.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Conectando a um bando de dados





O próximo passo será adicionar controles database e um DataSource no seu form.



1 Da guia Data Access do Component palette, pegue um componente DataSource e o coloque no form. O DataSource é um componente não-visual, portanto não será materializado quando colocado no form, em tempo de execução. Marque a propriedade DataSet para Table1.



2 Da guia Data Controls no Component Palette, escolha o componente DBGrid e o coloque sobre o form. Posicione ele no canto inferior esquerdo do form logo acima da barra de status bar; então expanda ele arrastando seu lado direito para o canto direito do form.



Se necessário, você pode aumentar o form arrastando o seu canto direito.



3 Marque propriedades de DBGrid para alinhar o grid com o form. Dê um duplo clique na propriedade Anchors no Object Inspector para exibir akLeft, akTop, akRight, e akBottom; sete todos eles para true.



4 Sete a propriedade DataSource do DBGrid para DataSource1 (o nome default do componente DataSource que você adicionou no form).



Agora você pode concluir a instalação do objeto Table1 que você colocou anteriormente no form.



5 Selecione o objeto Table1 no form, então marque a propriedade TableName para BIOLIFE.DB. (Nome já existe em Table1.) Depois, sete a propriedade Active para true.



Quando você marcar Active para true, o grid automaticamente preenche-se com os dados da tabela BIOLIFE.DB do banco de dados. Se o grid não exibir dados, observe se você marcou corretamente as propriedade para todos os objetos colocados no form, de acordo com as explicações acima.



O controle DBGrid exibe dados em tempo de desenvolvimento do projeto, na hora que você estiver trabalhando no IDE. Isso permite que você verifique se está conectado na base de dados corretamente. Você não pode, porém, editar os dados em tempo de projeto; para editar os dados na tabela, você deve executar a aplicação.



6 Pressione F9 para compilar e executar o projeto. (Você pode, também, executar o projeto dando um clique no botão Run no Debug toolbar, ou por escolher Run no menu Run).



Para conectar sua aplicação ao banco de dados, você usou três componente e vários níveis de vias indiretas. Um controle data-aware (neste caso, um DBGrid) aponta para um objeto DataSource, o qual, por sua vez, aponta para um objeto dataset (neste caso, um Table). Finalmente, o dataset (Table1) aponta para uma tabela de banco de dados atual (BIOLIFE), a qual é acessada através do BDE chamado BCDEMOS. (BDE aliases são configurados através do BDE Administrator.)

Tutorial_htm_7d287264.gif


Esta arquitetura talvez, em primeira vista, pareça complicada, mas no final das contas, ela simplifica o desenvolvimento e a manutenção.



Para maiores informaçãoes, veja Designing database applications.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Adicionando suporte para um menu e um toolbar





Quando você executa o seu programa, C++Builder abre o programa numa janela igual à que você desenhou no form. O programa é uma aplicação Windows completa, inclusive com botões Minimizar, Maximizar e fechar, e um menu Controle. Você pode scroll (visualizar através de movimento de barra de rolagens) através dos dados BIOLIFE no grid.

Apesar de o seu programa já possuir um grande número de funcionalidades, ele ainda carece de um grande número de características encontradas nas aplicações Windows. Por exemplo, a maioria das aplicações Windows implementam menus e toolbars para facilitar o respectivo uso.



Nesta seção, você aprenderá a preparar sua aplicação para adicional interface gráfica de elementos pela instalação de um componente ActionList. Apesar de você poder criar menus, toolbars, e buttons sem usar action lists, action lists simplifica desenvolvimento e manutenção por centralizar respostas para comandos do usuário.



1 Clique X no canto superior direito para fechar a aplicação e retornar para o desenvolvimento do projeto e ver form.



2 Da guia Win32 de Component palette, coloque um componente ImageList no form. Este é um componente não-visual, portanto não será visualizado no local em que for colocado. O ImageList contém ícones que representam ações padrão como cortar e colar.



3 Da guia Standard do Component palette, coloque um componente ActionList no form. Este é outro componente não visual.



4 Marque a propriedade Images de ActionList para ImageList1.



5 Dê um duplo clique em ActionList para exibir o Action List editor.



6 Dê um clique com o botão direito do mouse no Action List editor e escolha a opção New Standard Action. A Standard Actions list box será exibida.



7 Selecione as seguintes ações: TDataSetFirst, TDataSetLast, TDataSetNext, TDataSetPrior, TEditCopy, TEditCut, e TEditPaste. (Use Ctrl key para selecionar mútiplos itens.) Então clique OK.



8 Clique no X para fechar o Action List editor.



Você adicionou ações standard. Agora você está pronto para adicionar um menu e um toolbar.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Adicionando um menu





Nesta seção, você adicionará uma barra de menu principal com três menus drop-down: menus Arquivo, Editar e Record - e você adicionará menu itens para cada um usando as ações standard no action list.



1 Da guia Standard do Component palette, coloque um componente MainMenu no form. Ele não materializa onde você colocá-lo (em tempo de execução).



2 Marque a propriedade Images de MainMenu para ImageList1.



3 Dê um duplo clique no componente MainMenu para exibir o Menu Designer.



4 Digite &Arquivo na propriedade Caption do primeiro topo de menus e pressione Enter.



5 Digite &Salvar e pressione Enter para criar um item Salvar abaixo no menu Arquivo.



6 Digite um hifen no Caption do próximo item abaixo e pressione Enter para criar um traço separador no menu.



7 Digite Sai&r e pressione Enter para criar um item Sair no menu Arquivo.



8 Clique no segundo topo de menus (à direita de Arquivo), digite &Editar, e pressione Enter. O primeiro item menu abaixo de Editar será selecionado.



No Object Inspector, sete a propriedade Action para EditCut1 e pressione Enter. A propriedade Caption é automaticamente setada para Cut.

Selecione o próximo item de menu (abaixo de Cut) e sete a propriedade Action para EditCopy1.

Selecione o próximo item de menu e sete a propriedade Action para EditPaste1.



9 Clique no terceiro topo de menus (à direita de Editar), digite &Record no Caption e pressione Enter. O item de menu abaixo de Record será selecionado.



No Object Inspector, em Action escolha DataSetFirst1.

Selecione o próximo item de menu e marque a propriedade Action para DataSetPrior1.

Selecione o próximo item de menu e marque a propriedade Action para DataSetNext1.

Selecione o próximo item de menu e marque a propriedade Action para DataSetLast1.



10 Clique no X para fechar o Menu Designer.



Pressione F9 para executar seu programa e veja o seu aspecto.

Feche a aplicação quando você estiver pronto para continuar.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Adicionando um toolbar





1 Na guia de componentes Win32, dê um duplo clique sobre o ToolBar para adicioná-lo no form.



Coloque a propriedade Indent do toolbar para 4.

Coloque a propriedade Images para ImageList1.

Coloque ShowHint para true.



2 Adicionar buttons no toolbar.



Com o toolbar selecionado, dê um clique com o botão direito do mouse escolha New Button três vezes.

Dê um clique com o botão direito e escolha New Separator.

Novamente clique o botão direito e escolha mais quatro botões.



3 Providenciar ações para o primeiro grupo de buttons.



Selecione o primeiro botão e coloque a propriedade Action para EditCut1.

Selecione o segundo botão e coloque a propriedade Action para EditCopy1.

Selecione o terceiro botão e coloque a propriedade Action para EditPaste1.



4 Providenciar ações para o segundo grupo de botões.



Selecione o primeiro botão e coloque a propriedade Action para DataSetFirst1.

Selecione o segundo botão e coloque a propriedade Action para DataSetPrior1.

Selecione o terceiro botão e coloque a propriedade Action para DataSetNext1.

Selecione o último botão e coloque a propriedade Action para DataSetLast1.



5 Pressione F9 para compilar e executar o projeto.



Verifique o toolbar. Todos os botões estão funcionando. Selecione um texto numa célula no grid; Cortar, Copiar e Colar estão funcionando corretamente.

Feche a aplicação quando você estiver pronto para continuar.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Exibindo imagens





Cada lista no banco de dados BIOLIFE possui uma figura associada. Nesta seção, você expandirá sua aplicação para exibir figuras.



1 Da guia de componetes Standard, pegue um componente Panel e o coloque no form abaixo do toolbar. C++Builder, por default, nomeá-lo-á Panel1.



2 No Object Inspector, delete a string Panel1 da propriedade Caption. Deixe a propriedade Caption em branco (vazio).



3 Alinhe Panel1 para o topo do form setando a propriedade Align para alTop. Depois arraste a parte de baixo do panel para baixo de tal forma que ele venha a preencher a porção do form entre o toolbar e o grid.



4 Coloque a propriedade Color do Panel para clBlue.



5 Da guia de componentes Data Controls, coloque um componente DBImage no topo de Panel1 e marque a propriedade Align para alRight. Ajuste o tamanho do DBImage arrastando o seu lado esquerdo para o centro do form, de tal forma que o mesmo fique parecido com a ilustração abaixo.


Tutorial_htm_a8d653b.gif




6 Marque a propriedade DataSource de DBImage para DataSource1. Então coloque a propriedade DataField para Graphic. (no Object Inspector, a lista drop-down próxima ao DataField exibe o registro da tabela BIOLIFE. Graphic é um nome de registro.)



Logo que você setar DataField para Graphic, o componente DBImage exibe a imagem de um peixe correspondente ao primeiro registro da tabela. Se você amarrou corretamente ao banco de dados, será mostrado como a seguir.


Tutorial_htm_m35e8528b.gif


7 Pressione F9 para compilar e executar a aplicação.



Feche a aplicação assim que estiver pronto para continuar.





Adicionando texto e objeto memo





Nesta seção, você adicionará dois componentes que exibirão campos de texto individuais aos do banco de dados.



1 Selecione Panel1.



2 Da guia de componentes Data Controls, coloque um componente DBMemo no Panel1 e posicione ele para ocupar o canto superior esquerdo do panel (abaixo dos menus e do toolbar).



3 Redimensione o DBMemo arrastando o seu canto inferior direito. Estenda a margem direita do DBMemo até tocar a margem esquerda do DBImage. Estenda a parte de baixo do DBMemo até a parte inferior do Panel1.



4 No Object Inspector, sete as seguintes propriedades para o DBMemo.



Marque DataSource para DataSource1.

Marque DataField para Notes (informação acerca dos peixes que aparecem).

Marque ScrollBars para ssVertical.



5 Coloque um componente DBText no Panel1 abaixo do objeto DBMemo. Alargue o DBText assim ele encherá a área abaixo do DBMemo, quando setar suas propriedades como segue:



coloque DataSource para DataSource1.

ponha DataField para Common_Name.

coloque Alignment para taCenter.



6 Ajuste a propriedade Font do componente DBText usando o Font editor.



O Font editor é uma propriedade editor que você pode acessar através do Object Inspector. Selecione a propriedade Font no Object Inspector; pressione o botão ellipsis que aparece no lado direito da propriedade para exibir o Font editor.

Modifique os seguintes DBText usando o Font editor:



Coloque Font Style para Bold.

Coloque Color para Silver.

Coloque o Size para 12.



Então clique OK.



7 Compile e execute sua aplicação pressionando F9.



Você pode ver e editar dados no componente DBMemo. O componente DBText exibe dados somente para leitura.

Feche a aplicação quando estiver pronto para continuar






 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Escrevendo um event handler





Até aqui, você desenvolveu sua aplicação sem escrever uma única linha de código. Nesta seção, você escreverá funções que chamam eventos que respondem a comandos do usuário na hora que a aplicação estiver executando. Você conectará o eventos aos menus, de modo que quando o menu é selecionado sua aplicação executa o código respecitivo.

A maioria dos componente da guia de componentes palette possuem eventos, e muitos componentes possuem um evento default. Um evento default comum é o OnClick, que é chamado toda vez que o componente é clicado; por exemplo, se você instala um componente Button (TButton) no form, você certamente escreverá um evento OnClick para ele. Assim que você der um duplo clique sobre o objeto no form, C++Builder cria um esqueleto handler para o evento default.



Você também pode acessar todos os componentes eventos através do Object Inspector. Selecione um objeto no form, então clique a tab (guia) Events no Object Inspector; Você verá uma lista de eventos do objeto. Para criar um esqueleto handler para qualquer evento, dê um duplo clique diretamente sobre o mesmo.



Para maiores informaçãoes acerca de events e event handlers, veja Developing the application user interface.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Para escrever um event handler:



1 Da guia de componentes Dialogs do Component palette, coloque um componente SaveDialog sobre form. Este é um componente não visual, assim não poderá ser visualizado em tempo de execução no lugar em que você o colocou. O C++Builder nomeará SaveDialog1 por padrão. (Quando SaveDialog Execute method é chamado, ele invoca o diálogo padrão Windows para salvar arquivos.)



2 Escolha File|Save no menu do form. C++Builder cria um esqueleto event handler para o evento que ocorrer em tempo de execução quando o usuário seletar Save no menu Arquivo. O Code editor abre com o cursor dentro do event handler.


Tutorial_htm_m1cb36e5a.gif


Este event handler é ligado ao evento OnClick de main menu’s primeiro item menu. O menu item é uma instância da classe TMenuItem, e OnClick é seu evento default. Portanto o método Save1Click é um event handler default.



3 Comple o event handler pela adição do código mostrado abaixo entre os pares mais extermos de chaves.


void __fastcall TForm1::Save1Click(Tobject *Sender)

{
std::FILE *outfile;
AnsiString Buffer;
Buffer.sprintf("Save Info For: %s", DBText1->Field->AsString.c_str());
SaveDialog1->Title = Buffer;
if (SaveDialog1->Execute())
{
outfile = std::fopen(SaveDialog1->FileName.c_str(), "wt");
if (outfile)
{
fprintf(outfile, "Facts on the %s\n\n",
DBText1->Field->AsString.c_str());
for (int i=0; i < DBGrid1->FieldCount; i++)

fprintf(outfile, "%s: %s\n",
DBGrid1->Fields->FieldName.c_str(),
DBGrid1->Fields->AsString.c_str());
fprintf(outfile, "\n%s\n", DBMemo1->Text.c_str());
}
fclose(outfile);
}
}

Este event handler chama o método Execute no componente SaveDialog. Quando a caixa de diálogo aparece e o usuário especifica um nome de arquivo, ele salva campos do banco de dados atual dentro da lista dos arquivos.



Este código usa arquivo I/O (entrada e saída) da livraria standard. Antes de compilar ele, adicione:



#include <cstdio>



No topo do arquivo Unit mais ou memos abaixo das linha já escritas:



#include <vcl.h>



4 Para adicionar o código para sair do programa, escolha File|Exit. O C++Builder gerará outro esqueleto event handler e exibirá no editor.


void __fastcall TForm1::Exit1Click(TObject *Sender)

{
}



Exatamente onde o cursor estiver posicionado (entre as chaves), digite:


Close();



5 Escolha File|Save All para salvar o seu trabalho. Então pressione F9 para executar a aplicação.



Você já poderá sair do programa através do novo comando estabelecido em File|Exit.

fonte:dicasbcb
 
Topo