curso de delphi (pt_br).pdf
TRANSCRIPT
-
8/17/2019 Curso de Delphi (pt_BR).pdf
1/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 1
Curso de Delphi Básico
Prof. Edson Barros
1ª Aula
Delphi é um produto da Borland / Inprise. Seu propósito
é proporcionar aos programadores um rápido
desenvolvimento de aplicativos em ambiente Windows.
Como um ambiente de programação, o Delphi funciona
baseado em uma linguagem convencional de
programação. Sendo assim é importante conhecer os
principais comandos e a estrutura de sua linguagem
que é na verdade o TurboPascal.
O texto simples de um programa PASCAL é:
program nome_programa;
begin
end.
Nas o programa informa ao
computador as bibliotecas, variáveis, funções e
procedimentos que serão usados, enquanto os
representam a lógica do programa.
No ambiente Delphi essa estrutura pode ser observada
do menu em:
View
Project Source
O importante é saber que no Project existe:uses
Forms,
Unit1 in 'UNIT1.PAS' {Form1};
-
8/17/2019 Curso de Delphi (pt_BR).pdf
2/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 2
A informação que a Unit1 está no arquivo 'UNIT1.PAS'
significa o local no qual o aplicativo, feito em Delphi, irá
encontrar os comandos a serem executados quando
os OBJETOS forem acionados.
Mas o que seriam OBJETOS?
Um botão, um formulário, uma lista de itens ou
qualquer outro componente que exista em um
formulário.
Todo objeto é munido de propriedades, tais como cor
ou formato ou ainda o tipo de letra. Todo objeto podeser um gerador de eventos (p.ex: um cálculo simples).
Mas qual é a ligação de um objeto com a Unit1 do
Project?
Os objetos, que são caracterizados (ou configurados)pelas suas propriedades, executam seus eventos por
procedimentos (procedures) que estão programadas
nas Units.
Como os objetos são criados?
No Delphi o usuário escolhe os objetos que serão
colocados em seu programa (ou formulário), altera
suas propriedades e programa seu evento na Unit.
Como as propriedades podem ser alteradas?
As propriedades dos objetos são monitoradas no
Object Inspector, onde o usuário pode configurá-las.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
3/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 3
E como o usuário pode programar os eventos dos
objetos?
Normalmente próprio Object Inspector, no qual existe
uma lista de eventos possíveis ao objeto, é o caminho
mais fácil abrir no Delphi um procedimento (uma
procedure).
O próprio Delphi se encarrega de incluir na Unitalgumas linhas vitais ao bom funcionamento do objeto
escolhido.
No início do programa, na parte de declarações, o
ambiente inclui algo do tipo:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
-
8/17/2019 Curso de Delphi (pt_BR).pdf
4/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 4
E, em uma parte apropriada ao texto de programação,
aparece:
procedure TForm1.Button1Click(Sender:TObject);
begin
end ;
A procedure é um miniprograma. Com uma procedure
o usuário pode declarar variáveis e executar operações
complexas em um simples apertar de botão.
Nesse estágio é bom o usuário possuir algumas
noções de PASCAL básico .
Todo comando em PASCAL se encerra no “;”.
O comando de atribuição é “:= “.
Um bloco de comandos é limitado entre um “begin” e
um “end ”. Um bloco pode ser tratado como uma
simples instrução no meio de um outro comando.
As variáveis a serem usadas na procedure, function ou
programa devem ser declaradas!
Ex:
procedure blablabla;
var
a, b, c: double;
x, y: integer;
nome: string;
begin
...
end;
Entre outros, os tipos mais usados de variáveis são:
- Com ponto flutuante: Real, Double
- Valores inteiros: Byte, Integer, Longint
- Para texto: Char, String
-
8/17/2019 Curso de Delphi (pt_BR).pdf
5/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 5
- Informação do tipo lógica: Boolean
Quando a informação flui das variáveis para os objetos
(campos propriedades dos objetos) pode ser
necessário algum tipo de conversão (p.ex: de texto
para número, ou vice-versa), sendo assim existem
algumas funções úteis tais como: StrToFloat, StrToInt,FloatToStr, IntToStr, etc.
No processo de criação de um aplicativo Delphi
aparecem alguns arquivos no diretório em uso. Por
enquanto é importante saber que cada um dosarquivos ou terá origem com o nome da unit ou com o
nome do project.
Também é importante conhecer alguns objetos
básicos, principalmente do menu Standard.
Uma referência inicial rápida para início de atividade é
interessante conhecer pelo menos os objetos Label,
Button e Edit.
O Label é um campo de texto que pode exibir
rápidas informações em sua propriedade Caption.
O Button é a simulação gráfica de um botão.
Normalmente é usado para acionar eventos.
O E d i t é um campo destinado a coletar
informações. Os dados são armazenados na
propriedade Text.
Atividade prática
-
8/17/2019 Curso de Delphi (pt_BR).pdf
6/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 6
(1) Criar um aplicativo com dois botões que informe
quando um deles foi apertado.
No formulário foram criados os seguintes objetos:
Button1: TButton;Button2: TButton;
Label1: Tlabel;
Também foram incluidosas declarações dos eventos:
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: Tobject);
As procedures de eventos serão:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:='Apertado o Botão 1';end ;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:='Apertado o Botão 2';
end ;
(2) Alterar a propriedade Hint e ShowHint dos botões do
aplicativo anterior.
ShowHint = True
Hint = Botão de teste
(3) Incluir no aplicativo anterior alguma forma para
cadastrar o nome do usuário.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
7/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 7
Solução:
(3.a) Incluir objetos Label2 e Edit1.
(3.b) No objeto Label2 alterar a propriedade Caption
para:
“Digite seu nome e aperte um botão”
(3.c) Limpar a prorpiedade Text do objeto Edit1.
(3.d) Alterar a Unit1 para:unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form1: TForm1;
Nome: string;
-
8/17/2019 Curso de Delphi (pt_BR).pdf
8/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 8
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
resp1: string;
begin
Nome:= Edit1.Text;
resp1:= Nome + ', você apertou 1';
Label1.Caption:= resp1;
end ;
procedure TForm1.Button2Click(Sender: TObject);
var
resp2: string;
begin
Nome:= Edit1.Text;
resp2:= Nome + ', você apertou 2';
Label1.Caption:= resp2;
end ;
end .
O formulário resultado será:
Algumas observações:
- A variável Nome foi declarada de uma forma “Global”;
- As variáveis resp1 e resp2 foram declaradas apenas
para uso “Local”, ou seja apenas as respectivas
procedures podem acessá-las.
- A propriedade Caption do Label1 foi alterada por uma
expressão de caracteres (strings).
-
8/17/2019 Curso de Delphi (pt_BR).pdf
9/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 9
(4) Elaborar um aplicativo que, em função do botão
acionado, soma ou subtrai ou multiplique dois valores
cadastrados.
1ª sugestão: Usar um objeto Edit com a propriedade
Enabled com valor False para exibir a resposta.
2ª sugestão: Mudar a propriedade Caption do objeto
Form com um texto apropriado.
Solução:
(4.a) Criar um formulário parecido com o abaixo:
(4.b) Atribuir o valor “0” (zero) na propriedade Text do
Edit1 e Edit2. Alterar a propriedade Enabled do Edit3
para False.
(4.c) Fazer para soma:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c: double;
begin
a:= StrToFloat(Edit1.Text);
b:= StrToFloat(Edit2.Text);
c:= a+b;
Edit3.Text:= FloatToStr(c);
end ;
(4.d) Para subtração a procedure será parecida, basta
mudar a linha da conta para:
procedure TForm1.Button2Click(Sender: TObject);
...
c:= a-b;
...
-
8/17/2019 Curso de Delphi (pt_BR).pdf
10/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 10
(4.e) Para multiplicação a procedure também será
parecida, basta mudar a linha da conta para: procedure TForm1.Button3Click(Sender: TObject);
...
c:= a*b;
...
O resultado será:
Nota: O Edit3 exibirá a resposta da operação escolhida,
porém não será permitido alterá-lo diretamente.
Um pouco mais de teoria
O último exercício empregou alguns operadores
aritméticos. Na verdade no Delphi existem os seguintes
operadores:
+ Soma
- Subtração
* Multiplicação
/ Divisão
DIV Divisão Inteira
MOD Resto de Divisão Inteira
Existem algumas funções préprogramadas da
linguagem destinadas aos cálculos mais diversos.
Embora algumas das limitações matemáticas das
funções, que existiam nas versões mais remotas doTurboPascal, já tenham sido sanadas no Delphi é
-
8/17/2019 Curso de Delphi (pt_BR).pdf
11/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 11
importante o programador saber empregar as funções
préprogramadas “a moda antiga”!
São elas:
ABS(X) Retorna o módulo de X
COS(X) Retorna o cosseno de X (em radianos)
SIN(X) Retorna o seno de X (em radianos)
ARCTAN(X) Retorna o arco tangente de X (emradianos)
SQR(X) Retorna o quadrado de X (X2)
SQRT(X) Retorna a raiz quadrada de X ( √ X)
EXP(X) Retorna o valor de eX, onde e=2,7182818...
LN(X) Retorna o logaritmo natural (base e)PI Constante real de valor π=3,1415926536...
ODD(X) Valor True se X for ímpar e False se par.
Exercícos propostos
(5) Fazer um aplicativo para calcular a área e o
perímetro de uma circunferência, sendo seu raio dado.
(6) Elaborar um programa para calcular a distância de
dois pontos no espaço.
(7) Fazer um programa para calcular a raiz Nésima de
um número.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
12/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 12
Curso de Delphi Básico
Prof. Edson Barros
2ª Aula
Em toda linguagem de programação existem estruturas
lógicas conhecidas como “estruturas de controle” .
Basicamente essas estruturas são: os comandos de
condição e os comandos de looping.
Sendo o comando de condição um dos comandos
mais interessantes na programação, pois reproduz na
máquina a faculdade humana da tomada de decisões
em função de condições lógicas explicitas. O comando
ramifica a lógica do programa em duas alternativas:
uma que será adotada quando a condição assumir
valor verdadeiro, e outra quando a condição for falsa.
Em Delphi a sintaxe do comando if é:
if
then
else ;
Quando há a necessidade de se escrever mais de uma
instrução nos comandos depois do then ou do else
deve-se usar um bloco de comandos limitado entre um
“begin” e um “end”.
if
then begin
;
;
;
... end
else begin
;
;
-
8/17/2019 Curso de Delphi (pt_BR).pdf
13/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 13
...
end ;
O comando if termina no seu “;” . Se o usuário colocar
um “;” antes da cláusula e l se o programa não
entenderá o comando dessa cláusula como sendo
parte do if .
Portanto o comando i f também poderia ser usado
assim:
if
then ;
Quando, devido à necessidade de processamento,
agrupamos várias seleções, formamos uma seleção
aninhada. Normalmente tal formação ocorre quando
uma determinada ação ou bloco deve ser executado se
e somente se um conjunto de possibilidades ou
combinações de situações for satisfeito.if
then if
then
else
else if then
else ;
Outro comando de decisão que também pode ser
empregado é o comando case . Esse comando é
usado quando se precisa escrever o texto código com o
propósito de lidar com muitas possibilidades para
mesma variável, seja ela char ou integer ou outro tipo
escalar.
case of
:;
:;
...
:;
else ;
end ;
Há ainda situações que podem ser resolvidas com
variáveis booleanas usadas estrategicamente nas
procedures com algumas propriedades lógicas.
...
-
8/17/2019 Curso de Delphi (pt_BR).pdf
14/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 14
var
teste: boolean;...
teste:= (valor_a > valor_b) or (valor_c = 0);
Edit3.Enabled:= not(teste);
Os operadores boleanos existentes no Delphi são:
And, Or , Xor e o Not.
No menu Standard os objetos CheckBox, RadioButton
e RadioGroup podem ser uma boa alternativa para o
usuário transmitir suas opções ao aplicativo.
O CheckBox o RadioButton possuem a
propriedade Checked que retorna True se o usuáriotiver “ticado” o objeto. Caso o espaço desses objetos
estiver em branco, a propriedade Checked retorná
False.
Parecendo um objeto GroupBox , RadioGroup
agrupa de forma inteligente vários RadioButtons em
um objeto.
Atividade prática
(1) Criar um aplicativo para verificar a situação de um
aluno: APROVADO, quando a nota for igual ou superior
a 5.0, ou REPROVADO quando ela for menor.
procedure TForm1.Button1Click(Sender: TObject);
var
-
8/17/2019 Curso de Delphi (pt_BR).pdf
15/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 15
Nota: double;
beginNota:= StrToFloat(Edit1.Text);
if Nota >= 5
then Label2.Caption:='APROVADO!'
else Label2.Caption:='REPROVADO!';
end ;
O mesmo exercício poderia ter o fonte:
procedure TForm1.Button1Click(Sender: TObject);
var
Nota: double;
begin
Nota:= StrToFloat(Edit1.Text);
if Nota >= 5
then Label2.Caption:='APROVADO!';
if Nota < 5
then Label2.Caption:='REPROVADO!';
end ;
(2) Melhorar o exercício anterior com um procedimento
que selecione o botão de cálculo quando o usuário
digitar a tecla Enter ↵.
Solução: Incluir o evento OnKeyPress abaixo no Edit1.
procedure TForm1.Edit1KeyPress (Sender: Tobject;
var Key: Char);
begin
if Key=#13 then Button1.SetFocus;
end;
(3) Melhorar o aplicativo, supondo que os alunos
também podem ser reprovados se a sua freqüência for
menor que 75%.
Usando o operador lógico and o fonte será:
procedure TForm1.Button1Click(Sender: TObject);
var
-
8/17/2019 Curso de Delphi (pt_BR).pdf
16/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 16
Nota, Freq: double;
beginNota:= StrToFloat(Edit1.Text);
Freq:= StrToFloat(Edit2.Text);
if (Nota >= 5) and (Freq >= 75)
then Label2.Caption:='APROVADO!'
else Label2.Caption:='REPROVADO!';
end ;
Ou usando o operador lógico or o fonte será:
procedure TForm1.Button1Click(Sender: TObject);
var
Nota, Freq: double;
begin
Nota:= StrToFloat(Edit1.Text);
Freq:= StrToFloat(Edit2.Text);
if (Nota < 5) or (Freq < 75)
then Label2.Caption:='REPROVADO!'
else Label2.Caption:='APROVADO!';
end ;
Observação: Um problema que pode atrapalhar o bom
funcionamento desse aplicativo é o fato de que um
usuário desavisado poderia digitar caracteres texto no
lugar de números para a nota!
Esse problema pode ser resolvido com as funções
ord() e chr() em um comando if no evento OnKeyPress
do objeto Edit em uso.
A função ord() retorna o valor ASCII de um caracter
qualquer, enquanto a chr() gera o caracter quando for
dado um número ASCII.
(4) Melhorar o exercício anterior de forma que oscampos de nota e freqüência só aceitem valores
numéricos.
Solução: Incluir o evento OnKeyPress abaixo no Edit1 e
no Edit2. procedure TForm1.EditZZKeyPress (Sender: Tobject;
var Key: Char);
begin
-
8/17/2019 Curso de Delphi (pt_BR).pdf
17/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 17
if (((ord(Key)ord(‘9’))
and ((ord(Key)ord(8)) and (ord(Key)ord(‘,’)))then Key:=chr(0);
end;
Observações:
(4.a) O valor ord(8) corresponde a tecla BackSpace.
(4.b) O valor chr(0) corresponde ao caracter null
(5) Elaborar um programa para efetuar a divisão entre
dois números. Se o usuário digitar “0” o aplicativo
deverá avisar que houve uma operação ilegal.
unit Uifav;interface
usesSysUtils, WinTypes, WinProcs, Messages, Classes,Graphics, Controls, Forms, Dialogs, StdCtrls;type
TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Button1: TButton; Button2: TButton; Label3: TLabel; Edit3: TEdit; Button3: TButton; procedure EditZZKeyPress(Sender: TObject; varKey: Char);
procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var
Form1: TForm1;implementation
{$R *.DFM}
procedure TForm1.EditZZKeyPress(Sender: TObject;var Key: Char); begin
if ((ord(Key)< ord('0')) or (ord(Key) >ord('9')))and ((ord(Key)ord( 8 )) and (ord(Key)ord(',')))then Key:=chr(0);end ;
procedure TForm1.Button1Click(Sender: TObject);var
numerador,denominador,resposta:double; begin
numerador := StrToFloat(Edit1.Text);denominador:= StrToFloat(Edit2.Text);if (denominador = 0)then showmessage('Divisão por ZERO!!!')else begin
resposta := numerador/denominador;
Edit3.Text:= FloatToStr(resposta); end ;end ;
procedure TForm1.Button2Click(Sender: TObject); begin
-
8/17/2019 Curso de Delphi (pt_BR).pdf
18/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 18
Edit1.Clear;Edit2.Clear;
Edit3.Clear;end ;
procedure TForm1.Button3Click(Sender: TObject); begin
Close;end ;
end .
O formulário resultado será:
Observações:
(5.a) Na propriedade Caption dos botões empregou-se
o caracter “&” antes das letras de chamada assimsendo, a combinação das teclas Alt e D acionará a
divisão, a combinação Alt + L limpará os Edit, e Alt + S
encerrará.
(5.b) A mensagem “Divisão por ZERO!!!” usou a
procedure ShowMessage().(5.c) O comando Close destina-se a fechar o formulário.
(5.d) Os objetos Edit pertencem a uma categoria de
objetos que podem ser limpos com o comando Clear .
(6) Elaborar um formulário que o botão de saida sófique visível de um CheckBox permitir.
Solução: Criar um formulário com um CheckBox e um
Button. Alterar a propriedade Visible do Button para
False. Programar as procedures abaixo.
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
-
8/17/2019 Curso de Delphi (pt_BR).pdf
19/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 19
if CheckBox1.Checked
then Button1.Visible:= True
else Button1.Visible:= False;
end ;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end ;
Quando o programa for executado deverá aparecer sem
o botão de encerramento.
O aplicativo só exibirá o botão quando o CheckBox
estiver selecionado.
As propriedades dos objetos que guardam valores
booleanos podem ser alteradas em linhas de
comando. Seu uso amplia os recursos de
programação.
(7) Elaborar um aplicativo com um RadioButton e um
Button, sendo que ao apertar o botão o RadioButton
muda de estado.
procedure TForm1.Button1Click(Sender: TObject);
begin
RadioButton1.Checked:=not(RadioButton1.Checked);
end ;
-
8/17/2019 Curso de Delphi (pt_BR).pdf
20/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 20
(8) Elaborar um programa que verifique se os números
inteiros informados pelo usuário estão nas faixas
abaixo:
(a) igual a 1; (b) entre 2 e 4; (c) igual a 5.
procedure TForm1.Button1Click(Sender: TObject);
var
numero: integer;
begin
numero:= StrToInt(Edit1.Text);
case numero
of
1 : Label2.Caption:='Valor UM';
2..4: Label2.Caption:='entre DOIS e QUATRO';
5 : Label2.Caption:='Valor CINCO';
else Label2.Caption:='Fora dos limites';
end ;
end ;
(9) Elaborar um formulário para definir o estado civil da
pessoa cadastrada.
Botão Limpar
procedure TForm1.Button2Click(Sender: TObject); begin
RadioGroup1.ItemIndex:=-1;Label2.Caption:='';Edit1.Clear;Edit1.SetFocus;end ;
Botão Classificar
procedure TForm1.Button1Click(Sender: TObject);var
msg: string; begin
-
8/17/2019 Curso de Delphi (pt_BR).pdf
21/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 21
case RadioGroup1.ItemIndex of0: msg:= ', é feliz e não sabe!';
1: msg:= ', já juntou os trapos?';2: msg:= ', está livre novamente.';3: msg:= ', a vida continua...';else msg:= ' precisa informar';end ;Label2.Caption:= Edit1.Text + msg;end ;
Exercícos propostos
(10) Fazer um aplicativo para calcular o quadrante de
um ponto qualquer Po(Xo,Yo).2º Quadrante 1º Quadrante
3º Quadrante 4º Quadrante
(11) Elaborar um programa para calcular as raizes da
equação do 2º grau.
(12) Fazer um programa para calcular a situação do
aluno, em função de sua média e freqüência, sabendo
que:
[a] Freqüência menor que 75% só não será reprovaçãose a média for igual a DEZ.
[b] Méida menor que 3,0 o aluno está REPROVADO!
[c] Média menor que 5,0 e maior ou igual a 3,0 o aluno
estará direto em RECUPERAÇÃO.
[d] Média maior ou igual a 5,0 e menor que 7,5 o alunoterá que fazer EXAME.
[e] Nota maior ou igual a 7 , 5 o aluno estará
APROVADO.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
22/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 22
Curso de Delphi Básico
Prof. Edson Barros
3ª Aula
As estruturas lógicas de “controle” do tipo comandos de
looping variam quanto a sua funcionalidade. No Delphi
pode-se repetir comandos de várias fórmas. A
linguagem de programação permite, entre outras
técnicas, a repetição de comandos (ou blocos) com:- uso de variável de controle
- teste no início do laço lógico
- teste no final do laço lógico
Os comandos for , while e repeat são os usados para aelaboração de rotinas. Cada comando funciona de
maneira diferente e se adapta em casos específicos.
Em Delphi a sintaxe do comando for pode ser ou com o
valor da variável de controle crescente ou decrescente,sendo assim temos:
for := to
do ;
ou
for := downto
do ;
O comando for pode ser usado para cálculos de séries
matemáticas, vetores e matrizes, controle de listas
assim como das linhas de memorandos.
A variável de controle do comando for dever ser
obrigatoriamente escalar , não importando se é um tipo
da linguagem ou definido pelo usuário.
Um exemplos de um tipo escalar não usual com o for é
a geração automática de letras ordenadas.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
23/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 23
Uma estrutura de looping bastante freqüênte nas
linguagens de programação é o comando while.Essencialmente o comando funciona ENQUANTO a
condição no início do looping for VERDADEIRA.
Como o comando de repetição com condição no início,
o while...do, é o comando de looping mais completo,pois a condição representa “condição de execução” do
laço, permitido executar ou não. Ou seja, isso significa
que o procedimento pode ser repetido um número
indefinido de vezes, de zero a muitas.
A sintaxe do comando while é:
while do
;
Como a condição é um valor do tipo boolean, o controle
do looping pode ser uma propriedade de um objeto,
uma simples condição ou uma variável boleana.
Também o comando repeat funciona controlado por
valores boleanos, é o comando de repetição comcondição no final.
O repeat...until é o comando de looping cuja condição
representa “condição de interrupção” do laço. Ou seja,
a condição é invertida se comparada com o comandowhile...do.
Isso significa que o procedimento será executado pelo
menos uma vez, independente do valor da condição
(VERDADEIRO ou FALSO).
Em Delphi a sintaxe do comando repeat é:
repeat
until ;
Os três comandos (for , while e repeat) são a maneira
estruturada de construir um looping.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
24/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 24
Comparação entre as Estruturas de Repetição
Comando Condição Quantidade deexecuções
Condição de Existência
While no início indefinido condição verdadeira
Repeat no fim mínimo 1 condição falsa
For não tem |vf-vi|+1 vi < vf para Tovi > vf para DownTo
No menu Standard os objetos ListBox e Memo podemser exemplos de uso de comandos de repetição em
aplicativo.
O ListBox , assim como o Memo , que servem
para diversos propósitos, podem ter o acesso de suas
linhas por comandos de repetição.
Atividade prática
(1) Criar um aplicativo, usando um objeto ListBox, para
gerar uma lista de valores crescentes.
procedure TForm1.Button1Click(Sender: TObject);
var
vc,valor1,valor2: integer;
begin
valor1:=StrToInt(Edit1.Text);
valor2:=StrToInt(Edit2.Text); for vc:=valor1 to valor2 do
ListBox1.Items.Add(IntToStr(vc));
end;
-
8/17/2019 Curso de Delphi (pt_BR).pdf
25/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 25
(2) Alterar o fonte do exercício anterior para gerar a lista
decrescente:Solução: Basta alterar a linha do comando for para:
... for vc:=valor1 downto valor2 do ...
(3) Elaborar programa para gerar uma lista de “N”
valores que variam de acordo com um passo “P” dado
(p.ex: 2, 3 ou ainda 0.5, 0.75, etc).
procedure TForm1.Button1Click(Sender: TObject);var
vc,qtde: integer; passo: double; begin
qtde := StrToInt(Edit1.Text); passo:= StrToFloat(Edit2.Text); for vc:= 1 to qtde do ListBox1.Items.Add(FloatToStr(vc*passo));end;
(4) Dado o número de repetições “N” e a variável
parâmetro “X”, o programa irá calcular a somatória “S”da série: S = X + X/2 + X/3 + ... + X/N
procedure TForm1.Button1Click(Sender: TObject);var
n,vc: integer;
x,s: double; begin
n:= StrToInt(Edit1.Text); x:= StrToFloat(Edit2.Text); s:= 0; for vc:= 1 to n do s:= s + x/vc; Label3.Caption:=FloatToStr(s);end;
(5) Alterar a série para incorporar uma troca alternada
de sinal, ou seja: S = X - X/2 + X/3 - X/4 + ... X/N.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
26/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 26
procedure TForm1.Button1Click(Sender: TObject);
var n,vc,t: integer; x,s: double; begin
n:= StrToInt(Edit1.Text); x:= StrToFloat(Edit2.Text); s:= 0; t:= 1; for vc:= 1 to n do begin
s:= s + t*x/vc; t:=-t; end ; Label3.Caption:=FloatToStr(s);end;
(6) Gerar uma lista de letras em ordem crescente.
procedure TForm1.Button1Click(Sender: TObject);
var vc,valor1,valor2: char; begin
valor1:= Edit1.Text; valor2:= Edit2.Text; for vc:=valor1 to valor2 do ListBox1.Items.Add(vc);end;
(7) Refazer o exercício (1) usando o comando while.
Solução: Usando o mesmo formulário o texto fonte deve
ser alterado para:
procedure TForm1.Button1Click(Sender: TObject);var
vc,valor1,valor2: integer; begin
valor1:=StrToInt(Edit1.Text); valor2:=StrToInt(Edit2.Text); vd:= valor1 while vc
-
8/17/2019 Curso de Delphi (pt_BR).pdf
27/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 27
(8) Refazer o exercício (1) usando o comando repeat.
procedure TForm1.Button1Click(Sender: TObject);var
vc,valor1,valor2: integer; begin
valor1:=StrToInt(Edit1.Text); valor2:=StrToInt(Edit2.Text); vc:= valor1 repeat
ListBox1.Items.Add(IntToStr(vc));
vc:=vc+1; until vc =>valor2;end;
(9) Criar um programa para classificar em ordem
alfabética algumas palavras cadastradas.
unit Listform;interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TFormulario = class(TForm) Listagem: TListBox; Botao1: TButton; Botao2: TButton; Botao3: TButton; Entrada: TEdit; procedure Botao1Click(Sender: TObject); procedure Botao2Click(Sender: TObject); procedure Botao3Click(Sender: TObject); private { Private declarations } public { Public declarations } end ;
var
Formulario: TFormulario;
implementation
{$R *.DFM}
procedure TFormulario.Botao1Click(Sender: TObject); begin
Listagem.Items.Add(Entrada.Text);Entrada.Clear;end ;
procedure TFormulario.Botao2Click(Sender: TObject); begin
Listagem.Sorted:=True;end ;
procedure TFormulario.Botao3Click(Sender: TObject); begin
Listagem.Clear;Listagem.Sorted:=False;end ;
end .
-
8/17/2019 Curso de Delphi (pt_BR).pdf
28/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 28
Curso de Delphi Básico
Prof. Edson Barros
4ª Aula
Nesse estágio de conhecimento do Delphi o ditado “sei
que nada sei” parece ter um significado especial. O
usuário começa a entender como usar as ferramentas,
embora perceba que sabe lidar com um número muito
baixo delas.
A quantidade elevada de objetos, suas muitas
propriedades e métodos, as particularidades da
linguagem de programação Pascal, além dos recursos
do próprio ambiente Delphi representa um volume
substancial de recursos para o programador.
Nos aplicativos os usuários não usam apenas osobjetos do menu Standard . No menu Additional
existem componentes que podem proporcionar um
visual mais agradável ao aplicativo executando
operações equivalentes.
Menu Additional
-
8/17/2019 Curso de Delphi (pt_BR).pdf
29/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 29
O botão BitBtn funciona de forma análoga ao
Button, porém em sua apresentação aparece um ícone
que lembra algum procedimento.
Com o objeto S h a p e pode-se usar formas
geométricas nos aplicativos.
O objeto Image possibilita no aplicativo a exibição
de imagens, seja como tela de fundo ou informação de
um banco de dados.
Atividade prática
(1) Criar um formulário que um elemento Shap se
desloque quando um botão é acionado.
procedure TForm1.BitBtn1Click(Sender: TObject);
-
8/17/2019 Curso de Delphi (pt_BR).pdf
30/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 30
begin
Shape1.Left:=Shape1.Left+5;
If Shape1.Left > 180 then Image1.Visible:=True;
end ;
No menu Dialogs o usuário pode acionar menus de
préprogramados do Windows.
Os menu de fontes, o FontDialog , proporciona a
facilidade de ajuste da fonte no aplicativo do usuário.
O menu de cores, o ColorDialog , pode ser usado
para resgatar qualquer cor da palheta de cores.
O menu para abrir arquivos é o OpenDialog .
O menu para salvar arquivos é o SaveDialog .
O menu para gerar impressão é oPrintDialog .
No menu St andar d há ainda dois objetos quepermitem a ciração de menus pelo usuário: o
MainMenu e o PopMenu.
O MainMenu é o menu que aparece em
aplicativos, logo abaixo do título das janelas do
Windows.
O PopMenu é o menu que aparece quando o
botão de dados do mouse é clicado em algum objeto.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
31/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 31
Atividade prática
(2) O próximo programa destina-se a ilustrar alguns
desses objetos.
unit Pipoca;interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;type
Tpipocar = class(TForm) PopupMenu1: TPopupMenu;
LblMensagem: TLabel; Fontes1: TMenuItem; Cores1: TMenuItem; Memo1: TMemo; FontDialog1: TFontDialog; ColorDialog1: TColorDialog; N1: TMenuItem; Sair1: TMenuItem; MainMenu1: TMainMenu; Operar: TMenuItem; Fontes2: TMenuItem; Cores2: TMenuItem; Info: TMenuItem;
N2: TMenuItem; Sair2: TMenuItem; Exibir1: TMenuItem; procedure Fontes1Click(Sender: TObject); procedure Cores1Click(Sender: TObject); procedure Sair1Click(Sender: TObject); procedure Exibir1Click(Sender: TObject); private { Private declarations } public { Public declarations }
end;var
pipocar: Tpipocar;implementation
{$R *.DFM} procedure Tpipocar.Fontes1Click(Sender: TObject); begin
FONTDIALOG1.FONT:=MEMO1.FONT;IF FONTDIALOG1.EXECUTE THEN MEMO1.FONT:=FONTDIALOG1.FONT;end ;
procedure Tpipocar.Cores1Click(Sender: TObject); begin
COLORDIALOG1.COLOR:=MEMO1.COLOR;IF COLORDIALOG1.EXECUTE THEN MEMO1.COLOR:=COLORDIALOG1.COLOR;end ;
-
8/17/2019 Curso de Delphi (pt_BR).pdf
32/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 32
procedure Tpipocar.Sair1Click(Sender: TObject); begin
CLOSE;end ; procedure Tpipocar.Exibir1Click(Sender: TObject); begin
SHOWMESSAGE('Programa feito em linguagem DELPHI');end ;end .
(3) O próximo programa desenvolve a série matemática
da raiz quadrada.
unit Pj_serie;
interfaceuses
SysUtils,WinTypes,WinProcs,Messages,Classes,Graphics,Controls,Forms,Dialogs,Menus,StdCtrls;type
Tserie = class(TForm) BtCalculo: TButton; BtLimpar: TButton; ListaResp: TListBox; LblInicio: TLabel;
VlInicio: TEdit; LblFim: TLabel; VlFim: TEdit; Saida: TButton; MainMenu1: TMainMenu; OpMenu: TMenuItem; Calcular1: TMenuItem; Limpar1: TMenuItem; N1: TMenuItem; Sair1: TMenuItem; Informaes1: TMenuItem; Mensagem1: TMenuItem; procedure SaidaClick(Sender: TObject); procedure Mensagem1Click(Sender: TObject); procedure BtCalculoClick(Sender: TObject); procedure BtLimparClick(Sender: TObject); private { Private declarations } public
{ Public declarations } end ;
var
serie: Tserie; INICIO,FIM: INTEGER;implementation
-
8/17/2019 Curso de Delphi (pt_BR).pdf
33/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 33
{$R *.DFM}PROCEDURE AVISO1;
BEGINSHOWMESSAGE('Entrada inválida!!!');END; procedure Tserie.SaidaClick(Sender: TObject); begin
CLOSE;end ; procedure Tserie.Mensagem1Click(Sender: TObject); begin
SHOWMESSAGE('Exemplo da série Raiz Quadrada');
end ; procedure Tserie.BtLimparClick(Sender: TObject); begin
LISTARESP.CLEAR;end ;
procedure Tserie.BtCalculoClick(Sender: TObject); VAR
RAIZ:REAL;TEXTO,ITEM:STRING;
LOOP,STATUS:INTEGER;TESTE:BOOLEAN; begin
VAL(VLINICIO.TEXT,INICIO,STATUS);VAL(VLFIM.TEXT,FIM,STATUS);TESTE:=NOT(STATUS=0) OR (INICIO>FIM) OR (INICIO
-
8/17/2019 Curso de Delphi (pt_BR).pdf
34/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 34
Curso de Delphi Básico
Prof. Edson Barros
5ª Aula
Procedures e Functions podem ser programadas
diretamente pelo usuário. As procedures geralmente
são destinada a programação de eventos, como os que
são codificados nas Units. As functions retornam um
valor como resultado do processamento. O usuário
praticamente pode criar “comandos” com as
procedures e as fuctions, sendo possível chamá-los
em outras partes do programa.
Uma funct ion préprogramada interessante é o
StrToIntDef , que funciona como o StrToInt, porémretorna um valor padrão caso haja erro na conversão.
Atividade prática
(1) Fazer um comando que some dois valores com
ponto decimal.function Soma(Valor1, Valor2: Double):Double;
begin
Soma:= Valor1 + Valor2;
end ;
.. .
a:= Soma(b,c);
.. .
(2) Fazer um programa para testar a função StrToIntDef.
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=IntToStr(StrToIntDef(Edit1.Text,0));
end ;
-
8/17/2019 Curso de Delphi (pt_BR).pdf
35/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 35
-
8/17/2019 Curso de Delphi (pt_BR).pdf
36/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 36
VARIAVEIS ESTRUTURADAS RI VEIS ESTRUTUR D S
O DELPHI oferece bons recursos para manipulação de
dados agrupados. Um conjunto de dados, referenciávelpor um mesmo identificador, é conhecido como
“variável composta” , ou “variável estruturada” .
As variáveis estrutu radas podem ainda ser
classificadas em: “variáveis compostas homogêneas” ,e “ variáveis compostas heterogêneas” . Nos espaços
destinados a declarações, a estrutura apropriada para
definição das variáveis homogêneas é o comando
array , enquanto para variáveis heterogêneas é o
comando record.
Qualquer tipo de dado, seja padrão ou definido pelo
usuário, pode ser estendido por um array, que usa umtipo de subintervalo como índice, razão pela qual são
conhecidas como variáveis indexadas!
Os limites do subintervalo, tanto o inferior como o
superior, representam uma numeração de índices,reservados na memória.
Variáveis do tipo array podem armazenar vários valores
de um mesmo tipo, sendo que cada índice será
equivalente a uma variável.
Sua declaração segue basicamente o formato abaixo:
: array [..,...] of ;
O índice de uma variável estruturada pode ser uma
variável em vez de um literal. Tal facilidade permite a
elaboração de tabelas com elevados aglomerados de
álculos.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
37/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 37
Array unidimensional
Quando uma variável array possui um único índice é
conhecida como vetor, ou ainda array simples ou
unidimensional. Em DELPHI esse tipo de estrutura
pode ser usado quando se deseja trabalhar valores de
componentes do tipo ListBox ou Memo na memória.
(3) A procedure abaixo resgata em uma variável
indexada uma lista de notas de uma turma, que pode
ter até 50 alunos matriculados, cadastrada em um
componente do tipo ListBox.
procedure Tform1.Button1Click(Sender: TObject);var
qtde,vc:integer;nota: array [1..50] of double; begin
qtde:=ListBox1.Items.Count;for vc:= 1 to qtde do nota[vc]:=StrToFloat(ListBox1.Item[vc-1]);end ;
Array multidimensional
Quando uma variável array possui mais de um índice é
conhecida como array multidimensional.
Particularmente para dois índices o array pode ser identificado com matrizes, ou até tabelas. Esse tipo de
estrutura pode ser usado quando se deseja trabalhar
dados complexos, ricos em abstrações matemáticas.
(4) A procedure abaixo gera valores aleatórios, sendo
inteiros positivos e menores que 100, nas posições de
uma matriz que pode ter até 12 linhas por 8 colunas.
procedure TForm1.Button1Click(Sender: TObject);var
linha,coluna: integer;num_lin,num_col: integer;
item: array [1..12,1..8] of integer; begin
randomize;num_lin:= StrToInt(Edit1.Text);num_col:= StrToInt(Edit2.Text);for linha:= 1 to num_lin do for coluna:= 1 to num_col do item[linha,coluna]:=random(100);end ;
-
8/17/2019 Curso de Delphi (pt_BR).pdf
38/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 38
Sintaxe e funcionamento do comando record
O nome record, que significa registro em inglês,
lembra a estrutura lógica de um registro propriamente
dito que é usado como unidade de dado em arquivos.
Nos arquivos, os registros são compostos por campos,
ou itens, que armazenam tipos diferentes de
informação (texto, número, etc).
Analogamente, em DELPHI, os tipos record, que até
podem até ser usados para definir registros de
arquivos, destinam-se a construção de conjuntos de
itens de tipos diferentes que estão logicamente
relacionados.
Ou seja cada elemento do record tem seu próprio tipo
de dado e sua declaração lista todos estes campos,
dando a cada um deles um nome que será usado para
acessá-lo.
Um declaração record segue o formato abaixo:
, ,...,:
record
: ;
: ;
...
: ;
end ;
(5) Abaixo encontra-se a declaração de uma variável
composta heterogênea.
funcionario: record nome: string; cargo: string; salario: double; end;
O comando record pode ser um interessante substitutopara complexas declarações feitas com array
multidimensional.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
39/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 39
Um array de record pode apresentar definições maisclaras, com itens que signifiquem propriedades das
variáveis.
Na verdade, as classes e os objetos do DELPHI podem
ser considerados como uma extensão do comando
record.
(6) Exemplo:
procedure Tform1.Button1Click (Sender: Tobject);type
aluno = record nome: string;
n_mat: integer; sexo: boolean; mensalidade: byte; end ;var
matriculado: aluno;indice, total: LongInt; begin
...
for indice:= 1 to total do begin
matriculado[indice].nome:= Edit1.Text;matriculado[indice].n_mat:= StrToInt(Edit2.Text);matriculado[indice].sexo:=CheckBox.checked;matriculado[indice].mensalidade:=RadioGroup1.ItemIndex;end ;...
O comando With pode melhorar esse programa como
se segue:
(7) Exemplo:
...
for indice:= 1 to total do begin
with matriculado[indice] do begin nome:= Edit1.Text; n_mat:= StrToInt(Edit2.Text); sexo:=CheckBox.checked; mensalidade:=RadioGroup1.ItemIndex; end ; end ;...
O comando with também vale para objetos do Delphi:
(8) Exemplo:
...
with Label1 do begin
Caption:=‘Exemplo do with’;
Visible:=True; end ;...
-
8/17/2019 Curso de Delphi (pt_BR).pdf
40/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 40
(9) Exemplo de herança
unit Prop_pai;
interface
usesSysUtils,WinTypes,WinProcs,Messages,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ColorGrd;
type TPropPaterna = class(TForm) MsgCor: TLabel; ChkBoxCor: TCheckBox; TabelaCor: TColorGrid; BotaoFim: TButton; procedure BotaoFimClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TabelaCorChange(Sender: TObject); procedure ChkBoxCorClick(Sender: TObject);
private { Private declarations } public { Public declarations } end;
var PropPaterna: TPropPaterna;
implementation
{$R *.DFM}
procedure TPropPaterna.BotaoFimClick(Sender: TObject);beginhalt;end;
procedure TPropPaterna.FormCreate(Sender: TObject);beginColor:=TabelaCor.BackgroundColor;Font.Color:=TabelaCor.ForegroundColor;end;
procedure TPropPaterna.TabelaCorChange(Sender: TObject);beginColor:=TabelaCor.BackgroundColor;Font.Color:=TabelaCor.ForegroundColor;end;
procedure TPropPaterna.ChkBoxCorClick(Sender: TObject);beginChkBoxCor.ParentColor:=ChkBoxCor.Checked;ChkBoxCor.ParentFont:=ChkBoxCor.Checked;end;
end.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
41/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 41
(10) Exemplo de caixa de mensagens
procedure TForm1.Button1Click(Sender: TObject);
var
Botao:integer;
begin
botao:= Application.MessageBox(
'Gostou do DELPHI?',
'Caixa de Mensagem',
mb_OkCancel+mb_DefButton1);
if botao = IDOK
then Label1.Caption:='Você escolheu OK';
if botao = IDCANCEL then Label1.Caption:='Você escolheu CANCEL';
end ;
-
8/17/2019 Curso de Delphi (pt_BR).pdf
42/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 42
(11) Outro exemplo...
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlg('Salvar mudanças?', mtConfirmation,mbYesNoCancel,
0);
end ;
(12) Outro exemplo...
procedure TForm1.Button1Click(Sender: TObject);
begin
if MessageDlg('Bem vindo ao aplicativo. Sair agora?',
mtInformation, [mbYes, mbNo], 0) = mrYes
then
begin
MessageDlg('Saindo...', mtInformation, [mbOk], 0);
Close;
end;
end;
Alguns botões:
mbYes, mbOK, mbHelp, mbAbort, mbRetry, mbIgnore e
mbAll.
Algumas MessageDlg:
mtWarning, mtError, mtInformation, mtConfirmation e
mtCustom.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
43/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 43
(13) Exemplo de criação de alguns formulários:
unit Uformu;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes,Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm) Button1: TButton;
procedure Button1Click(Sender: TObject); private
{ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);var
NovoForm:array[1..5] of TForm1;i:integer; begin
for i:=1 to 5 do begin
NovoForm[i]:=TForm1.Create(Application); with NovoForm[i] do begin
Caption:='Filhote #'+IntToStr(i); Top:=Top+33*i; Left:=Left+5*i; Show;
end;
end;
end;
end.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
44/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 44
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Hide;
Unit2.Form2.Show;
end;
var
ButtonSelected: Word; begin
if
MessageDlgPos('Color the form green?', mtConfirmation,
[mbYes, mbNo], 0, 125, 25) := mrYes
then Color := clLime;
end ;
:
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlgPos('Are you there?', mtConfirmation,
mbYesNoCancel, 0, 200, 200);
end ;
Lista de Arquivos
Exercício c/ 2 formulários
Arquivosformulários modal
propriedades dos objetos
Atividade prática
(1) Criar um formulário que um elemento Shap se
desloque quando um botão é acionado.
-
8/17/2019 Curso de Delphi (pt_BR).pdf
45/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg 45
Caros colegas de Delphi,
Esse material È parte integrante de meu curso de
Delphi Básico.
Estou cedendo graciosamente acreditando que
estamos todos no mesmo barco, na deliciosa aventura
de desvendar o potencial do Delphi.
Peço apenas algumas considerações:
1º) Quando fornecer esse material, por favor, citar a
fonte de origem.
2º) Ter a decencia de não o comercializar, mas o usar
para ajudar outros.
3º) Compartilhar comigo algumas dicas e truques,
como estou fazendo!
============== AVISO: =======================
As informações compiladas nos arquivos são de
natureza didática. O autor, embora tenha se
preocupado em gerar um material de boa qualidade,
não se responsabiliza se o seu uso proporcionar
algum dano ou prejuizo!
==========================================
-
8/17/2019 Curso de Delphi (pt_BR).pdf
46/46
______________________________________________________________________________________([email protected])__
Curso de Delphi Básico - DATEM - Universidade Mackenzie (2ºsem/1998)
Pg46
Boa sorte,
Edson Barros
22/set/1998
ICQ 18846110