- Curso de Delphi Professor Alberto

Propaganda
UNIVERSIDADE FEDERAL DE JUIZ DE FORA
COLÉGIO TÉCNICO UNIVERSITÁRIO
DEPARTAMENTO DE INFORMÁTICA
Introdução à Linguagem de
Programação Delphi
Esta apostila também se encontra no site
do curso de Informática do CTU/UFJF:
www.informatica.ctu.ufjf.br
ou no meu site pessoal:
www.alceca.hpg.com.br
Prof. Alberto Cezar de Carvalho
- Agosto de 2005 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
ÁLGEBRA DE BOOLE
Boole foi o matemático que estabeleceu as regras para as operações com os números
binários (base 2).
Seus estudos foram feitos em uma época em que sequer cogitava a existência dos
computadores.
Para melhor entendermos a sua álgebra, vamos primeiramente detalhar uma pouco mais
a nossa base numérica do dia a dia: a base 10.
A BASE 10:
A base 10 é assim chamada porque se baseia na existência de 10 algarismos ( 0 a 9).
Desde o ensino fundamental, somos treinados a executar as operações com os números
nesta base, mas, na realidade as regras que aprendemos são regras particulares e que não se
aplicam para as demais bases.
Iremos agora, mostrar as regras da soma de dois números de acordo com uma regra
geral:
“Ao somarmos 2 algarismos, se a sua soma der um valor igual ou maior que
a base (10), subtrai-se a base deste valor e vai um.”
Exemplificando:
A soma de 187 com 96 é:
187
96 +
3
7 + 6 = 13 – 10 = 3 e vai um ...
1
187
96 +
83
1 + 8 + 9 = 18 – 10 = 8 e vai um ...
1
187
96 +
283
1+1 =2
MUDANÇA DA BASE 10 PARA A BASE 2:
Basta fazer divisões sucessivas pela nova base e pegar os restos das divisões no
sentido inverso.
Exemplificando:
O número decimal 183, seria na base 2 o seguinte número:
- Introdução ao Delphi - Página 2 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
183 / 2 = 91
91 / 2 = 45
45 / 2 = 22
22 / 2 = 11
11 / 2 = 5
5/2=2
2/2=1
1/2=0
sobra 1
sobra 1
sobra 1
sobra 0
sobra 1
sobra 1
sobra 0
sobra 1
Pegando os restos das divisões de baixo para cima, teremos o número
convertido para a base 2:
10110111
MUDANÇA DA BASE 2 PARA A BASE 10:
A regra geral para passar de qualquer base para a base 10 é a seguinte:
a) Pega-se cada algarismo, da direita para a esquerda e multiplica-se pela base elevada
às potências: 0, 1, 2, 3, ....
b) Soma-se os resultados.
c) Este é o número na base 10.
Exemplo:
10110111
1 x 20 = 1
1 x 21 = 2
1 x 22 = 4
0 x 23 = 0
1 x 24 = 16
1 x 25 = 32
0 x 26 = 0
1 x 27 = 128
183
Um método prático, seria observar que os multiplicadores são dobrados de um para o
outro:
1 – 2 – 4 – 8 – 16 – 32 - ... (20, 21, 22, 23 ...)
Some somente as parcelas onde o algarismo binário é 1.
A soma das parcelas é o número na base 10.
A BASE 2:
A base 2 é a que é utilizada pelos computadores. Representamos o algarismo 1 pela
tensão de 5 Volts e o algarismo 0 pela tensão 0 Volts.
A soma de números binários segue a mesma regra citada anteriormente:
- Introdução ao Delphi - Página 3 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
“Ao somarmos 2 algarismos, se a sua soma der um valor igual ou maior que
a base (2), subtrai-se a base deste valor e vai um.”
Por exemplo:
11 11 1
10110111
10010011 +
1 01001010
base
1+1 = 2 à 2 – 2 = 0 e vai um
1+1+1 = 3 à 3 – 2 = 1 e vai um
1+1+0 = 2 à 2 – 2 = 0 e vai um
1+0+0 = 1
1 + 1 = 2 à 2 – 2 = 0 e vai um
1+1+0 = 2 à 2 – 2 = 0 e vai um
1+0+0 = 1
1+1+1 = 3 à 3 – 2 = 1 e vai um
A BASE HEXADECIMAL (16):
Esta base é utilizada para que possa facilitar a programação em Linguagem de Máquina
(Assembly), pois, tem a propriedade de reduzir o tamanho dos números decimais e binários para
apenas 2 algarismos no máximo, o que facilita a formatação dos dados na digitação.
Nesta base utilizamos 16 caracteres: os algarismos de 0 a 9 e as letras de A .. F, sendo
que as mesmas terão os valores 10, 11, 12, 13, 14 e 15, correspondendo às letras A, B, C, D, E e
F, respectivamente.
Todas as regras gerais aqui apresentadas se aplicam também a esta base. Mas o que
interessa mais é uma particularidade:
“Cada caractere representativo da base 16 corresponde a 4 caracteres na
base 2.”
Por exemplo: O número binário 10110111 poderá ser representado em hexadecimal da
seguinte forma:
a) Separe-o primeiramente em duas metades: 1011
0111
b) Para cada uma das metades, calcule o seu valor decimal e determine o
caractere correspondente em hexadecimal:
1011 = 8 + 0 + 2 + 1 = 11 (decimal) = B (hexadecimal)
0111 = 0 + 4 + 2 + 1 = 7 (decimal) = 7 (hexadecimal)
c) Portanto o número final, na base 16 é:
B7
- Introdução ao Delphi - Página 4 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
A LINGUAGEM DE MÁQUINA E A ELETRÔNICA DIGITAL
Os computadores digitais, funcionam internamente fazendo cálculos e transmitindo
dados na base 2, pois, ela apresenta sempre dois estados: ligado (1) ou desligado (0).
Daí, montaram-se circuitos digitais capazes de verificar o estado lógico 0 ou 1. Tais
estados lógicos são representados pelas diferenças de potencial (voltagem): 0 Volts para o
algarismo 0 e 5 Volts para o algarismo 1.
Não entraremos em detalhes a respeito, pois, foge ao escopo destas notas, mas,
falaremos algumas pequenas coisas à respeito.
PORTAS LÓGICAS:
São circuitos digitais que apresentam algumas características de funcionamento
relativas à funções da álgebra Booleana, tais como: AND, OR, NOT, XOR, NAND, etc ...
A função AND, por exemplo, tem a seguinte definição: O resultado será 1 somente se
todas as entradas forem iguais a 1. Ela é representada graficamente pelo símbolo:
entradas
saída
Já a função NOT, serve para invertermos um estado lógico, isto é, se a entrada for 0 a
saída será 1 ou vice-versa. Ela é representada graficamente pelo símbolo:
entrada
saída
Poderíamos definir os microprocessadores como componentes eletrônicos capazes de
“compreender” instruções passadas como comandos em números binários, que serão “tratados”
internamente no circuito através de inúmeras portas lógicas associadas entre si. Dentre os
microprocessadores atuais podemos citar: Pentium, Duron, Athlon, Celeron, etc.
A decodificação de uma instrução em Assembly pode ser interpretada da seguinte
forma, eletronicamente falando:
a) Suponhamos que se uma determinada instrução, apagar a tela, por exemplo, pudesse
ser representada pelo comando 2B (hexadecimal). O ato de apagar a tela é regido por um
circuito analógico que apaga todos os pontos “acesos” no monitor. E este circuito é acionado ou
não por um sinal de 5 Volts:
Sinal de
entrada que
aciona o
circuito
CIRCUITO
ANALÓGICO QUE
APAGA A TELA
b) Se este sinal de entrada puder ser comandado por um circuito digital que interpreta a
instrução em linguagem de máquina (instrução 2B), a tela será apagada toda vez que este sinal
for 5 Volts, ou seja, tiver o valor digital 1.
DECODIFICADOR
DA INSTRUÇÃO 2B
(apagar a tela)
Sinal de
entrada que
aciona o
circuito
CIRCUITO
ANALÓGICO QUE
APAGA A TELA
- Introdução ao Delphi - Página 5 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
O decodificador da instrução 2B poderia ter o seguinte aspecto:
Cada uma das entradas
corresponde a um dos
algarismos do número binário
1
da instrução 2B.
1
• Somente nas entradas iguais a
1
Zero, colocamos um inversor
1
(NOT), para que a entrada
1
passe a ser 1.
1
• Desta forma, todas as entradas
passam a ser 1, e portando, a
porta AND oferecerá na saída
o valor 1.
• Qualquer
outro
número
apresentado na entrada irá fornecer pelo menos um valor 0, o que irá fazer com que a saída
nunca seja 1.
• Assim, este peq ueno circuito irá decodificar apenas a instrução 2B.
•
1
1
O microprocessador, para reconhecer todas as instruções Assembly, terá
inúmeros decodificadores, cada um reconhecendo uma e somente uma
instrução.
LINGUAGEM DE MÁQUINA:
Portanto, para se elaborar um programa, basta que forneçamos uma série de números
seqüenciais correspondendo a um conjunto lógico de instruções.
Para exemplificar este fato, utilizaremos um programa auxiliar, que é instalado
automaticamente no Windows, no qual poderemos visualizar estas instruções em Assembly.
Para tal, siga os seguintes passos:
a) Entre no modo “Prompt do MSDOS”.
b) Digite o comando: DEBUG C:\WINDOWS\PBRUSH.EXE
c) O comando acima irá chamar o programa DEBUG do Windows para mostrar os
códigos em linguagem de máquina do programa PAINT também do Windows.
d) Na direção do pequeno hífen que surge, digite a letra U (Unassembler) e acione
[Enter]. Você verá algo como:
-U
16B1:0000
16B1:0001
16B1:0002
16B1:0005
16B1:0007
16B1:0009
16B1:000C
16B1:000E
16B1:000F
16B1:0010
16B1:0011
16B1:0013
0E
1F
BA0E00
B409
CD21
B8014C
CD21
54
68
69
7320
7072
PUSH CS
POP DS
MOV DX,000E
MOV AH,09
INT 21
MOV AX,4C01
INT 21
PUSH SP
DB
68
DB
69
JNB 0033
JO
0087
- Introdução ao Delphi - Página 6 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
•
•
•
Na primeira coluna encontramos os endereços da memória onde o
programa foi carregado (em hexadecimal).
Na segunda coluna, estão as instruções Assembly em hexadecimal.
Na terceira coluna, estão os Mnemônmicos de cada instrução.
e) Chamamos de Mnemônicos a um conjunto de palavras que facilitam o
entendimento de um programa em Assembler. Estas palavras, na verdade
correspondem a “apelidos” dados às instruções em hexadecimal para facilitar a
memorização destas, pelo programador.
f) Por exemplo:
PUSH CS
POP DS
- coloque na memória (pilha) o valor guardado no
registrador CS.
- retire do topo da memória de pilha o valor que lá se
encontra e coloque no registrador DS.
Na realidade, estas 2 instruções juntas correspondem à seguinte lógica:
Faça DS = CS.
Aliás, esta instrução não existe, por isto foi necessário colocar as duas instruções
citadas.
Para maiores detalhes sobre este tipo de programação, assim como, sobre Eletrônica digital,
consulte livros sobre o assunto, ou as apostilas dos professores destas disciplinas no site do
Colégio Técnico Universitário da Universidade Federal de Juiz de Fora (CTU/UFJF),
www.ctu.ufjf.br.
COMPILADORES
Você já deve estar imaginando o trabalho que se tem para programar em Assembler !
Por esta razão, por iniciativa de alguns programadores de uma universidade Americana,
em 1955, foi criada a primeira Linguagem de Programação de Alto Nível, ou seja, a
LINGUAGEM FORTRAN (FORmula TRANslation).
Os programadores escreveram um programa em Assembler que foi capaz de interpretar
comandos escritos em inglês e transformar os mesmos em instruções em linguagem de máquina.
A partir deste momento, ficou um pouco mais fácil programar, pois, utilizando uma linguagem
mais próxima do nosso dia a dia, incentivou-se o uso da Informática por outras pessoas que
nunca tiveram a paciência e loucura de programar tudo em Assembler.
De lá para cá, as linguagens de programação foram evoluindo de uma programação
seqüencial (FORTAN, COBOL, BASIC), para uma programação estruturada (PASCAL, C) até
chegar à programação orientada a eventos (VISUAL BASIC) e finalmente a programação
orientada a eventos e a objetos (DELPHI, VISUAL C, etc).
Com a popularização da Internet, surgiram outras linguagens de programação voltadas
para ela, tais como: HTML, PHP, etc.
Podemos então definir como COMPILADORES, os programas escritos em uma
linguagem de baixo nível, capazes de TRADUZIR os comandos escritos em uma
LINGUAGEM DE ALTO NÍVEL para a LINGUAGEM DE MÁQUINA.
Agora, passaremos a estudar mais detalhadamente a linguagem de alto nível: DELPHI,
que é orientada a eventos e a objetos.
- Introdução ao Delphi - Página 7 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
OS OBJETOS DA VIDA REAL
Em nosso dia a dia nos deparamos com vários objetos ao nosso redor. Vamos nos ater a
um aparelho de TV. Já em programação visual para Windows, Linux, etc, um objeto pode ser
um botão, uma janela (formulário), uma caixa de edição, uma imagem, etc.
O aparelho de TV tem algumas características que podemos observar, tais como:
tamanho da tela, se é colorido, tipo de móvel, marca, posição dos controles, etc. Em uma
linguagem de programação orientada a objetos, vamos chamar estas características de
propriedades.
Estes aparelhos são construídos de forma a permitir a alteração do brilho e contraste da
imagem, volume de som, canal visualizado, etc. que através de botões de controle, localizados
no próprio aparelho ou no controle remoto, dão ao usuário estas alternativas de escolha. Em
POO (Programação Orientada a Objetos), existem comandos que podem mudar características
de funcionamento de um objeto, que também respondem ao desejo do usuário. Damos o nome
de métodos, às rotinas escritas em “Object Pascal” que alteram características de funcionalidade
de objetos e conseqüentemente do programa como um todo.
Enquanto se assiste TV, o espectador pode tomar algumas decisões aleatórias, tais
como: levantar e ir tomar água durante a propaganda, desligar o aparelho, abaixar o som, mudar
de canal, etc. Estas atitudes podem ser tomadas pelo usuário em qualquer ordem ou até não
serem executadas. Em uma Linguagem de Programação Orientada a Eventos, o usuário também
pode tomar inúmeras atitudes em qualquer ordem, tais como, clicar em um botão, alterar o
tamanho de uma janela, minimizar uma janela, arrastar um objeto, etc. Estas atitudes aleatórias
tomadas pelo usuário são denominadas de eventos.
Agora, se observarmos o mesmo aparelho de TV de uma forma mais abrangente,
podemos afirmar que ele pertence à família dos televisores. Nesta família, todos os objetos têm
características e objetivos semelhantes. Em POO ou OOP (em inglês) damos o nome de classe,
a uma família de objetos.
HISTÓRICO DAS LINGUAGENS OOP
Um dos precursores deste tipo de Linguagem de Programação foi o Turbo Pascal na
sua versão 5.5 da Borland. Tal conceito, mudava radicalmente toda a forma de criar programas,
pois, até aquela época existiam as Linguagens seqüenciais (BASIC, FORTRAN, etc) e as
Linguagens estruturadas (Pascal, C, etc). Mas, tal concepção de programação não atingiu sua
verdadeira vocação até surgir o sistema operacional Windows (lançado pela Microsoft). Este
Sistema operacional adotou este tipo de conceito que na verdade é a sua razão de existir, e fez
com que outras linguagens também passassem a adotar tal conceito.
A linguagem Turbo Pascal em sua versão 7.0 (a última versão lançada desta linguagem)
foi uma das que possibilitou a programação em Windows, mas era trabalhosa e de difícil
elaboração.
Foi então que a Microsoft lançou a linguagem Visual Basic que inovou a forma de
programar para Windows, mesclando a programação Basic dentro de um ambiente onde os
objetos eram visualmente colocados no programa.
Seguindo a idéia da Microsoft, a Borland lançou em seguida a Linguagem de
Programação Delphi que também mescla o ambiente visual, mas com a linguagem de
programação Pascal, chamada atualmente de Object Pascal.
A linguagem VISUAL BASIC é Orientada a Eventos, isto é, as ações do programa
acontecem de acordo com a vontade do usuário. Mas, infelizmente, devido às suas
características de concepção, não é uma Linguagem Orientada a Objetos.
Por sua vez, a linguagem DELPHI é, devido às suas raízes, uma Linguagem de
Programação Orientada a Objetos e também Orientada a Eventos, e portanto, é a que melhor se
comunica com o sistema operacional Windows.
- Introdução ao Delphi - Página 8 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
OS OBJETOS DO WINDOWS
O Sistema Operacional Windows apresenta vários objetos concebidos internamente
neste sistema e que podem ser reconhecidos facilmente por todos aqueles que já o utilizaram:
Podemos citar, por
exemplo, o objeto botão,
representado pelo botão Iniciar
na tela principal do Windows
98 (veja figura ao lado). Outros
objetos que aqui se apresentam
ainda não são facilmente
identificados pelo iniciante,
mas o botão ora citado é um
exemplo típico do que estamos
tentando explicar:
Apresentamos, logo acima à direita, dois botões aparentemente diferentes. Mas, ambos
têm características em comum, tais como: ao serem acionados produzem a execução de alguma
ordem, ao serem acionados mudam sua sombra de forma a nos dar a impressão que afundaram,
etc. Por estas características em comum é que pertencem à mesma família ou classe “Tbitbtn”.
A classe Tbitbtn contém o objeto BitBtn que possui na sua forma “standard” várias
características já prontas. O programador não precisa se preocupar em desenhar o botão.
Observa-se também, que o botão “Iniciar” possui um desenho e o outro não. A este
desenho damos o nome de Glyph e é uma propriedade do objeto Tbitbtn.
Notamos também que ambos possuem texto, mas, cujo teor é diferente. Este texto é
digitado na propriedade Caption do objeto Tbitbtn.
Ao acionarmos o botão, ele executa uma função qualquer. O ato de se acionar uma
botão chama-se evento. Este evento em especial é chamado de OnClick.
ALGUNS CONCEITOS IMPORTANTES
OBJETO: são os elementos já programados do Windows, que podem ser utilizados pelo
programador em suas aplicações, tais como: botões, formulários, figuras, sons,
tabelas, caixas de diálogo, etc.
CLASSE: é a família a qual pertencem os objetos de características comuns.
EVENTO: é uma ação realizada pelo usuário do programa, tal como: clicar um botão, mover o
ponteiro do mouse sobre uma região, mover um formulário, mudar o tamanho de um
formulário, alterar o conteúdo de uma caixa de texto, etc.
MÉTODO: é uma função ou procedimento, já programado internamente ou não, que realiza no
objeto uma determinada ação. Exemplos: Abrir um arquivo, carregar uma figura,
tocar uma música, etc.
- Introdução ao Delphi - Página 9 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
PROPRIEDADES: são as características do objeto que podem ser alteradas pelo programador.
Exemplos: cor, tamanho, fonte de texto, visibilidade, etc.
HIERARQUIA: novos objetos podem ser criados a partir de objetos já existentes, herdando
destes as propriedades, eventos e métodos que já possuam.
POLIMORFISMO: os métodos e as propriedades herdadas de um objeto, quando modificados
têm preferência sobre os métodos e propriedades do “pai”. Esta
característica chama-se polimorfismo. Por exemplo: existe um comando
chamado “ShowMessage” que mostra uma caixa de mensagem na tela.
Esta caixa é padronizada e sempre irá apresentar no seu título o nome do
aplicativo que a gerou:
Se você escrever outro
procedimento com o mesmo
nome “ShowMessage”, este vai
sobrepor o original do Delphi,
passando a ser executado no
lugar do mesmo.
O polimorfismo talvez seja a característica mais importante dos objetos, pois, permite
que o programador altere as características originais de uma propriedade, ou método de um
objeto, desde que tais características estejam disponíveis ao usuário.
Vamos estudar este assunto quando formos criar novos componentes herdados de
componentes já existentes.
O AMBIENTE DE DESENVOLVIMENTO DO DELPHI
01
03
02
04
05
- Introdução ao Delphi - Página 10 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
03
01
02
01 – Menu principal:
Nele estão contidas todas as opções possíveis de comandos do Delphi 5.
02 – Barra de Ferramentas:
Ela contém os itens do menu que são mais utilizados.
03 – Paleta de componentes:
Ela contém os objetos que podem ser incluídos no projeto. É a partir desta paleta que
montamos um projeto em Delphi.
04 – Formulário padrão:
É a janela principal de um projeto criado em Delphi. Aliás, a principal razão do Sistema
Operacional da Microsoft chamar-se Windows, vem do fato que este sistema coloca todos os
programas em janelas, que nós chamamos aqui em Delphi de formulário.
05 – Object Inspector:
Esta janela é a que nos permite agir diretamente nas propriedades e nos eventos de cada
objeto incluído em um formulário.
Repare que existem 2
abas: uma indicando Properties
(propriedades) e outra indicando
Events (eventos). Clicando em
uma ou em outra teremos acesso
às propriedades e/ou aos eventos
de um objeto selecionado no
formulário, ou as propriedades do
próprio formulário (como está na
figura ao lado).
- Introdução ao Delphi - Página 11 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
VARIÁVEIS e TIPOS
Damos o nome de variáveis às palavras as quais atribuímos valores, ou melhor,
conteúdos temporários, que serão utilizados no programa. Por exemplo: podemos atribuir a uma
variável chamada idade a idade de uma pessoa, ou a uma variável nome o nome de uma pessoa,
etc.
Dissemos que os conteúdos são temporários porque ficam na memória RAM e,
portanto, ao desligarmos o computador os dados são perdidos.
A atribuição de algum valor se faz utilizando-se o par de símbolos := e dando o seu
valor. Exemplo:
Idade := 16;
Nome := ‘José da Silva’;
Obs.: Existem outros comandos que possibilitam atribuir valores às variáveis, mas ainda não é
o momento de falarmos sobre eles.
As variáveis deverão ter seus nomes sempre iniciados por uma letra, ou “underline”,
sendo que os demais caracteres poderão ser letras, números e o “underline” ( _ ). O Delphi não
diferencia o fato das letras serem maiúsculas e/ou minúsculas. A acentuação não é permitida nos
nomes das variáveis, apenas em seus conteúdos.
Exemplos:
Nome_do_cliente
Salario
Total01
_X3
Contra-exemplos:
Nome do cliente
Salário
3N
X/Y
ß possui espaços em branco
ß possui acento
ß começa com um número
ß possui caractere não permitido (/)
Os tipos são palavras reservadas que indicam que tipo de dados serão guardados em
uma variável.
Citaremos a seguir alguns tipos existentes na linguagem. Outros tipos iremos informar a
medida que forem sendo necessários:
•
•
•
•
•
•
•
•
Integer: guardam números inteiros (sem o ponto decimal). Estes números poderão estar
entre:
-2147483648 a 2147483647 (inclusive) para aplicações de 32 bits e de –32768
a 32767 (inclusive) para aplicações de 16 bits. Utilizam 4 ou 2 bytes respectivamente.
Byte: guardam números inteiros entre 0 e 255 (inclusive). Utilizam 1 byte.
Word: guardam números inteiros de 0 a 65535 (inclusive). Utilizam 2 bytes.
ShortInt: guardam valores inteiros de -128 a 127 (inclusive). Utilizam 1 byte.
Real: guardam valores que possuam casas decimais. Variam entre 2.9x10-39 e 1.7x1038
(inclusive) com valores positivos e negativos. Utilizam 6 bytes.
Char: guardam um caractere. Utilizam 1 byte.
String: guardam uma cadeia de caracteres. Utilizam tantos bytes quantos caracteres
acrescido de 1. Podem armazenar de 0 a 255 caracteres.
Boolean: guardam o valor true ou false.
- Introdução ao Delphi - Página 12 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
Para se declarar uma variável utiliza-se a cláusula Var seguida da relação de variáveis:
Exemplo:
Var
Nome: string[40];
Idade: byte;
Sexo: char;
Aposentado: boolean;
Salario: real;
Observacoes: string;
Convém observar atentamente a declaração do tipo string. Quando nenhum valor é colocado
após a palavra, o Delphi assume o valor 255. Portanto, no exemplo acima a variável nome
conterá no máximo 40 caracteres e estará ocupando 41 bytes na memória. Já a variável
observacoes conterá um texto de no máximo 255 caracteres e ocupará 256 bytes na memória.
A variável sexo poderá conter apenas 1 caractere, já que é do tipo Char.
Além dos tipos existentes, podemos criar novos tipos, utilizando a cláusula Type.
Type
Semana = (SEG,TER,QUA,QUI,SEX,SAB,DOM);
Var
Dia: Semana;
Nas linhas acima, podemos ver a declaração do tipo Semana que não existe no Delphi, mas
foi por nós criado a partir da utilização da cláusula Type. Em seguida, declaramos a variável Dia
com o tipo recém criado, através da cláusula Var. Portanto, poderemos utilizar a variável Dia no
projeto, desde que ela possua um dos valores declarados: SEG, TER, QUA....
Quando se quer declarar uma variável que deverá conter vários tipos se faz da seguinte
forma, utilizando a palavra reservada Record:
Type
Tcliente = record
Nome: string[40];
Fone: string[15];
Valor: real;
end;
Var
Cliente: Tcliente;
A variável Cliente poderá guardar em si o nome, telefone e o valor da venda para um
cliente.
Para se referir ao nome do cliente ou a qualquer um dos outros dois campos você fará
assim:
Cliente.nome := ‘Paulo Silveira’;
Cliente.telefone := ‘333-4444’;
Cliente.valor:= 1234.67;
- Introdução ao Delphi - Página 13 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
VARIÁVEIS LOCAIS E GLOBAIS:
Conforme o local onde as variáveis são declaradas, elas se classificam em locais ou globais.
As GLOBAIS são aquelas declaradas na seção Interface das Units. Tudo que é declarado nesta
seção vale para toda a Unit assim como para todas as Units que a ela fazem referência.
As LOCAIS são aquelas declaradas no âmbito da rotina. Elas são declaradas ou como
parâmetros de uma procedure ou function ou numa declaração Var inserida na própria rotina.
Exemplos:
procedure TForm1.Calcula(x: integer; y: string);
No exemplo acima, as variáveis X e Y existem apenas enquanto a procedure “Calcula” estiver
sendo executada, pois, foram declaradas localmente como parâmetros de entrada da rotina.
procedure TForm1.Resultado;
var N: string[40];
end
Já no exemplo acima, a variável N também é local, existindo apenas enquanto a rotina
“Resultado” estiver sendo executada, porém, foi declarada localmente em uma cláusula Var.
A área de abrangência de qualquer comando ou variável é chamada de ESCOPO, isto é, o local
ou região onde aquele comando ou variável tem efeito.
As variáveis GLOBAIS existem durante toda a execução da Unit, enquanto que as locais só
existem durante a execução das rotinas (procedure ou function).
PROCEDIMENTOS E FUNÇÕES
Os procedimentos e as funções correspondem a um conjunto de instruções que realizam
determinada tarefa ou tarefas.
As funções funcionam exatamente como os procedimentos, apenas tendo a capacidade
de retornar em seu nome um determinado resultado.
Vamos exemplificar: suponha que você queira calcular uma das raízes de uma equação
do 2º grau. Vamos mostrar este cálculo utilizando um procedimento e depois uma função:
- Introdução ao Delphi - Página 14 -
LINGUAGEM DE PROGRAMAÇÃO DELPHI
Prof. Alberto Cezar de Carvalho
:
:
Var x: real;
:
:
Procedure Raiz(sinal: boolean; a,b,c: real);
Begin
If sinal
then x := (-b + sqrt(b*b – 4*a*c)) / (2*a)
else x := (-b - sqrt(b*b – 4*a*c)) / (2*a);
End;
No procedimento acima, a variável X deverá ser declarada na Unit, para que possa
guardar o resultado.
Se fosse uma função, ficaria da seguinte forma:
Function Raiz(sinal: boolean; a,b,c: real): real;
Begin
If sinal
then Raiz := (-b + sqrt(b*b – 4*a*c)) / (2*a)
else Raiz := (-b - sqrt(b*b – 4*a*c)) / (2*a);
End;
Repare que o resultado ficará colocado no nome da função (Raiz) que foi declarada na
primeira linha da função (tipo real); isto faz com que não necessitemos mais de declarar uma
variável X como no caso de procedimento.
Para executar um procedimento faça:
:
:
Raiz(true,1,-5,6);
:
:
Para executar uma função faça:
:
:
C:= Raiz(false,2,-10,12);
:
J J J J J J J J J J J J J J J
- Introdução ao Delphi - Página 15 -
Download