Documentos de Académico
Documentos de Profesional
Documentos de Cultura
<declaraes>
begin
<comandos>
end.
Nas <declaraes>
1 Aula
o programa
informa
ao
proporcionar
aos
programadores
um
rpido
em
uma
linguagem
convencional
de
View
Project Source
______________________________________________________________________________________(prof_edson@uol.com.br)__
formulrio.
type
TForm1 = class(TForm)
Button1: TButton;
aparece:
procedure TForm1.Button1Click(Sender:TObject);
begin
end;
Ex:
procedure blablabla;
var
a, b, c: double;
x, y: integer;
nome: string;
begin
...
O comando de atribuio := .
end;
______________________________________________________________________________________(prof_edson@uol.com.br)__
(campos
Button e Edit.
necessrio
propriedades
dos
objetos)
pode
ser
nome do project.
objetos
O E d i t um
informaes. Os
campo destinado a
dados
so
coletar
armazenados na
propriedade Text.
Atividade prtica
______________________________________________________________________________________(prof_edson@uol.com.br)__
begin
Button1: TButton;
Button2: TButton;
Label1: Tlabel;
Soluo:
(3.a) Incluir objetos Label2 e Edit1.
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;
para:
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Nome: string;
interface
______________________________________________________________________________________(prof_edson@uol.com.br)__
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
resp1: string;
begin
Nome:= Edit1.Text;
resp1:= Nome + ', voc apertou 1';
Label1.Caption:= resp1;
end;
Algumas observaes:
procedure TForm1.Button2Click(Sender: TObject);
var
resp2: string;
begin
Nome:= Edit1.Text;
Label1.Caption:= resp2;
end;
end.
______________________________________________________________________________________(prof_edson@uol.com.br)__
cadastrados.
para False.
Soluo:
begin
a:= StrToFloat(Edit1.Text);
b:= StrToFloat(Edit2.Text);
c:= a+b;
Edit3.Text:= FloatToStr(c);
end;
...
c:= a-b;
...
______________________________________________________________________________________(prof_edson@uol.com.br)__
...
c:= a*b;
operadores:
...
O resultado ser:
Soma
Subtrao
Multiplicao
Diviso
DIV
Diviso Inteira
Existem
algumas
funes
prprogramadas
da
So elas:
ABS(X)
Retorna o mdulo de X
COS(X)
SIN(X)
ARCTAN(X) Retorna
arcotangente
de
(em
radianos)
SQR(X)
SQRT(X)
EXP(X)
LN(X)
PI
ODD(X)
Exerccos propostos
(5) Fazer um aplicativo para calcular a rea e o
permetro de uma circunferncia, sendo seu raio dado.
______________________________________________________________________________________(prof_edson@uol.com.br)__
2 Aula
<comando>;
<comando>;
<comando>;
...
end
else begin
<comando>;
<comando>;
______________________________________________________________________________________(prof_edson@uol.com.br)__
else <rotina_02>
...
else if <condio3>
end;
then <rotina_03>
else <rotina_04>;
parte do if.
assim:
escalar.
if <condio>
then <comando_VERDADE>;
case <varivel> of
<valor_1>:<rotina_1>;
<valor_2>:<rotina_2>;
...
<valor_N>:<rotina_N>;
else <rotina_sobras>;
end;
if <condio1>
then if <condio2>
then <rotina_01>
...
______________________________________________________________________________________(prof_edson@uol.com.br)__
var
teste: boolean;
False.
...
teste:= (valor_a > valor_b) or (valor_c = 0);
Edit3.Enabled:= not(teste);
, RadioGroup
Atividade prtica
No menu Standard os objetos CheckBox, RadioButton
e RadioGroup podem ser uma boa alternativa para o
O CheckBox
o RadioButton
possuem a
Nota: double;
begin
Nota:= StrToFloat(Edit1.Text);
if Nota >= 5
then Label2.Caption:='APROVADO!'
begin
else Label2.Caption:='REPROVADO!';
end;
Tobject;
end;
var
Nota: double;
begin
Nota:= StrToFloat(Edit1.Text);
if Nota >= 5
then Label2.Caption:='APROVADO!';
if Nota < 5
then Label2.Caption:='REPROVADO!';
end;
var
______________________________________________________________________________________(prof_edson@uol.com.br)__
begin
Nota:= StrToFloat(Edit1.Text);
Freq:= StrToFloat(Edit2.Text);
if (Nota >= 5) and (Freq >= 75)
then Label2.Caption:='APROVADO!'
else Label2.Caption:='REPROVADO!';
end;
var
Freq:= StrToFloat(Edit2.Text);
numricos.
then Label2.Caption:='REPROVADO!'
else Label2.Caption:='APROVADO!';
end;
no Edit2.
procedure TForm1.EditZZKeyPress (Sender: Tobject;
______________________________________________________________________________________(prof_edson@uol.com.br)__
if (((ord(Key)<ord(0)) or (ord(Key)>ord(9))
and ((ord(Key)<>ord(8)) and (ord(Key)<>ord(,)))
then Key:=chr(0);
end;
Observaes:
(4.a) O valor ord(8) corresponde a tecla BackSpace.
unit Uifav;
interface
procedure TForm1.Button1Click(Sender: TObject);
uses
var
SysUtils, WinTypes, WinProcs, Messages, Classes,
numerador,denominador,resposta:double;
Graphics, Controls, Forms, Dialogs, StdCtrls;
begin
type
numerador := StrToFloat(Edit1.Text);
TForm1 = class(TForm)
denominador:= StrToFloat(Edit2.Text);
Label1: TLabel;
if (denominador = 0)
Edit1: TEdit;
then showmessage('Diviso por ZERO!!!')
Label2: TLabel;
else begin
Edit2: TEdit;
resposta := numerador/denominador;
Button1: TButton;
Edit3.Text:= FloatToStr(resposta);
Button2: TButton;
end;
Label3: TLabel;
end;
Edit3: TEdit;
Button3: TButton;
procedure TForm1.Button2Click(Sender: TObject);
procedure EditZZKeyPress(Sender: TObject; var
begin
Key: Char);
______________________________________________________________________________________(prof_edson@uol.com.br)__
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
end;
end.
procedure ShowMessage().
O formulrio resultado ser:
______________________________________________________________________________________(prof_edson@uol.com.br)__
if CheckBox1.Checked
then Button1.Visible:= True
else Button1.Visible:= False;
end;
Close;
de
end;
comando.
de
Seu
uso
amplia
os
recursos
programao.
Quando o programa for executado dever aparecer sem
o boto de encerramento.
end;
estiver selecionado.
______________________________________________________________________________________(prof_edson@uol.com.br)__
numero:= StrToInt(Edit1.Text);
case numero of
1
: Label2.Caption:='Valor UM';
: Label2.Caption:='Valor CINCO';
Label2.Caption:='Fora dos limites';
end;
end;
pessoa cadastrada.
Boto Limpar
procedure TForm1.Button2Click(Sender: TObject);
begin
RadioGroup1.ItemIndex:=-1;
Label2.Caption:='';
Edit1.Clear;
Edit1.SetFocus;
end;
Boto Classificar
case RadioGroup1.ItemIndex of
0: msg:= ', feliz e no 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;
1 Quadrante
3 Quadrante
4 Quadrante
Exerccos propostos
______________________________________________________________________________________(prof_edson@uol.com.br)__
3 Aula
ou
for <vc>:= <valor1> downto <valor2>
do <comando>;
______________________________________________________________________________________(prof_edson@uol.com.br)__
condio no final.
while...do.
repeat
<comando>;
<comando>
until <condio>;
______________________________________________________________________________________(prof_edson@uol.com.br)__
Condio
While
Repeat
For
no incio
no fim
no tem
Quantidade de
execues
indefinido
mnimo 1
|vf-vi|+1
Condio de Existncia
condio verdadeira
condio falsa
vi < vf para To
vi > vf para DownTo
Atividade prtica
(1) Criar um aplicativo, usando um objeto ListBox, para
gerar uma lista de valores crescentes.
O ListBox
, que servem
begin
valor1:=StrToInt(Edit1.Text);
valor2:=StrToInt(Edit2.Text);
for vc:=valor1 to valor2 do
ListBox1.Items.Add(IntToStr(vc));
end;
______________________________________________________________________________________(prof_edson@uol.com.br)__
decrescente:
______________________________________________________________________________________(prof_edson@uol.com.br)__
______________________________________________________________________________________(prof_edson@uol.com.br)__
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;
unit Listform;
interface
end.
______________________________________________________________________________________(prof_edson@uol.com.br)__
4 Aula
Menu Additional
particularidades da
O objeto Image
O boto BitBtn
Atividade prtica
(1) Criar um formulrio que um elemento Shap s e
desloque quando um boto acionado.
Com o objeto S h a p e
begin
Shape1.Left:=Shape1.Left+5;
prprogramados do Windows.
No menu S t a n d a r d h ainda dois objetos que
permitem a cirao de menus pelo usurio: o
MainMenu e o PopMenu.
, proporciona a
O MainMenu
menu
que
aparece
em
______________________________________________________________________________________(prof_edson@uol.com.br)__
Atividade prtica
(2) O prximo 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;
______________________________________________________________________________________(prof_edson@uol.com.br)__
unit Pj_serie;
interface
uses
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
______________________________________________________________________________________(prof_edson@uol.com.br)__
{$R *.DFM}
PROCEDURE AVISO1;
BEGIN
SHOWMESSAGE('Entrada invlida!!!');
END;
procedure Tserie.SaidaClick(Sender: TObject);
begin
CLOSE;
end;
procedure Tserie.Mensagem1Click(Sender: TObject);
begin
SHOWMESSAGE('Exemplo da srie Raiz Quadrada');
end;
procedure Tserie.BtLimparClick(Sender: TObject);
begin
LISTARESP.CLEAR;
end;
Atividade prtica
5 Aula
begin
...
a:= Soma(b,c);
pode
criar
comandos
com
as
...
begin
Label1.Caption:=IntToStr(StrToIntDef(Edit1.Text,0));
end;
______________________________________________________________________________________(prof_edson@uol.com.br)__
______________________________________________________________________________________(prof_edson@uol.com.br)__
variveis
estruturadas
podem
ainda
ser
______________________________________________________________________________________(prof_edson@uol.com.br)__
Array unidimensional
Array multidimensional
Quando uma varivel array possui mais de um ndice
conhecida como array multidimensional.
______________________________________________________________________________________(prof_edson@uol.com.br)__
...
<item_N>: <tipo_de_varivel>;
diferentes de
end;
composta heterognea.
funcionario: record
nome: string;
cargo: string;
salario: double;
end;
complexas
declaraes feitas
com
array
multidimensional.
______________________________________________________________________________________(prof_edson@uol.com.br)__
variveis.
se segue:
(7) Exemplo:
(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;
...
...
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;
...
(8) Exemplo:
...
with Label1 do
begin
Caption:=Exemplo do with;
Visible:=True;
end;
...
______________________________________________________________________________________(prof_edson@uol.com.br)__
var
PropPaterna: TPropPaterna;
implementation
{$R *.DFM}
procedure TPropPaterna.BotaoFimClick(Sender: TObject);
begin
halt;
end;
procedure TPropPaterna.FormCreate(Sender: TObject);
begin
Color:=TabelaCor.BackgroundColor;
Font.Color:=TabelaCor.ForegroundColor;
end;
unit Prop_pai;
procedure TPropPaterna.TabelaCorChange(Sender: TObject);
interface
uses
SysUtils,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;
begin
Color:=TabelaCor.BackgroundColor;
Font.Color:=TabelaCor.ForegroundColor;
end;
procedure TPropPaterna.ChkBoxCorClick(Sender: TObject);
begin
ChkBoxCor.ParentColor:=ChkBoxCor.Checked;
ChkBoxCor.ParentFont:=ChkBoxCor.Checked;
end;
end.
______________________________________________________________________________________(prof_edson@uol.com.br)__
end;
Alguns botes:
(12) Outro exemplo...
mbAll.
begin
if MessageDlg('Bem vindo ao aplicativo. Sair agora?',
mtInformation, [mbYes, mbNo], 0) = mrYes
then
Algumas MessageDlg:
mtWarning, mtError, mtInformation, mtConfirmation e
begin
MessageDlg('Saindo...', mtInformation, [mbOk], 0);
mtCustom.
Close;
end;
end;
______________________________________________________________________________________(prof_edson@uol.com.br)__
var
Form1: TForm1;
implementation
{$R *.DFM}
unit Uformu;
interface
end.
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;
______________________________________________________________________________________(prof_edson@uol.com.br)__
MessageDlgPos('Are
you
there?',
mtConfirmation,
Lista de Arquivos
Unit2.Form2.Show;
end;
Exerccio c/ 2 formulrios
Arquivos
formulrios modal
Atividade prtica
if
MessageDlgPos('Color the form
green?',
mtConfirmation,
______________________________________________________________________________________(prof_edson@uol.com.br)__
Estou
cedendo
tenha
se
==========================================
fonte de origem.
______________________________________________________________________________________(prof_edson@uol.com.br)__
Boa sorte,
Edson Barros
22/set/1998
prof_edson@uol.com.br
prof_edson@yahoo.com
ICQ 18846110
______________________________________________________________________________________(prof_edson@uol.com.br)__