Apostila Teórica 1 - Introdução ao Delphi

Propaganda
Apostila Teórica
1 - Introdução ao Delphi
- O ambiente de desenvolvimento
1.1.1 - Barra de Menus
Através da barra de Menu o Programador tem acesso a todos os serviços do Delphi:
Menu File
Comandos de arquivos do projeto, abertura de um novo projeto, inclusão de novos
formulários ao projeto, salvamento de projeto, etc.
Menu Edit
Comandos de edição, copias, recortar, colar, etc.
Menu Search
Comandos para procurar e substituir textos das units do projeto.
Menu Veiw
Comandos para exibir as janelas de ferramentas do Delphi como o Object Inspector,
a Alignment Palete, etc.
Menu Project
Comandos de controle do projeto atual, compilação, configurações, etc.
Menu Run
Comandos para execução e debug do projeto.
Menu Component
Comandos para instalação de componente e criação de novos.
Menu Database
Comandos para agilizar a criação de bancos de dados e formulários de dados.
Menu Tools
Comandos que abrem os utilitários do Delphi, Database Desktop, Image Editor, etc.
Menu WorkGroup
Comandos que facilitam o desenvolvimento de aplicativos em grupo.
Menu Help
Ajuda do Delphi.
1.1.2 – Barra de Ferramentas
Na barra de ferramentas estão as funções mais utilizadas:
Salvar um Projeto;
Este botão quanto pressionado salva o seu projeto em disco.
Abrir um Projeto;
Este botão quando pressionado abre um projeto que havia sido gravado em disco.
Acrecentar uma Unit;
Este botão quando pressionado acrescenta uma Unit (Arquivo.pas e Formulário) ao
seu projeto atual.
Exibir Unit;
Este botão quando pressionado apresenta uma lista contendo todas as units do
projeto atual, ao selecionar uma delas, esta será exibida no editor de código.
Exibir Formulario;
Similar ao anterior, quando pressionado apresenta uma lista contendo todos os
formulários do projeto atual, ao selecionar um deles, este será exibido.
Executar o aplicativo;
Este botão quando pressionado compila e executa o aplicativo.
Interromper a rexecução;
Este botão estará ativo somente se o aplicativo estiver sendo executado e interrome
a execução.
Salvar uma Unit;
Este botão, quando pressionado, salva a unit atual em disco.
Abrir uma Unit;
Este botão, quando pressionado, abre uma unit que havia sido salva em disco.
Excluir uma Unit;
Este botão, quando pressionado, exclui uma unit do projeto atual.
Alternar enter Editor de Código e Formulário;
Incluir um novo formulário;
Este botão, quando pressionado inclui um novo formulário em branco ao projeto atual
assim como uma nova unit.
Executar passo a passo externo;
Executa o aplicativo linha a linha, porém, quando um procedimento é chamado
internamente, as linhas deste não são exibidas.
Executar passo a passo interno;
Executa o aplicativo linha a linha, até mesmo as linha dos procedimentos chamados
internamente.
1.1.3 - Palheta de Componentes
Esta é a mais poderosa ferramenta, ou conjunto de ferramentas que o Delphi
disponibiliza para o programador. Aqui estão guardados todos os componentes que
são necessários para o desenvolvimento de uma aplicação Windows. Você encontrará
botões, caixas de dialogo, Menus, controles de banco de dados, etc. Basicamente
um sistema em Delphi baseia-se na manipulação destes componentes, alterando suas
propriedades e eventos.
1.1.4 - Object Inspector
O Object Inspector é a ferramenta utilizada para alterar os valores das
propriedades e inserir código nos Eventos do componente selecionado. Quando você
abre o Delphi o Object Inspecto deve aparecer no lado esquerdo do formulário,
se isto não acontece pressione a tecla F11 ou selecione o menu View -> Object
Inspector.
Na parte superior do Object Inspector existo o Object Selector que indica o
componente atual e seu tipo de dados, e este seletor pode ser usado para mudar
a seleção atual.
As propriedades listadas, em geral, não são todas as propriedades do
componente. Ele inclui somente as propriedades que podem ser definidas em tempo
de projeto. As demais propriedades podem ser conhecidas consultando o Help.
Para alterar os valores das propriedades você usa a coluna da direita. Se a
propriedade for de um tipo simples (Inteiro, String, Real, Boolean), basta você
inserir o valor desejado, caso contrário, à direita deverá aparecer um botão com
uma seta para baixo ou um botão com três pontos.
O botão com seta para baixo indica que o valor da propriedade deve ser
selecionado entre uma lista de itens que será exibida quando o botão for
pressionado, já o botão com três pontos indica que será aberta uma caixa de diálogo
que irá auxiliar o desenvolvedor.
Existe ainda no Object Inspector a palheta Events que lista todos os eventos
relacionados ao componente selecionado. Para inserir um código a um evento basta
dar um duplo clique sobre a coluna da à direita do nome do evento e uma declaração
de procedure será criada. Dentro desta declaração deverá ser inserido o código
desejado para o evento.
1.1.5 - Formulário
Esta é a nossa prancheta de projeto, o Formulário equivale a uma janela do Projeto
final. É nele que será desenhado o formato da janela que será apresentada ao
usuário, para isto basta ir adicionando componentes a ele e posicionando nos
lugares em que se deseja apresenta-los.
O próprio Formulário é um componente, portanto possui Propriedades, Metodos e
Eventos que podem ser alterados conforme necessário.
1.1.6 - Editor de código
Como o próprio nome já descreve, é nesta janela que o Programador irá inserir o
código para os eventos que deseja executar. O conteúdo desta janela é salvado no
arquivo .pas correspondente a cada unit do projeto.
No Delphi 3.0 este editor possui um Help On-line que exibe as propriedades, métodos
e eventos do objeto que se está descrevendo.
1.1.7 - Preparando o ambiente
É muito importante que se prepare corretamente o ambiente de trabalho para evitar
atrasos no desenvolvimento. Esta janela é chamada através do menu “Tools |
Enviroment Options”. Nela você pode configurar as características do ambiente em
que se irá trabalhar. Ela possui 8 palhetas, porém, somente uma tem real importância
no projeto a palheta Preferences, as restantes são apenas de configuração de
exibição.
1.1.8 – Opções personalizadas
Nesta janela seleciona-se as configurações personalizadas para cada projeto. Na
palheta Forms define-se qual o formulário principal da aplicação (Main Form) e
quais devem ser os formulários criados no instante da execução do sistema. Na
palheta Application define-se qual o título da aplicação, qual o seu ícone e qual
o arquivo de help correspondente a ela. Na palheta Compiler define-se as opções
de compilação, quanto mais opções forem selecionadas haverá menos chances de o
sistema Ter erros, porém ele poderá ficar mais pesado.
– Programando em Delphi
1.2.1 – Conceitos de programação visual
Por todas as inovações anteriormente citadas é obvio que o modo de programação
no Delphi tende a ser diferente das demais linguagens:
Interface Visual: o primeiro passo para o desenvolvimento de uma aplicação é a
criação de sua interface visual, a cara do programa. Para isso é necessário
“desenhar” os componentes da aplicação (janelas, botões, rótulos, campos de
entrada de dados, etc) em suas posições definitivas e dimencioná-los de modo a
apresentar uma aparência agradável e funcional.
Configuração dos Objetos: o segundo passo é a configuração dos componentes que
compões a interface visula. Cada objeto, ou componente, tem um conjunto próprio
de propriedades que podem ser ajustadas (de acordo com a necessidade do
programador) através do “Object Inspector”. Neste momento, será definido o estilo
do formulário, título dos botões, número máximo de caracteres aceitos em um campo
de entrada de dados e outras características do genero.
Codigicação: o próximo passo é a codificação da aplicação. O código de um formulário
fica armazenado em um arquivo de código que possui o mesmo nome do arquivo do
formulário porém sua extensão é .PAS. Neste arquivo, os códigos referentes a cada
evento possível deve ser escrito na forma de um procedimento (Procedure). Basta
para isso selecionar o evento desejado na janela Object Inspector e com um duplo
click no Delphi cria a procedure e todas as referências necessárias bastando ao
programador escrever o código.
Teste: depois de digitado e codificado o seu programa, é necessário testá-lo. A
linguagem Pascal da Borland sempre foi reconhecida pela velocidade na compilação
dos seus programas. O ambiente de trabalho do Delphi incorpora também a função
de link-edição no momento da execução da aplicação. Aqui, basta selecionar o menu
Run | Run ou pressionar o botão Run da barra de ferramentas para que seu projeto
seja compilado, link-editado e executado.
Debug: durante a fase de testes do sistema, talvez seja necessário a depuração
de alguns erros. Para isso, o Delphi oferece um debug integrado que permite a
execução do programa passo a passo e oferece a possibilidade de inspecionar os
valores das variáveis do sistema, permitindo desta forma detectar exatamente onde
ocorre o problema.
Geração de arquivos executável ou DLL: depois de testado e depurado o programa,
deve-se gerar o executável a partir do seu projeto. O Delphi é um ambiente de
desenvolvimento baseado em uma linguagem de alto nível e que possibilita a criação
de programas executáveis extremamente rápidos e pequenos em tamanho,
principalmente se comparados com ambientes de desenvolvimento baseados em
linguagens semi-interpretadas como o BASIC. Além de um programa executável, existe
também a possibilidade da criação de uma DLL a partir do projeto. DLLs são
bibliotecas de ligação dinâmica o que possibilita a utilização da mesma em diversas
aplicações simultaneamente e por diversas linguagens e ferramentas diferentes.
1.2.2 – A Linguagem
A codificação no Delphi é feita através da linguagem Pascal. A linguagem Pascal
foi criada inicialmente com objetivos didáticos, porém, descobriu-se ser tão
poderosa que começou a ser utilizada para fins comerciais. Com o surgimento de
novas linguagens comerciais, como o Clipper, o Pascal começou a ser considerado
extinto, até que a borland lançou o Delphi que fez o Pascal renascer, agora como
Object-Pascal.
Inicialmente para desenvolver aplicações em Delphi não é necessário um
grande conhecimento do Pascal, porém, quanto mais você se aprofundar no Delphi,
mais sentirá necessidade de conhecer profundamente o Pascal.
1.2.3 – Conceito de Componentes
Componentes são objetos, e todo o objeto é composto por:
Propriedades;
Metodos;
Eventos;
1.2.4 - Propriedades
Propriedades são atributos ou características dos componentes. As propriedades
podem ser somente para leitura, modificáveis em tempo de projeto e/ou execução
ou modificáveis somente em tempo de execução.
Para modificar os valores de uma propriedade em tempo de projeto utilizamos o Object
Inspector, na palheta Properties. Já em tempo de execução nós utilizamos a seguinte
sintaxe:
{Nome do Componente}.{Propriedade} := Valor;
Por exemplo: se quisermos alterar a propriedade Caption do Formulário Form1
utilizamos o seguinte comando:
Form1.Caption := Valor;
1.2.5 - Métodos
Os métodos são procedures e functions declaradas dentro do objeto e correspondem
à ações que o objeto pode desempenhar. Eles só estão acessíveis em tempo de
execução. A sintaxe é semelhante a das propriedades com as seguintes diferenças:
Não se pode atribuir um valor a métodos;
Alguns métodos aceitam argumentos, já que são function e procedures;
Os métodos correspondentes às functions retornam valores; os correspondentes às
procedures não.
Por exemplo, para limpar o texto de um componente Memo utiliza-se o método clear
da propriedade Lines:
Memo.Lines.Clear;
1.2.6 - Eventos
Os eventos correspondem a oportunidades do componente chamar o nosso código. 99%
do código escrito será como resposta à eventos. Os eventos normalmente correspondem
a mensagens do Windows processadas pela biblioteca do Delphi.
Para os programadores DOS, os eventos são uma completa novidade, mas eles estão
presentes de alguma forma em todas as ferramentas de desenvolvimento para Windows.
Para associar um evento à um código, utiliza-se o Object Inspector na palheta
Events.
OBS: O Delphi cria automaticamente um trecho de código para cada componente que
adicionarmos ao nosso projeto. Caso eliminamos um objeto do projeto o Delphi
automaticamente apaga o código que ele criou. Quando damos um duplo-clike em um
evento, o Delphi cria automaticamente a declaração da Procedure. E existe uma regra
geral para isto: Nunca altere o código que o Delphi criou, a não ser que saiba
exatamente aonde está mexendo, sob pena de perder a integridade de seu projeto.
1.2.7 - Arquivos de um Projeto
Extensão Descrição DPR Fonte do arquivo de projeto – 1 por projeto PAS Fonte
do arquivo de código da Unit – 1 por formulário DFM Arquivo binário que especifica
como é um formulário – 1 por formulário DOF Opções de projeto – 1 por projeto
RES Recursos diversos do Windows – 1 por projeto DCU É o arquivo .PAS compilado
EXE, DLL Produto final do projeto BAK, ~?? Arquivos de “Backup” DSM,DSK Arquivos
auxiliares
Caixas de mensagens em Delphi
Existem três funções básicos em Delphi para se gerar uma caixa de mensagens:
ShowMessage;
MessageBox;
MessageDlg;
As três exibem uma mensagem na tela, porém uma se diferencia da outra quanto à
apresentação da mensagem.
ShowMessage
Esta é a função de mensagem mais simples, ele só recebe um parâmetro que
é a mensagem que se quer exibir. Sua sintaxe é a seguinte:
ShowMessage(‘Texto da Mensagem’);
MessageBox
Esta função recebe três parâmetros, o primeiro é o texto da mensagem, o segundo
é o título da janela e o terceiro é o número do ícone mais o botões que se deseja
apresentar. Esta função retorna o código do botão pressionado.
Application.MessageBox(‘Texto da Mensagem’,’Título da Janela’,Icone + Botões);
Onde Icone pode ser:
Mb_IconQuestion
Mb_IconExclamation
Mb_IconStop
Onde Botões pode ser:
Mb_Ok
Mb_Cancel
Mb_YesNoCancel
Mb_YesNo
Mb_Retry
Mb_Help
MessageDlg
Esta função recebe quatro parâmetros, o primeiro é o texto da mensagem, o
segundo é o tipo da mensagem, o terceiro são os botões da mensagem e o quarto é
o número de contexto do Help. Esta função retorna o código do botão pressionado.
MessageDlg(‘Texto da Mensagem’,Tipo da mensagem,Botões,Contexto de Help);
Onde Tipo da mensagem pode ser:
MtWarning
MtError
MtInformation
MtConfirmation
MtCustom
Onde Botões pode ser:
MbYes
MbNo
MbOK
MbCancel
MbHelp
MbAbort
MbRetry
MbIgnore
MbAll
MbYesNoCancel
MbOkCancel
MbAbortRetryIgnore
As Units
Unit é uma unidade de um projeto, ou seja, é o conjunto feito de um formulário
e um arquivo de código.
Quando é criado um novo aplicativo o Delphi cria três arquivos, o arquivo
de projeto “.DPR” o arquivo do formulário “.DFM” e o arquivo de código do formulário
“.PAS”. A cada novo formulário inserido no projeto é criado um novo DFM e um novo
PAS.
Um esquema que pode demonstrar os arquivos de um projeto é o seguinte:
O componente MainMenu
Componente utilizado na criação de Menus em formulários. Para preencher os
dados do novo menu é necessário abrir o Editor de Menu, isto pode ser feito dando
um duplo clique sobre o componente ou dando um clique com o botão direito do mouse
sobre o componente e selecionando o Item de Menu “Menu Designer...”.
No Editor de Menu será definido os valores de cada propriedade dos itens
de menu. Quando o Editor de Menu é aberto é criado um novo item de menu em branco,
preenchendo sua propriedade Caption o texto é automaticamente inserido no menu.
Os itens superiores são ditos como Item Pai e os seguintes como Item Filho. Para
criar um novo item Filho basta pressionar a seta para baixo do teclado e para criar
um novo item Pai basta pressionar a seta para a direita do teclado.
Os menus podem ainda ser reajustados conforme a necessidade, para isso basta
arrastar o item de menu para a posição desejada.
Outro tipo de menu muito utilizado é o Menu Expandido, para cria-lo basta
colocar o cursor sobre o menu filho que se deseja expandir e pressionar as teclas
CTRL+Seta p/ a direita.
Cada item de menu possui suas propriedades e um único evento (OnClick). As
propriedades mais interessantes dos menus são Caption ( onde se insere o texto
que é exibido ao usuário ) e ShortCut ( onde se define a tecla de atalho para o
menu ).
Chamadas entre formulários
Quando se desenvolve aplicativos com multiplas janelas é necessário que haja
uma forma de chama-las.
Existem dois métodos inseridos nos componentes Form que são utilizados para
este serviço, são eles:
Show – Método que exibe um formulário de modo aberto, ou seja, o usuário
poderá alternar enter o formulário exibido e o formulário que o chamou.
ShowModal – Método que exibe um formulário de modo fechado, ou seja, o usuário
não poderá ir para nenhuma outra janela do aplicativo sem fechar a janela exibida.
Em aplicativos de Banco de Dados é muito útil utilizar o método ShowModal
pois o usuário é obrigado a seguir uma certa ordem na inclusão dos dados.
Criando formulários dinamicamente
Quando o nosso aplicativo é executado ele carrega em memória todas as janelas
que foram criadas. Isto causa uma série de problemas como a demora para abrir o
aplicativo e o uso excessivo dos recursos da máquina.
Para que isto não aconteça é necessário configurar no menu “Project ->
Options” quais formulários devem ser criados no momento da execução e quais deverão
ser criados dinamicamente.
Para criar um formulário dinamicamente é necessário criar uma variável de
memória que irá armazenar o novo formulário, esta variável deve ser do tipo do
formulário que ser irá criar. Por exemplo, se nós tivermos em um aplicativo o
formulário principal (Form1) e o formulário secundário (Form2) e eu quero chamar
o Form2 a partir do Form1 eu criaria o seguinte código:
Procedure XXXXXXX
Var
Nova_Janela : Tform2;
Begin
Nova_Janela := Tform2.Create(Self);
Nova_Janela.ShowModal;
Nova Janela.Free;
End;
Neste código nós criamos a variável Nova-Janela que é do tipo Tform2 (quando
é incluído um novo componente no Delphi, é automaticamente criado um novo tipo).
Na primeira linha do código nós estamos inserindo na variável a criação do
formulário, após isto ter sito feito a variável pode ser tratada como um formulário
pois é isto que ela é.
Eu utilizei o método ShowModal para chamar a janela pois é o método que
geralmente uso.
Na última linha do código eu chamo o método Free que destroi a variável,
ou seja apaga-a da memória. Isto é feito pois a nossa intenção é manter os recursos
da máquina o mais livre possível e se eu não libera-se a memória locada por esta
variável ela ficaria indisponível até que o meu programa fosse finalizado.
Criando aplicativos MDI
Os aplicativos MDI são um tipo de aplicativo que trata a janela principal
como uma área de tarefas e as demais como janelas filhas.
Para criar um aplicativo MDI em Delphi é necessário que se defina a
propriedade FormStyle do formulário principal como fsMDIForm e a propriedade
FormStyle das demais janelas do aplicativo como fsMDIChild.
Em um aplicativo MDI as janelas não podem ser chamadas através do método
ShowModal e devem ser criadas dinamicamente utilizando a seguinte sintaxe:
Application.CreateForm(Tform1, Form1);
Onde Form1 é a janela que se deseja chamar e TForm1 é o seu tipo. Este código
é utilizado somente em janelas do estilo MDI, em outros estilos de janela é
utilizado:
Form1 := TForm1.Create(Self);
Como as janelas dos aplicativos MDI não podem ser exibidas como Modal o código
que libera a janela da memória deverá ser inserido no evento OnClose da janela
com a seguinte sintexe:
Action := caFree;
Onde Action é uma variável que representa qual a ação que deverá ser executada
sobre a janela e caFree é uma variável que indica a liberação da memória. Este
código é utilizado somente em janelas MDI, nos outros estilos de janelas é
utilizado:
Form1.Free
Um diálogo com o Windows
Você já deve ter observado que em qualquer aplicativo Windows quando você
precisa salvar um arquivo a caixa de diálogo é sempre a mesma. Isto acontece porque
quem gerencia esta tarefa é o Windows.
No Delphi nós temos uma palheta dedicada somente a esta tarefa, é a palhete
Dialog.
Os componente da palheta Dialog são todos caixas de diálogo padrão Windows
como a caixa de abertura de arquivo, salvamento de arquivo, opções de impressão,
etc.
Para que uma caixa de diálogo seja apresentada ao usuário é utilizado o método
Execute. Este método retorna True se o usuário pressionou o botão OK da caixa e
False se não.
Por exemplo, um diálogo OpenDialog serve para que o usuário possa abrir um
arquivo, o nome do arquivo escolhido pelo usuário fica armazenado na propriedade
FileName do OpenDialog. Como o método de chamada de uma caixa de diálogo retorna
True ou False é possível criar o seguinte código:
If OpenDialog.Execute then
[Abrir arquivo;]
Banco de dados em Delphi
O banco de dados está basicamente relacionado aos componentes Query,
DataSource e Table da palheta Data Access e todos os componetens da palhete Data
Controls.
Para criar um aplicativo de banco de dados você deve inserir um Table ou
um Query no formulário junto com um DataSource e efetuar a ligação entre eles.
O componente Table
Este é o componente utilizado para abrir o arquivo de dados, nele é
configurado a forma de exibição de cada campo da tabela e é nele que se controla
os eventos de inclusão, alteração, exclusão, etc.
O componente Query
Componente semelhante ao Table porém este utiliza SQL para buscar os dados
no banco de dados. Este componente é utilizado para consultas já que a manipulação
de dados com o mesmo requer um grande conhecimento de SQL.
O componente DataSource
Componente que faz a ligação entre a tabela aberta ( Table ou Query ) e os
componentes de manipulação de dados ( qualquer componente da palhete Data Controls
).
Um esquema que pode auxiliar na compreenção da ligação deste componentes
é o seguinte:
Onde:
“Componentes de acesso a dados” representa qualquer componente da palheta Data
Controls e “DataSource” é a propriedade deste componete que aponta para o
DataSource e “DataField” é a propriedade deste componente que aponta para o campo
do arquivo de dados;
“Componente DataSource” é o próprio componente DataSource da palheta Data Access
e “DataSet” é a propriedade deste componente que aponta para o componente Table;
“Componente Table ou componente Query” é o próprio componente Table ou Query da
palheta Data Access e “DatabaseName” é o diretório onde se encontram os arquivos
de dados ou o Álias que representa este diretório e “TableName” é o nome do arquivo
de dados que se quer abrir
O Database Desktop
O Database Desktop é uma ferramenta que é instalada junto com o Delphi para
o desenvolvimento de arquivos de dados.
Para abrir o Database Desktop selecione o mentu “Tool -> Database Desktop”
do Delphi.
No menu File existe um Item chamado Work Directory, neste item você pode
configurar em qual diretório ou álias está trabalhando, desta forma sempre que
você for abrir ou salvar uma tabela o Database Desktop irá abrir as caixas de dialogo
de Abertura ou Salvamento de arquivos neste diretório.
Criando Tabelas
Para criar uma nova tabela selecione o mentu “File -> New -> Table”. O
Database Desktop irá solicitar então o tipo de tabela que se quer criar.
Nós vamos criar somente tabelas Paradox por ser o banco de dados mais completo
disponível no Database Desktop.
Após selecionar o tipo da tabela é aberto o Editor de Tabelas onde são criados
os campos do arquivo de dados.
Na coluna Type, se você pressionar a barra de espaço poderá ver quais os tipo de
dados disponíveis para os arquivos paradox. Na coluna Key é inserido um asterisco
para o campo ou campos que formarão a chave dos registros ( este é o campo chave
ou indice primário ).
Após criar todos os campos da tabela é hora de definir as opções de cada
campo e da tabela em geral. Ao lado direito do editor de campos existe um conjunto
de opções de configuração de campos e tabela, neste conjunto são criadas a
integridade referencial, os indices secundários, as validações de campos, etc.
Inserindo Validações de campos
Na caixa Table Properties selecione o item Validity Checks e estarão
disponíveis as seguintes configurações de campos:
Onde:
Required Field - Indica se o campo deverá ter obrigatoriamente um valor;
Minimum value - Indica qual o valor mínimo aceito pelo campo;
Maximum value - Indica qual o valor máximo aceito pelo campo;
Default value - Idica qual o valor padrão do campo;
Picture - Idica qual a mascara usada pelo campo;
Estas opções são individuais para cada campo do arquivo.
Criando a integridade referencial
Na caixa Table Proprieties selecione o item Referential Integrity e você poderá
definir a integridade referencial desta tabela com relação às demais através do
Editor de Integridade:
Onde:
Fields - é a lista de campos do arquivo atual;
Child fields - é o campo que serve de ligação com a tabela externa;
Parent’s key - é o campo chave da tabela externa;
Table - é o conjunto de tabelas do diretório ou álias padrão (definido no menu
Work Directory);
Cascade - define se o relacionamento é do tipo cascata, ou seja o que for efetuado
no campo chave será efetuado também nos registros relacionados.
Prohibit - define se o relacionamento é do tipo reservado, ou seja o registro
pai não poderá ser alterado nem excluído se existir pelo menos um registro filho.
Você escolhe o campo que é a chave externa da tabela atual e pressiona o botão
com a seta para adireita, na lista Table você seleciona a tabela com a qual o campo
se relaciona e pressiona o botão com a seta para a esquerda então o indice primário
desta tabela será inserido no campo Parent’s Key. Em seguida basta definir se o
relacionamento é cascade ou Prohibit. Pressionando o botão OK será solicitado um
nome a este relacionamento.
Criando indices secundários
Para criar indices primários basta inserir um asterisco na coluna Key do
editor de tableas, já os indices secundários você deve selecionar o item Secondary
Indexes na caixa Table Properties. Pressionando o botão Define é aberta a janela
de Definição de Indices:
Nesta janela são listados todos os campos do arquivo na caixa da esquerda,
os campos que você quiser utilizar para criar o novo indice deve ser passado para
a caixa da direita. Isto é feito selecionando o campo desejado e pressionando o
botão com a seta para a direita ou dando um duplo clique sobre o campo desejado.
Após inserir os campos é hora de definir as opções do indice:
Unique – Indice único.
Maintained – Define se o indice deve ser atualizado automaticamente.
Case sensitive – Diferencia entre maiúsculas e minusculas em uma consulta.
Descending – Indice em ordemdecrescente.
Pressionando o botão OK será solicitado o nome do novo indice e pronto. Se você
quiser criar mais indice repita o processo.
Inserindo senhas às tabelas
Muitas vezes é necessário que nós tenhamos uma forma de impedir que terceiros
entrem no Database Desktop e alterem nossos arquivos de dados.
Para inserir uma senha em uma tabela selecione o tiem Password Security na
caixa Table Properties. Pressionando o botão Define é aberta a janela de definição
de senhas:
No campo Master password você deve digitar a senha desejada e no campo Verify
master password esta senha deve ser redigitada para que seja confirmada, após esta
tarefa basta pressionar o botão OK e nossa tabela estará protegida.
Devolta ao Delphi
Criando um álias
Todos os nossos arquivos de dados provavelmente estarão em um diretório do
nosso disco rígido ou em um diretório de um servidor de rede.
Na propriedade DatabaseName do componente Table nós devemos inserir o PATH
do diretório que contém os arquivos de dados, porém, é um tanto incomodo inserir
o PATH a cada novo table inserido no projeto e isto se torna uma tarefa muito pesada
quando nós queremos mudar nossos arquivos de dados para outro diretório.
Para evitar este serviço desnecessário existe a possibilidade de se criar
um álias (apelido) que será a nossa referência ao diretório que contém os dados.
Para criar um álias selecione o menu “Database -> Explore” e será aberta
a janela do SQL Explorer com todos os álias já criados.
Para criar um novo álias selecione o menu “Object
será criado um álias em branco:
-> New” e automaticamente
A primeira coisa a se fazer é dar o nome que se deseja ao álias, em seguida deverá
ser alterada a propriedade PATH, nela você deve inserir o caminho do diretório
onde se encontram os dados como por exemplo “C:\DADOS”. Após Ter criado o novo
álias você deve aplica-lo através do menu “Object -> Apli”.
Sempre que você quiser alterar alguma característica do álias você deve desativalo
através domenu “Object -> Close”. Após efetuar as alterações desejadas é necessário
aplicar o álias novamente.
Abrindo uma tabela no projeto
Para abrir uma tabela de dados é utilizado o componente Table. São duas as
propriedades que devem ser configuradas:
DatabaseName - Propriedade que deve conter o diretório ou o álias da base de dados.
TableName - Propriedade que deve conter o nome do arquivo de dados que se quer
abrir neste Table.
Para cada arquivo que se queira abrir é incluído um table no projeto.
Geralmente é incluido ao projeto um formulário DataModule que é utilizado
para armazenar os componentes table. Para inserir ao projeto um DataModule
selecione o menu “File -> New DataModule”.
Se você quiser abrir o arquivo de dados de modo exclusívo, ou seja nenhum
outro usuário poderá alterar ou incluir registros nesta tabela, você deve atribuir
o valor True à propriedade Exclusive.
Configurando as propriedades dos campos
Para alterar as propriedades dos campos de uma tabela é utilizado o Editor
de Campos. Para abrir o editor de campos dê um clique com o botão direito do mouse
sobre o componente Table que abre a tabela da qual você quer editar os campos e
selecione o Item de Menu “Fields Editor...”.
A principio o Editor de Campos aparece como na figura acima, vazio. Para
inserir os campos da tabela pressione o botão direito do mouse sobre o Editor de
Campos e selecione o Item de Menu “Add Fields”.
Na janela de Adicionar Campos você seleciona os campos que deseja exibir
e pressiona OK. Geralmente são inculídos todos os campos ao Editor de Campos.
Ao voltar para o Editor de Campos ele deverá conter todos os campos que foram
Adicionados.
Cada um dos campos possue propriedades como DisplayLabel que define o texto
que é exibido ao usuário em um grid, por exemplo. É aqui que são definidas as
mascaras, através da propriedade EditMask de cada campo.
Cada campo possui também seus eventos onde o mais importante é o evento
OnValidate que ocorre sempre que um campo é validado, se você quiser fazer alguma
validação antes de salvar os dados do campo insira o seu código neste evento.
Criando campos virtuais
Nas tabelas é possível criar um campo virtual que receba um valor, este campo
deve ser criado através do componente do Editor de Campos. Para abrir o Editor
de Campos, dê um duplo clique no componente Table que tem a tabela na qual você
que criar o campo calculado ou dê um clique com o botão direito do mouse e escolha
o Item de Menu Fields Editor...
No Editor de campos é possível listar todos os campos da tabela e editar
suas propriedades. Para criar um campo calculado, dê um clique com o botão direito
do mouse sobre o Editor de Campos e selecione a opção “New Field”, este comando
abrirá a janela de criação de campo:
Nesta janela você define o nome do campo, seu tipo, tamanho e categoria (
Data, Calculated ou Lookup ). No caso do campo calculado basta apenas definir o
seu nome, tipo e tamanho e pronto. No caso de um campo Lookup é necessário
especificar qual o campo chave do arquivo atual ( Key Fields ), qual o Table ligado
a tabela de origem ( Dataset ) qual o campo chave da tabela de origem ( Lookup
Keys ) e qual o campo que se deseja receber da tabela de origem ( Result Field
).
O campo chave da tabela atual e o campo chave da tabela de origem devem ser
do mesmo tipo para que possa haver um relacionamento.
O valor de um campo calculado deve ser inserido no evento OnCalcField do
componetne Table, neste evento você fará o código do calculo e atribuirá o resultado
ao campo.
O valor de um campo lookup é buscado automaticamente, o que é feito é o
seguinte; o Delphi pesquisa no campo chave especificado da tabela de origem o valor
do campo chave especificado da tabela atual, caso seja encontrado uma ocorrencia
do valor é retornado para o campo lookup o valor do campo especificado no item
Result Field.
Um exemplo muito prático da utilização de campos Lookup é a nota fiscal.
Você possui um cadastro de Fornecedores e na nota fiscal é inserido apenas o código
deste fornecedor. Para exibir o nome do fornecedor você cria um campo lookup onde
os itens ficariam configurados desta forma:
Key Field : Seria o código do fornecedor na tabela de notas fiscais;
Dataset : Seria o table que abre a tabela de fornecedores;
Lookup Keys : Seria o código do fornecedor na tabela de fornecedores;
Result Field : Seria o nome do fornecedor na tabela de fornecedores;
Desta forma, sempre que fosse exibidos os dados de uma nota fiscal o Delphi
iria pegar o código do fornecedor desta nota e procurar por este código na tabela
de fornecedores, se encontrar uma ocorrencia o Delphi iria trazer devolta o valor
contido no campo nome da tabela de fornecedores.
Filtrando dados de uma tabela
Uma forma eficiente de fazer um filtro de dados é através do componente Query,
usando SQL. Porém o componente Table também permite que seja feito um filtro. Isto
é feito através da propriedade Filter.
Digamos que eu tenha uma tabela que contenha os seguinte campos:
COMP_DATA
COMP_FORNECEDOR
Data - Data da compra
Integer
- Código do Fornecedor
Nesta tabela eu quero que seja exibido somente as compras do dia “30/01/98”
do fornecedor número “10”. Para que isto seja efetuado eu teria que inserir o
seguinte texto na propriedade Filter do Table:
COMP_DATA = ‘30/01/98’ and COMP_FORNECEDOR = 10
Eu teria ainda que definir a propriedade Filtered como true.
Ligando as tabelas aos componentes de Edição de Dados
A ligação entre os componentes de Edição de Dados e a tabela não pode ser
feito diretamente, o intermediário nesta ligação é o componente DataSource. Nele
a propriedade DataSet deve apontar para o componente Table. Quando você dá um clique
sobre a propriedade DataSet é exibida uma caixa de listagem ao lado da propriedade,
dando um clique nesta caixa é aberta uma lista onde irão aparecer os nomes de todos
os componentes Table e Query disponíveis.
Nos componente de Edição de Dados deve ser configuradas das propriedade
DataSource que aponta para o DataSource correspondente e DataField que aponta para
o campo do arquivo que este componente irá exibir. Quando você dá um clique sobre
a propriedade DataSource é exibida uma caixa de listagem ao lado da propriedade,
dando um clique nesta caixa é aberta uma lista onde irão aparecer os nomes de todos
os componentes DataSource disponíveis.
Há, porém, componentes de Edição de Dados que não precisam da definição da
propriedade DataField, é o caso do componente DBGrid no qual apenas se aponta para
o DataSource desejado e pronto, todos os campos da tabela são listados
imediatamente.
Criando um banco de dados Master Detail
O banco de dados Master Detail é quando os dados de uma mesma entidade são
armazenados em duas ou mais tabelas. Isto ocorre, por exemplo, no cadastro de notas
fiscais, onde em uma tabela são armazenados os dados da nota como o seu número,
data, fornecedor, etc, e em outra são armazenados os ítems desta nota.
Este relacionamento é chamado de Master Detail porque existe uma tabela que
é a mestre e as demais são filhas ou tabelas de detalhes. Nas tabelas de detalhes
deve existir um campo que irá armazenar o código do registro com que se relaciona
na tabela mestre.
Para concretizar isto no Delphi é necessário que se utilize, pelo meno, dois
componente DataSource e dois componente Table, onde um DataSource e um Table
abrirão a tabela Mestre e o outro abrirá a tabela de detalhe.
Na Table mestre o procedimento é normal, configure a propriedade
DatabaseName para o álias ou diretório em que se encontram as tabelas e a
propriedade TableName para o nome da tabela que se quer abrir e ative o componente.
No DataSource mestre aponte a propriedade DataSet para o componente Table mestre.
Na Table de detalhes existem mais duas propriedade que devem ser
configuradas, são elas:
MasterSource - Esta propriedade deve apontar para o DataSource mestre.
MasterField - Esta propriedade deve apontar para o campo da tabela mestre que é
a chave externa do relacionamento.
Para configurar a propriedade MasterSource basta selecionar um dos
componentes DataSource disponíveis, já a propriedade MasterField é necessário
utilizar uma janela de diálogo que auxilina nesta configuração, a “Field Link
Designer”:
Onde:
Available Indexes Detail Fields - é o
Master Fields - são
Joined Fields - são
são os campos indexados disponíveis na tabela de detalhes;
indice atual;
os campos da tabela mestre;
os campos que foram selecionados;
Os campos que serão ligados devem ser do mesmo tipo e o campo da tabela de
detalhes deve ser indexado.
Criando consultas com SQL
O componente utilizado para realizar consultas com SQL é o Query. Este
componente é semelhante ao Table porém os seus dados é o resultado de uma consulta
em uma ou mais tabelas. Para que este componente funcione adequadamente é
necessário que se conifigure a propriedade DababaseName com o diretório ou álias
em que se encontram as tabelas de dados.
O comando SQL que irá realizar a consulta deverá ser inserido na propriedade
SQL do componente.
Assim que o componente é ativado ele imediatamente já realiza a consulta,
mesmo em tempo de projeto.
Noções de SQL
A estrutura básica de um comando SQL é o seguinte:
Select campos do arquivo
From Arquivos
Where condições de filtragem
Na instrução Select você deverá inserir quais os campos do arquivo que
deverão ser retornados. Este recurso é muito importante pois quanto menos campos
fornem solicitados mais rápida será a consulta. Você deve inserir os nomes dos
campos separados por virgula, caso você queira trazer todos os campos da tabela
deverá inserir um sinal de asterísco “*” entre a instrução Select e From.
Na instrução From você deverá inserir quais os arquivos que serão utilizados
para a consulta separados por virgula. Este é um dos motivos pelo qual não se deve
utilizar o mesmo nome de campos em tabelas diferentes, digamos que eu tenha duas
tabelas, uma de Clientes e outra de Fornecedores, e nas duas tabelas eu tenho um
campo que se chama NOME e eu quero trazer todos os nomes de meus cliente e
fornecedores em uma única consulta, a instrução SQL seria a seguinte
Select NOME
From Clientes, Fornecedores
Não há como a instrução saber a qual tabela pertence o campo nome e isto
gera um problema.
Na instrução Where você deverá inserir as opções de filtragem, por exemplo,
se eu tivesse uma tabela Clientes com os seguintes campos:
CLIE_CODIGO Integer
CLIE_NOME
String
-
Identificador do registro
Descrição do Cliente
Digamos que eu queira trazer os nomes dos clientes com código maior que 20,
a instrução SQL seria a seguinte:
Select CLIE_NOME
From Clientes
Where CLIE_CODIGO > 20
Comandos SQL
Existem ainda comandos que
são eles:
auxiliam no desenvolvimento de uma consulta,
Distinct – Retorna registros distíntos, ou seja diferentes uns dos outros;
SUM() – Efetua uma soma de campos;
AVG() – Retorna a média entre campos;
MIN() – Retorna o número minimo de um campo;
MAX() – Retorna o número máximo de um campo;
COUNT() – Retorna o número de ocorrencias deste campo;
Group by – Utilizado com o comando Sum(), este comando agrupa a soma á um valor
de um registro chave;
Order by – Ordena o resultado da consulta pelo campo determinado.
Descending – Utilizado com o comando Order by define se a ordem deve ser
decrescente.
Extract – Utilizado para extrair o dia (day), mês(Month) ou ano(Year) de uma data.
LIKE – Utilizado para pesquisar uma sub-string;
Operadores SQL
Os operadores utilizados para as comparações em SQL são os seguintes:
* Matemáticos =
+ , - , / , *
* Relacionais
=
> , < , = , <> , >= , <=
* Lógicos
= AND, OR, NOT
Exemplos de comandos SQL
a)
Select *
From Clientes
Where CLIE_NOME LIKE “%Fabio%”
Order by CLIE_CIDADE
Retornará todos os campos da tabela Clientes que contenham no campo CLIE_NOME o
texto Fabio ordenado pelo campo CLIE_CIDADE.
b)
Select Distinct CLIE_ENDERECO
From Clientes
Retornará o campo CLIE_ENDERECO da tabela de Cliente sendo que não será retornado
registros repetidos.
Select FAT_CLIENTE, Sum(FAT_VALOR)
From Faturas
Where FAT_CLIENTE in (10,20,30,40)
Group by FAT_CLIENTE
Retornará o campo FAT_CLIENTE e a soma do campo FAT_VALOR da tabela de Fatura onde
FAT_CLIENTE esteja inserido no grupo (10,20,30,40) e irá agrupar a soma pelo código
dos clientes.
Select *
From Compras
Where Extract(Month From COMP_DATA) = 2
Retornará todos os campos da tabela de Compras onde o mês da data da compra
seja igual a 2.
Apostila Prática
Exercício 1
Passos:
Abra uma nova aplicação através do menu “File -> New Application”;
Salve o Projeto com o nome Introduc.DPR e a unit como U_Int.PAS;
Inclua um componente Button no formulário;
Selecione o componente Button1;
No Object Inspector insira o texto “&Fechar” na propriedade Caption;
No Object Inspector selecione a palheta Events;
Dê um duplo clique no evento OnClick;
Insira o seguinte código:
Form1.Close;
Inclua um componente Edit no formulário;
Inclua mais um componente Button no formulário;
Selecione o componente Button2;
No Object Inspector insira o texto “Alterar Título” na propriedade Caption;
No Object Inspector seleciona a palheta Events;
Dê um duplo clique no evento OnClick;
Insira o seguinte código:
Form1.Caption := Edit1.Text;
Ajuste o tamanho do formulário para que ele fique parecido com a figura abaixo;
Salve o projeto pressionando o botão Save All da palheta de ferramentas.
Execute o projeto pressionando o botão Run da palheta de ferramentas.
Descrição:
Este programa não tem uma função útil, ele simplesmente altera o título da janela
(Botão “Alterar Título”) e fecha a janela (Botão “Fechar”), mas é um bom exemplo
de alterações de propriedades via código.
Discussão do Código:
Nós inserimos duas linhas de código:
1. Form1.Close – Chama o método Close do componente Form1. Este método fecha o
formulário sem destruí-lo, ou seja, não o retira da memória. Como o formulário
que estamos fechando é o formulário principal da aplicação a aplicação é encerrada.
Outra forma de fechar a aplicação é utilizando o método Terminate do Objeto
Application da seguinte forma :
Application.Terminate;
2. Form1.Caption := Edit1.Text – Este código atribui o texto da propriedade Text
do componente Edit1 na propriedade Caption do componente Form1. A propriedade
Caption, no formulário, é responsável pela exibição do título, quando esta
propriedade é alterada o título do formulário também o será automaticamente. É
importante observar que as duas propriedades (Caption e Text) são do mesmo tipo
(String), se isso não fosse verdadeiro seria necessário converter os tipos, isso
será visto mais tarde.
Exercício 2
Passos:
Abra o projeto Introduc.DPR pressionando o botão Open Project da barra de
Ferramentas.
Inclua um componente RadioGroup no formulário;
Dê um duplo clique na propriedade Items do componente RadioGroup e a janela String
list editor será aberta:
Insira as seguintes linhas nesta janela:
MessageBox
MessageDlg
ShowMessage
A propriedade ItemIndex do componente RadioGroup deve estar com o valor igual a
–1, altere este valor para 0;
Ajuste o formulário para que ele fique parecido com a figura abaixo:
Selecione o botão “Alterar Título” e no seu evento OnClick insira o seguinte código:
Form1.Caption := Edit1.Text;
If RadioGroup1.ItemIndex = 0 then
Application.MessageBox(‘Título alterado com
sucesso’,’ATENÇÃO’,mb_iconexclamation + mb_ok)
Else If RadioGroup1.ItemIndex = 1 then
MessageDlg(‘Título alterado com sucesso’,mtInformation,mb_OK,0)
Else If RadioGroup1.ItemIndex = 2 then
ShowMessage(‘Título alterado com sucesso’);
Salve o projeto pressionando o botão Save All da palheta de ferramentas.
Execute o projeto pressionando o botão Run da palheta de ferramentas.
Descrição:
Este programa é uma continuação do anterior. Nesta versão é utilizada um
RadioGroup para que o usuário selecione que tipo de mensagem quer ver quando a
operação de alteração de título estiver concluída.
Discussão do Código:
Nós inserimos apenas uma rotina neste código:
Form1.Caption := Edit1.Text
Atribui o conteúdo da propriedade Text do componente Edit1 à propriedade Caption
do componente Form1.
If RadioGroup1.ItemIndex = 0 then
Application.MessageBox(‘Título alterado com
sucesso’,’ATENÇÃO’,mb_iconexclamation + mb_ok)
Se o usuário selecionou a primeira opção do RadioGroup então é exibida uma mensagem
com a função MessageBox.
Else If RadioGroup1.ItemIndex = 1 then
MessageDlg(‘Título alterado com sucesso’,mtInformation,mb_OK,0)
Se o usuário selecionou a Segunda opção do RadioGroup então é exibida uma mensagem
com a função MessageDlg.
Else If RadioGroup1.ItemIndex = 2 then
ShowMessage(‘Título alterado com sucesso’);
Se o usuário selecionou a última opção do RadioGroup então é exibida uma mensagem
com a função ShowMessage.
Exercício 3
Passos:
Selecione o menu “New -> New Applicatio”;
Salve o projeto como “CONDIC.DPR” e o formulário como “PRINCIPA.PAS”;
Inclua um botão no formulário e altere sua propriedade Caption para “&Fechar”;
Selecione o formulário e no seu evento OnClick inclua o seguinte código:
ShowMessage(‘Recebi um clique’);
Selecione o botão e no seu evento OnClick inclua o seguinte código:
If Application.Messagebox(‘Deseja realmente sair?’,’ATENÇÃO’, mb_Iconquestion +
mb_yesno) = idyes then
Close
Else
ShowMessage(‘Beleza’);
Salve o projeto pressionando o botão Save All da palheta de ferramentas.
Execute o projeto pressionando o botão Run da palheta de ferramentas.
Descrição
Este programa envia uma mensagem ao usuário toda vez que este dá um clique
sobre o formulário e quando o usuário quiser sair ele é questionado.
Discussão do Código:
ShowMessage(‘Recebi um clique’);
Este código foi inserido no evento OnClick do formulário e exibe a mensagem Recebi
um clique.
If Application.Messagebox(‘Deseja realmente sair?’,’ATENÇÃO’, mb_Iconquestion +
mb_yesno) = idyes then
Close
Else
ShowMessage(‘Beleza’);
Este código foi inserido no evento OnClick do botão e chama uma caixa de mensagem
através da função MessageBox. Caso o usuário tenha pressionado o botão Yes na caixa
de mensagem é executado o método Close, que fecha o formulário, senão é enviada
mais uma mensagem ao usuário (Beleza)
Exercício 4
Crie um novo aplicativo e salve-o como Multi.DPR e Principa.PAS (O nome do
arquivo DPR e do arquivo PAS não podem ser iguais).
Inclua no form1 um componente MainMenu e crie o seguinte menu:
Cadastro
Clientes
Fornecedores
Produtos
Sair
Movimento
Compras
Vendas
Serviços
Consultas
Relatórios
Mala direta
Inclua um novo formulário no projeto pressionando o botão New Form da barra
de tarefas.
Salve novamente o projeto e dê à unit1 o nome de Clientes.PAS;
Guia de Referência
1 - Guia de Referencia
- Componentes
1. Animate
Componente da palheta Win95 que exibe animacoes AVI. Este componente e utilizado,
geralmente em operacoe demoradas para distrair o usuario enquanto a operacao não
for concluida.
2. Bevel
Componente da palheta Additional utilizado para formatar o formulario. Este
componente exibe linhas em alto ou baixo relevo, geralmente utilizadas para separar
grupos de dados ou botoes.
3. BitBtn
Componente da palheta Additional utilizado como ferramenta de interface com o
usuario. Este e o botao mais completo do Delphi, ele tem e executa todas as funcoes
dos demais botoes alem de outras. Este botao possui funcoes pre-determinadas em
sua propriedade Kind e permite que seja inserida uma imagem em sua face.
4. CheckBox
Componente da palheta Standart utilizado como ferramenta de interface com o
usuario. Este componente tem a única e exclusiva funcao de indicar se uma condicao
e verdadeira ou falsa, ou seja, quando ele esta checado significa que a condicao
que ele representa e verdadeira, quando não significa que e falsa.
5. ComboBox
Componenete da palheta Standart que consiste em uma caixa de edição onde o usuário
pode inserir um texto e em uma lista de itens pré-determinados que podem ser
selecionados.
6. DataSource
Componente da palheta Data Access que estabelece a conexão entre componentes de
acesso a bancos de dados e componentes que exibem os valores de campos de bancos
de dados.
7. DBCheckBox
Componente da palheta Data Controls que permite ao usuário selecionar ou não uma
opção no aplicativo. Este controle é semelhante ao CheckBox, exceto que o seu valor
está associado a um campo de um registro de um banco de dados. Quando o componente
estiver selecionado, então a string armazenada em sua propriedade ValueChecked
será igual à armazenada no campo correspondente do banco de dados. Se o componente
não estiver selecionado, então a string armazenada em sua propriedade
ValueUnChecked será igual à armazenada no campo correspondente do banco de dados.
8. DBComboBox
Componente da palheta Data Controls que consiste em uma caixa de edição onde o
usuário pode inserir valores e uma lista de itens que podem ser selecionados. Este
componente é semelhante ao ComboBox, exceto que o seu vlor está associado a um
campo de um registro de um banco de dados. Quando o usuário digita ou seleciona
um item, a string correspondente será armazenada no campo respectivo do banco de
dados.
9. DBCtrlGrid
Componente da palheta Data Controls semelhante ao componente DBGrid, com a
diferença de que este permite que se controle o layout e a aparência de cada registro
de um banco de dados exibido em uma grade. Sua aplicação pode usar a grade para
exibir, inserir, deletar ou editar campos do banco de dados associado.
10. DBEdit
Componente da palheta Data Controls que consiste em uma caixa de edição onde o
usuário pode digitar um texto. Este componente é semelhante ao Edit, exceto que
o seu valor está associado a um compo de um registro de um banco de dados. Quando
o usuário digita um texto na caixa de edição, a string correspondente será
armazenada no campo respectivo do banco de dados.
11. DBGrid
Componente da palheta Data Controls que permite o acesso aos dados de um banco
de dados e exibi-los em uma grade. Sua aplicação pode usar a grade para exibir,
inserir, deletar ou editar campos do banco de dados associado.
12. DBImage
Componente da palheta Data Controls que permite exibir uma imagem armazenada em
um campo de um registro de um banco de dados como um objeto BLOB (Bynary Large
Object).
13. DBListBox
Componente da palheta Data Controls que consiste em uma caixa de Listagem. Este
controle é semelhante ao ListBox, exceto que o seu valor está associado a um campo
de um registro de um banco de dados. Quando o usuário seleciona um item da caixa
de listagem, a string correspondente será armazenada no campo respectivo do banco
de dados.
14. DBLookupCombo
Componente da palheta Data Controls que consiste em uma caixa combo que está
associada aos campos de um banco de dados. Este componente é semelhante a ComboBox,
exceto que o seu valor está associado a um campo de um registro de um banco de
dados.
15. DBLookupListBox
Componente da palheta Data Controls que consiste em uma caixa de listagem que está
associada aos campos de um banco de dados. Este componente é semelhante ao ListBox,
exceto que o seu valor está associado a um campo de um registro de um banco de
dados.
16. DBMemo
Componente da palheta Data Controls que exibe texto para o usuário e permite que
o usuário digite dados no componente. Este componente é semelhante ao Memo, exceto
que o seu valor está associado a um campo de um registro de um banco de dados.
Quando o usuário digita um texto no componente, este texto será armazenado no campo
respectivo do banco de dados.
17. DBRadioGroup
Componente da palheta Data Controls que permite a exibição de um conjunto de botões
de rádio que representam opções mutuamente exclusivas. Este componente é
semelhante ao Radio Group, exceto que neste caso as opções represntadas pelos
botões de rádio estão associadas a campos de registros de um banco de dados.
18. DBRitchEdit
Componente da palheta Win32 que permite a exibição de uma grande quantidade de
texto com a possibilidade de formatação do texto inserido.
19. DBText
Componente da palheta Data Controls que permite a exibição de um texto em um
formulário. Este componente é semelhante ao Label, exceto que neste caso o texto
exibido está associado a um campo de um registro de um banco de dados.
20. Edit
Componente da palheta Standart que
pode inserir um texto.
21.
Principal
inseridos
uma caixa
consiste em uma caixa de edição onde o usuário
Form
componente de uma aplicação desenvolvida em Delphi, pois é nele que são
os demais componentes. Este componente pode ser usado como uma janela,
de diálogo ou qualquer tipo de formulário para entrada de dados.
22. GroupBox
Componente da palheta Standart que permite agrupar componentes que se relacionam,
como botões de rádio, por exemplo.
23. HTML
Componente da palheta Internet que abre uma pagina HTML.
24. Image
Componente da palheta Additional que exibe uma imagem em um formulário.
25. Label
Componente da palheta Standart que permite a exibição de um texto em um Formulário.
26. ListBox
Componente da palheta Standart que consiste em uma caixa de listagem na qual o
usuário pode selecionar um ou mais itens.
27. MainMenu
Componente da palheta Standart utilizado para moldar um menu no formulário.
28. MaskEdit
Componente da palheta Additional que consiste uma caixa de edição especial, na
qual o usuário só pode digitar um conjuto de caracteres definidos como válidos.
29. Memo
Componente da palheta Standart que exibe um texto para o usuário e permite que
o usuário digite dados no componente. Ao contrário do componente Edit, este
componente permite múltiplas linhas.
30. OpenDialog
Componente da palheta Dialogs que fornece uma caixa de diálogo padrão Windows para
a abertura de arquivos.
31. Panel
Componente da palheta Standart que permite que se coloquem painéis em formulário,
nos quais podem ser inseridos outros componentes.
32. PopupMenu
Componente da palheta Standart que cria um menu flutuante.
33. ProgressBar
Componente da palheta Win95 utilizada para exibir o progresso da execução de uma
tarefa.
34. QRDBText
Componente da palheta Report que exibe em um relatório o valor de um campo de um
banco de dados.
35. QRExpr
Componente da palheta Report que executa uma expressão e exibe o resultado em um
relatório.
36. QRSubDetail
37 . QRSysData
Componente da palheta Report que exibe dados do sistema em um relatório.
38. QuickRep
39. RadioButton
Componente da palheta Standart que permite ao usuário selecionar ou não uma opção
do aplicativo.
40. RitchEdit
Componente da palheta Win95 semelhate ao componente Memo, mas permite a aplicação
de fontes com diferentes atributos a partes distintas do texto inserido no
componente.
41. SaveDialog
Componente da palheta Dialogs que fornece uma caixa de diálogo padrão do Windows
para salvar arquivos.
42. SpeedButton
Componente da palheta Additional que permite a inclusão de um bitmap na sua faze
e normalmente é usado como botão de uma barra de ferramentas.
43. StatusBar
Componente da palheta Win95 que permite que se exiba uma barra de status na janela
principal de uma aplicação para transmitir informações ao usuário.
44. StringGrid
Componente da palheta Additional que permite a exibição de um conjunto de strings
e dados na forma de um arranjo de linhas e colunas.
45. Table
Componente da palheta Data Access que permite o acesso a tabelas de bancos de dados.
Esta componente é responsável pela abertura de um arquivo de dados.
46. Timer
Componente da palheta System que dispara um evento OnTimer a intervalos regulares
de tempo.
- Propriedades
AutoMerge
Propriedade do tipo Lógica que determina se os menus de diversos formulários devem
ser combinados automaticamente.
Active
Propriedade do tipo Lógico que diz se um componente está ou não ativo.
ActiveControl
Propriedade do tipo TwinControl, que indica o componente que possui o foco da
aplicação.
Align
Propriedade do tipo Talign que determina como deve ser o alinhamento do componente
em relação ao seu componente-pai (arqule que o contém).
Valores
AlNone O componente permanece no local em que foi colocado no formulário (valor
default). AlTop O componente se desloca para o topo do componente-pai e é
automaticamente redimensionado, de forma a ocupar toda a largura do
componente-pai, mantendo-se a sua altura original. AlBottom O componente se
desloca para a base do componente-pai e é automaticamente redimensionado, de forma
a 0ocupar toda a lartgura do componente-pai, mantendo-se a sua altura original.
AlLeft O componente se desloca para a extremidade esquerda do componente-pai e
é automaticamente redimencionado, de forma a ocupar toda a altura do
componente-pai, mantendo-se a sua largura original. AlRight O componente se
desloca para a extremidade esquerda co componente-pai e é automaticamente
redimensionado, de forma a ocupar toda a altura do componente-pai, mantendo-se
a sua largura original. AlClient O componente é redimensionado para ocupar toda
a área-cliente do componente-pai.
Alignment
Para os componentes CheckBox, DBCheckBox e RadioButton, esta propriedade determina
como deve ser o alinhamento do texto da propriedade Caption do componente.
Para o componente PopupMenu esta propriedade determina onde o menu flutuante deve
aparecer quando o usuário clicar o botão direito do mouse.
Para os componentes Label, Memo, QRLabel, Panel e RichEdit, esta propriedade define
como deve ser o alinhamento do texto no componente.
Valores para os componentes CheckBox, DBCheckBox e RadioButton.
TaLeftJustify O texto é exibido do lado esquerdo do conponente. TaRightJustify
O texto é exibido do lado direito do componente.
Valores para o componente PopupMenu.
PaLeftta O menu flutuante é exibido com o seu canto superior esquerdo sob o ponteiro
do mouse PaCenter O menu flutuante é exibido com o centro da sua borda superior
sob o ponteiro do mouse. PaRight O menu flutuante é exibido com o seu canto
superior direito sob o ponteiro do mouse.
Valores pra os componentes Label, Memo, QRLabel, Panel e RichEdit
TaCenter O texto é exibido centralizado no componente. TaLeftJustify O texto é
exibido do lado esquerdo do componente. TaRightJustify O texto é exibido do lado
direito do componente.
AllowDelete
Propriedade do tipo Lógico que determina se o usuário pode deletar o registro
corrente usando a combinação de teclas Ctrl+Delete.
AllowGrayed
Propriedade do tipo Lógico que determina se o componente pussuirá dois ou três
estados. Se for igual a True, o componente poderá possuir três estados: cbChecked,
cbUnchecked e cbGrayed. A diferença entre os estados cbGrayed e cbChecked é que
no primeiro caso a marca de verificação aparece com uma cor cinza.
AllowInsert
Propriedade do tipo Lógico que determina se o usuário pode inserir ou adicionar
um registro usando a tecla Insert ou Ctrl+Insert.
AutoCalcFields
Propriedade do tipo Lógico que determina se o evento OnCalcFields deve ser
disparado quando a aplicação carrega um novo registro do Banco de Dados.
AutoDisplay
Propriedade do tipo Lógico que define se o conteúdo do componente deve ser exibido
automaticamente.
.
AutoEdit
Propriedade do tipo Lógico que define se os controles conectados aum componente
DataSource estarão ou não em modo de edição constante.
AutoSelect
Propriedade do tipo Lógico que determina se o texto exibido pelo componente será
selecionado quando este receber o foco da aplicação.
AutoSize
Propriedade do tipo Lógico que determina se o componente será automaticamente
redimencionado para acomodar o seu conteúdo
AutoScroll
Propriedade do tipo Lógico que determina se o componente exibirá automaticamente
as barras de rolagem quando não for grande o suficiente para exibir todos os
componentes que contém.
BorderIcons
Propriedade do tipo TborderIcons que consistem em um conjunto de variáveis que
determina os ícones a serem exibidos na barra de título de um formulário.
Valores
BiSystemMenu O formulário possui um menu de sistema.
BiMinimize O formulário
possui um botão de minimização. BiMaximize O formulário possui um botão de
maximização.
BorderStyle
No Formulario esta propriedade é do tipo TformBorderStyle e determina o estilo
de borda do componente.
Para os demais componentes esta propriedade é do tipo TborderStyle e determina
se o componente terá ou não uma borda.
Valores para o Formulario
BsDialog Borda não redimensionável, comum em quadros de diálogo. BsSingle Borda
simples e redimensionável BsNone Borda invisível, não redimensionável, sem
botões de maximização, minimização e menu de sistema. BsSizeable Borda padrão
redimensionável.
Valores para os demais componentes
BsNone Sem borda BsSingle Borda Simples
Cancel
Propriedade do tipo lógico que indica se um componente Button ou BitBtn associa
o seu evento OnClic ao pressionamento da tecla ESC.
Caption
Propriedade do tipo String que indica o rótulo exibido para o componente. Para
transformar um dos caracteres do rótulo em uma tecla de atalho basta colocar um
“E comercial” – (&) antes do caracter.
Center
Propriedade do tipo Lógico que determina se a imagem deve ser exibida centralizada
no componente. Se for igual a False, o alinhamento da imagem e do controle é feito
coincidindo-se a extremidade superior esquerda.
CharCase
Propriedade do tipo TeditCharCase que define se o texto exibido pelo componente
deve aparecer apenas em letras maiúsculas, apenas em letras minúsculas ou em letras
maiúsculas e minúsculas.
Valores
EcLowerCase Texto exibido em letras minúsculas. EcNormal Texto exibido em letras
maiúsculas e minúsculas. EcUpperCase Texto exibido em letras maiúsculas.
Checked
Propriedade do tipo Lógico que determina se o componente está selecionado.
Valores para os componentes CheckBox e DBCheckBox:
True O componente está selecionado e apresenta uma marca de verificação na cor
preta. False O componente não está selecionado; apresenta uma marca de
verificação na cor cinza ou não apresenta uma marca de verificação.
Valores para o componente RadioButton:
True O componente está selecionado e apresenta um círculo na cor preta. False
O componente não está selecionado e não paresenta um círculo na cor preta.
ClientHeight
Propriedade to tipo Inteiro que define a altura, em pixel, da área-cliente de um
componente.
ClientWidth
Propriedade do tipo Inteiro que define a largura, em pixels, da área-cliente de
um componente.
ColCount
Propriedade do tipo Inteiro que define o número de colunas do componente.
Color
Propriedade do tipo Tcolor que define a cor de fundo de um componente.
Columns
Propriedade do tipo Inteiro que indica o número de colunas do componente.
CommonAVI
Propriedade do tipo TCommonAVI que define qual a anivação padrão em um componente
Animate.
Ctl3D
Propriedade do tipo Lógico que determina se o controle terá um aspecto
tridimensional (True) ou bidimensional (False).
Cursor
Propriedade do tipo Tcursor que indica a imagem exibida pelo ponteiro do mouse
quando este passa sobre o componente.
DataField
Propriedade do tipo String que indica o campo a que este componente corresponde
no registro de um banco de dados.
DataSet
Propriedade do tipo TdataSet e indica o componente Table ou Query que representa
um Banco de Dados ao qual o componente será associado.
DataSource
Propriedade do tipo TdataSource que indica o componente ao qual está vinculado
o Banco de Dados cujos campos se quer exibir.
Default
Propriedade do tipo Lógico que indica se um componente Button ou BitBtn associa
o seu evento OnClick ao pressionamento da tecla Enter.
DefaultExt
Propriedade do tipo TfileExt que especifica a extensão a ser adicionada ao nome
de um arquivo quando o usuário digita o nome de um arquivo sem a sua extensão.
DropDownAlign
Propriedade que define o tipo de alinhamento do texto exibido na lista drop-down
mostrada pelo componente.
Valores:
DaLeft Alinhamento à esquerda. DaCenter Alinhamento pelo centro. DaRight
Alinhamento à direita.
DropDownCount
Propriedade do tipo Inteiro que define o número máximo de elementos a serem exibidos
simultaneamente numa lista DropDown.
DropDownRows
Propriedade do tipo Inteiro que define o número de colunas a serem exibidos
simultaneamente numa lista DropDown.
DropDownWidth
Propriedade do tipo Inteiro que define, em pixels, a largura da lista drop-down
exibida pelo componente.
EditMask
Propriedade do tipo string que define a máscara que limita os dados que podem ser
digitados no componente.
Enabled
Propriedade do tipo Lógico que define se o componente está habilitado (True)
ou desabilitado (False).
FileName
Propriedade do tipo String que indica qual o nome de um arquivo utilizado por um
componente.
Filter
Propriedade do tipo String que define a filtragem de uma seleção de dados.
FixedColor
Propriedade do tipo Tcolor e especifica a cor das colunas e linhas fixas em um
componente de grade.
Font
Propriedade do tipo Tfont e controla os atributos do texto exibido por um
componente.
FormStyle
Propriedade do tipo TformStryle que determina o estilo do formulário.
Valores
FsNormal Definição padrão de formulário. FsMDIChild O formulário será uma
janela-filha de uma aplicação MDI. FsMDIForm O formulário será o formulário-pai
de uma aplicação MDI. FsStayOnTop O formulário permanece sobre todos os outros
formulários do projeto, exceto aqueles que também têm a propriedade FormStyle igual
a fsStayOnTop.
Glyph
Propriedade do tipo Tbitmap que define o bitmap que aparece em um botão BitBtn
ou SpeedButton.
Height
Propriedade do tipo Inteiro que define a dimensão vertical, em pixels, de um
componente.
HideScrollBars
Propriedade do tipo Lógico que define se as barras de rolagem não devem ser exibidas
quando não forem necessárias.
HideSelection
Propriedade do tipo Lógico que define se um texto selecionado permanece selecionado
quando o componente perde o foco.
Hint
Propriedade do tipo string que contém o texto que é exibido ao usuário quando este
deixa o cursor do mouse sobre o componente. Para que este texto seja exibido a
propriedade ShowHint deve estar especificada como True.
InitialDir
Propriedade do tipo String que define o diretório inicial quando a caixa de diálogo
é aberta.
Items
Propriedade do tipo Tstrings que define a lista de strings que aparecem no
componente.
KeyField
Propriedade do tipo String que define o nome do campo do banco de dados definido
na sua propriedade ListSource que corresponde ao compo definido na propriedade
DataField.
KeyPreview
Propriedade do tipo Lógico que define se o formulário deve ou não responder a um
pressionamento de tecla, através dos eventos OnKeyDown, OnKeyPress e OnKeyUp, em
vez de acionar os eventos do componente.
Kind
Propriedade do tipo TbitBtnKind que define o tipo de Bitmap exibido pelo botão
e a função do botão.
Layout
Propriedade do tipo TbuttonLayout que define onde o bitmap aparece em um botão
BitBnt ou Speedbutton.
Valores
BlGlyphLeft A imagem aparece próxima ao lado esquerdo do botão. BlGlyphRight A
imagem aparece próxima ao lado direito do botão. BlGlyphTop A imagem aparece
próxima ao topo do botão. BlGlyphBottom A imagem aparece próxima à base do botão.
Left
Propriedade do tipo Inteiro que define, em pixels, a coordenada da extremidade
esquerda de um componente em relação à extremidade esquerda do formulário que o
contém.
ListField
Propriedade do tipo String que define o nome do campo do banco de dados cujos valor
é exibido no componente. Se não for especificado um valor para esta propriedade,
será usado o valor armazenado na propriedade KeyField.
ListSource
Propriedade do tipo TdataSource que define o nome do componente que faz a conexão
com a tabela de dados do qual será selecionado um campo cujo valor será exibido
pelo componente.
Margin
Propriedade do tipo Inteiro que define, em pixels, a distância entre um dos lados
do bitmap e o lado correspondente do botão que o contém.
MaxLength
Propriedade do tipo Inteiro que define o número máximo de caracteres que podem
ser digitados no componente.
Orientation
Propriedade do tipo Torientation que define se a orientação do componente será
em Horizontal ou Vertical.
Valores para componentes do tipo TPrinter
PoPortrait Página impressa verticalmente.
PoLandscape
Valores para do tipo TDBCtrlGrid
RoHorizontal Painéis internos dispostos horizontalmente. RoVertical Painéis
internos dispostos verticalmente.
PanelBorder
Propriedade do tipo TDBCtrlGridBorder e define o tipo de borda desenhada ao redor
de cada um dos seus painéis internos.
Valores
GbNone Painéis sem borda. GbRaised Painéis com bordas elevadas.
PanelHeight
Propriedade do tipo Inteiro que especifica a altura de cada painel do componente.
PanelWidth
Propriedade do tipo Inteiro que especifica a largura de cada painel do componente.
ParentColor
Propriedade do tipo lógico que define se o valor da propriedade Color do componente
atual deve ou não ser igual à propriedade Color do seu componente-pai.
ParentCtl3D
Propriedade do tipo lógico que define se o valor da propriedade ctl3D do
componente atual deve ou não ser igual à propriedade Ctl3D do seu componente-pai.
ParentFont
Propriedade do tipo lógico que define se o valor da propriedade Font do componente
atual deve ou não ser igual à propriedade Font do seu componente-pai.
ParentShowHint
Propriedade do tipo lógico que define se o valor da propriedade ShowHint do
componente atual deve ou não ser igual à propriedade ShowHint do seu
componente-pai.
PasswordChar
Propriedade do tipo Char que permite a criação de uma caixa de edição que exiba
caracteres especiais ao invés do texto digitado.
Picture
Propriedade do tipo Tpicture que define a imagem a ser exibida pelo componente.
PlainText
Propriedade do tipo lógico que define se o texto será exibido com um único tipo
de formatação ou com atributos de formatação distintos.
PopupMenu
Propriedade do tipo TpopupMenu que define o nome do menu flutuante que aparece
quando o usuário seleciona um componente e pressiona o botão direito do mouse.
Position
Propriedade do tipo Tposition que define o tamanho e posição de um formulário no
momento em que ele aparece na sua aplicação.
Valores
PoDesigned O formulário aparece no mesmo tamanho e posição exibidos na fase de
projeto PoDefault O formulário aparece com o tamanho e posição a serem definidos
pelo Delphi. PoDefaultPosOnly O formulário aparece no mesmo tamanho exibido na
fase de projeto, mas a posição é definida pelo Delphi. PoDefaultSizeOnly O
formulário aparece na mesma posição exibida na fase de projeto, mas o tamanho é
definido pelo Delphi. PoScreenCenter O formulário aparece no mesmo tamanho
exibido na fase de projeto, mas a posição é sempre no centro da tela.
QuickDraw
Propriedade do tipo lógico que define se a imagem a ser exibida no componente deverá
ser desenhada rapidamente e com qualidade inferior ou com qualidade superior.
ReadOnly
Propriedade do tipo Lógico que define se o componente é do tipo Somente Leitura
ou não.
Repetitions
Propriedade do tipo Inteiro que define quantas vezes uma animação deve se repetir.
Se esta propriedade for igual a 0 terão infinitas repetições.
RowCount
Propriedade do tipo Inteiro que define o número de linhas do componente.
ScrollBars
Propriedade do tipo TscrollStyle que define se o componente possui ou não barras
de rolagem.
Valores
SsNone Nenhuma barra de rolagem SsHorizontal Barra de rolagem horizontal na base
do componente SsVertical Barra de rolagem vertical do lado direito do componente.
SsBoth Barras de rolamento horizontal e vertical.
SelectedColor
Propriedade do tipo Tcolor, e define a cor da gua selecionada em um componenteem
um componente TabSet.
Shape
Propriedade que define o formato geométrico do componente.
Valores para componente Bevel
BsBox Forma de uma caixa. BsFrame Forma de um quadro. BsTopLine Apresenta uma
linha no topo do componente. BsBottonLine Apresenta uma linha na base do
componente. BsLeftLine Apresenta uma linha na lateral esquerda do componente.
BsRightLine Apresenta uma linha na lateral direita do componente.
ShowFocus
Propriedade do tipo lógico que define se um retângulo de foco deve ser desenhado
no painel que exibe o registro corrente.
ShowHint
Propriedade do tipo lógico que define se uma string de auxílio deve ou não ser
exibida quando o usuário mantém o ponteiro do mouse sobre um componente.
Stretch
Propriedade do tipo lógico que define se uma imagem deve ser redimensionada de
forma a assumir o tamanho do componente que vai exibi-la.
Sorted
Propriedade do tipo lógico que define se os items de um componente estão ordenados
alfabeticamente.
Spacing
Propriedade do tipo Inteiro que define a distância, em pixels, entre a imagem
gráfica e o texto.
StartFrame
Propriedade do tipo Inteiro que define em que quadro a animação deve iniciar.
State
Propriedade que define os vários estados que podem ser assumidos pelo componente.
Valores para os componente CheckBox e DBCheckBox:
CbUnchecked O componente não apresenta uma marca de verificação. CbCheckBox O
componente apresenta uma marca de verificação na cor preta. CbGrayed O componente
apresenta uma marca de verificação na cor cinza, indicando que o componente está
num terceiro estado.
Valores para os componentes DataSource, Table e Query.
DsInactive O Banco de Dados está fechado. DsBrowse O Banco de Dados está sendo
consultado. DsEdit O Banco de Dados está sendo editado. DsInsert O Banco de dados
permite inclusão de registros. DsSetKey O Banco de Dados está definindo
registros-chave. DsCalcFields O evento OnCalcFields foi acionado.
Style
Propriedade que define o estilo de apresentação de um componente.
Valores para o componente Bevel
BsLowered Apresenta-se me baixo relevo BsRaised Apresentase em alto relevo.
Valores para o Objeto Tfont
FsBold Negrito FsItalic Itálico FsUnderline Sublinhado FsStrikeOut A fonte é
contrada por uma linha horizontal.
Valores para o componente ComboBox
CsDropDown Cria uma lista drop-down com uma caixa de edição na qual o usuário pode
digitar o texto. CsSimple Cria uma caixa de edição sem uma lista drop-down.
CsDropDownList Cria uma lista drop-down sem uma caixa de edição. CsOwnerDrawFixed
Cria uma lista drop-down sem caixa de edição em que os itens podem ser qualquer
objeto definido pelo usuário, e não apenas strings, sendo que todos têm altura
fixa. CsOwnerDrawVariable Cria uma lista drop-down sem caixa de edição em que
os itens podem ser qualquer objeto definido pelo usuário, e não apenas strings,
sendo que não têm altura fixa.
Valores para o componete ListBox
LbOwnerDrawFixed Os itens podem ser qualquer objeto definido pelo usuário, e não
apenas strings, sendo que todos têm altura fixa, definida pelo propriedade
ItemHeight. LbOwnerDrawVariable Os itens podem ser qualquer objeto definido pelo
usuário e não apenas strings, sendo que não têm altura fixa. LbStandard Todos
os itens são strings e possuem mesma altura.
Valores para componentes BitBtn e SpeedButton
BsAutoDetect O bitmap possui o aspecto da versão do Windows sob a qual o aplicativo
está sendo executado. BsWin31 O bitmap possui o aspecto da versão 3.1 do Windows,
independente da versão do Windows sob a qual o aplicativo está sendo executado.
BsNew O bitmap possui um novo aspecto, independente da versão do Windows sob a
qual o aplicativo está sendo executados.
StopFrame
Propriedade do tipo inteiro que define que em quadro a animação deve parar.
TabOrder
Propriedade do tipo Inteiro que define a ordem segundo a qual os diversos
componentes de um formulário recebem o foco da aplicação quando o usuário pressiona
a tecla Tab.
TabStop
Propriedade do tipo lógico que define se um componente pode ou não receber o foco
da aplicação quando o usuário pressiona a tecla Tab.
Tag
Propriedade do tipo Longint que é colocada em todos os componentes para que possa
ser utilizada como for mais conveniente.
Text
Propriedade do tipo String que contém o texto inserido em um componente.
TitleFont
Propriedade do tipo Tfont que determina o tipo de fonte usada para exibir os títulos
das colunas da grade.
Top
Propriedade do tipo Inteiro que define a coordenada da extremidade superior de
um componente em relação à extremidade superior do formulário que o contém.
Transparent
Propriedade do tipo lógico que define se o componente será exibido com a cor
definida na sua propriedade Color ou com a cor do componente sobre o qual está
posicionado.
ValueChecked
Propriedade do tipo String cujo valor será atribuído a um campo de dados
registro corrente quando o usuário selecionar o componente.
do
Values
Propriedade do tipo Tstring que armazena uma lista de strings em que cada item
vai corresponder a um possível valor de um campo em u registro do banco de dados.
ValueUnchecked
Propriedade do tipo String cujo valor será atribuído a um campo de dados do registro
corrente quando o usuário retirar a seleção do componente.
Visible
Propriedade do tipo lógico que define se o componente aparece ou não na tela.
WantReturns
Propriedade do tipo lógico que define se a tecla Enter está habilitada em um
componente.
WantTabs
Propriedade do tipo lógico que define se a tecla Tab está h
Download