• Nenhum resultado encontrado

LINGUAGEM DE PROGRAMAÇÃO DELPHI Prof. Alberto Cezar de Carvalho

N/A
N/A
Protected

Academic year: 2021

Share "LINGUAGEM DE PROGRAMAÇÃO DELPHI Prof. Alberto Cezar de Carvalho"

Copied!
6
0
0

Texto

(1)

Prof. Alberto Cezar de Carvalho

BRINCANDO COM O FORMULÁRIO

1. OBJETIVO: Neste tópico iremos demonstrar o uso de mais alguns objetos e iremos detalhar algumas propriedades do formulário.

2. VAMOS CRIAR UM PROJETO: Como já dissemos, deveremos seguir os seguintes passos: a. Criação de uma pasta: crie uma pasta chamada “Formulários” pendurada na pasta de

programas Delphi que você criou com o projeto anterior. Exemplo: S:\Delphi\Formulários

Entre no Delphi e grave o projeto que aparece (formulário vazio) na pasta criada acima, utilizando o ícone “Save All” (desenho de vários disquetinhos).

Grave inicialmente a “Unit’” e depois, altere o nome “Project1” para “Formulário”.

b. Elaboração da parte visual: nesta fase do projeto iremos colocar no formulário todos os objetos que iremos utilizar no nosso aplicativo, além de alterar algumas propriedades.

Objeto Aba Propriedade Valor

Form1 Já existente

Caption Brincando com o formulário Position poScreenCenter

Color clSkyBlue Panel1 Standard Align alRight

(2)

Prof. Alberto Cezar de Carvalho

SpeedButton1 Additional

Caption &Abre figura

Glyph C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images\Buttons\ FLDROPEN.BMP Layout blGlyphTop SpeedButton2 Additional

Caption &Tamanho real Glyph C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images\Buttons\ ZOOMIN.BMP Layout blGlyphTop SpeedButton3 Additional Caption &Imprime Glyph C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images\Buttons\ PRINT.BMP Layout BlGlyphTop SpeedButton4 Additional Caption T&ransparência Glyph C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images\Buttons\ BULBON.BMP Layout BlGlyphTop Image1 Additional Align AlClient

Stretch True ScrollBar1 Standard

Kind SbVertical Position 255

Max 255

Label1 Standard Caption Opacidade Label2 Standard

Caption 255

AutoSize false Alignment TaCenter

OpenPictureDialog1 Dialogs

Title Escolha uma figura InitialDir C:\Arquivos de programas\Arquivos comuns\Microsoft

Shared\Clipart\cagcat50 Filter Arquivos (*.wmf) *.wmf Arquivos (*.jpg) *.jpg Arquivos (*.bmp) *.bmp Todos os arquivos *.*

(3)

Prof. Alberto Cezar de Carvalho

Algumas observações:

• O objeto Panel1 é utilizado para isolar uma área do formulário. Todos os objetos que estão no painel não saem do mesmo, e nenhum objeto que está fora consegue entrar. • Colocando a propriedade Align = alRight no Panel1, faz com que o mesmo fique

sempre localizado à direita do formulário independentemente do tamanho e posição deste último.

• A propriedade Glyph do SpeedButton, permite que incluamos um ícone no mesmo. • A propriedade LayOut do SpeedButton, altera o posicionamento do ícone no interior do

mesmo.

• A propriedade Align = alClient do objeto Image1, faz com que esta imagem ocupe sempre toda a área do formulário, exceto a parte ocupada pelo painel. Daí, alterando o tamanho do formulário, a imagem acompanha o mesmo.

• A propriedade Kind = sbVertical do objeto ScrollBar1 faz com que a mesma se apresente na posição vertical.

• Alterando o valor da propriedade Position do objeto ScrollBar1 mudamos a posição do cursor do mesmo.

c. Elaboração dos algoritmos: é nesta fase que criamos as rotinas e métodos que farão parte do projeto, dando ao mesmo algum sentido.

i. Mudança da transparência do formulário: Para fazermos isto, iremos utilizar as propriedades “AlphaBlend” e “AlphaBlendValue” do Form1. Na primeira, colocamos o valor “True” e na segunda o valor que irá determinar a opacidade da transparência: 255 é o máximo e mínimo é 0. Na verdade, iremos atribuir o valor 100 para o mínimo, pois, se for 0 o formulário irá desaparecer completamente.

ü Mude a propriedade AlphaBlend para true. Isto garantirá o funcionamento do efeito “fade” do formulário.

ü Crie o método “OnChange” do objeto “ScrollBar1” e nele digite: procedure TForm1.ScrollBar1Change(Sender: TObject);

begin

Form1.AlphaBlendValue:= ScrollBar1.position; Label2.caption:= IntToStr(ScrollBar1.position); end;

ü O primeiro comando atribui à propriedade AlphaBlendValue o mesmo valor que se encontra na propriedade position da ScrollBar1 (deslocamento do cursor da mesma).

ü O segundo comando, transfere para a propriedade caption do Label2 este mesmo valor, só que tivemos que fazer uso da função IntToStr para converter um valor numérico inteiro (position) para um string (caption), pois, há necessidade que os tipos sejam compatíveis.

ii. Escolhendo uma figura: Ao clicarmos no botão “Abre figura” iremos fazer surgir um diálogo de entrada de arquivo, onde o usuário poderá escolher a figura que deseja visualizar.

ü Crie o método Onclick do SpeedButton1 (Abre figura). ü Digite os seguintes comandos:

procedure TForm1.SpeedButton1Click(Sender: TObject); var arquivo: string;

begin

If OpenPictureDialog1.Execute then begin

Arquivo:= OpenPictureDialog1.Filename; Image1.picture.LoadFromFile(arquivo);

(4)

Prof. Alberto Cezar de Carvalho

end; end;

ü Primeiramente, declaramos localmente a variável “arquivo” como do tipo string. Esta variável irá guardar o nome e caminho da pasta onde se encontra a figura escolhida. (veja o comando Arquivo:= OpenPic...) ü O objeto OpenPictureDialog1 possui um método que é uma função onde

retorna um valor Booleano “true” caso o usuário tenha escolhido uma figura ou o valor “false”, caso contrário.

ü Daí, fizemos o teste If onde verificamos: se o usuário escolheu uma figura no diálogo que se abre quando a função execute for executada, então ...

ü Atribuímos à variável “arquivo” o caminho e nome da figura escolhida, informação esta que se encontra na propriedade “filename” do objeto OpenPictureDialog1.

ü Em seguida, carregamos para a propriedade “picture” do objeto Image1, através do método “LoadFromFile” (carregar de um arquivo), a figura escolhida, ou seja, aquela cuja informação se encontra na variável “arquivo”.

iii. Mostrando o tamanho real ou o tamanho forçado da figura: Na verdade, durante o início do projeto atribuímos à propriedade “stretch” do objeto “Image1” o valor “true”. Quando fizemos isto, adotamos o tamanho forçado da figura, isto é, se a figura for maior que o objeto Image1 ela será reduzida para caber na mesma e se ao contrário, ela for menor que o objeto, ela será aumentada para ocupar todo o objeto. ü Portanto, estamos nos propondo a fazer com o que o botão “Tamanho

real” ao ser clicado, passe a alternar entre o tamanho forçado e o real. ü Para conseguirmos este efeito, teremos que atribuir o valor ora true e ora

false à propriedade “Stretch” do objeto “Image1”.

ü Aproveitaremos, também, para alterar o texto da propriedade “Caption” do botão.

ü Para conseguir tais efeitos, crie o método do evento OnClick do SpeedButon2 (Tamanho real), e digite os comandos:

procedure TForm1.SpeedButton2Click(Sender: TObject); begin

Image1.Stretch:= not Image1.Stretch; If Image1.Stretch

then SpeedButton2.caption:= '&Tamanho real' else SpeedButton2.caption:= '&Tamanho forçado'; end;

ü Na primeira linha de comando nos deparamos com a função NOT do Delphi, cuja finalidade é a de inverter o estado lógico do comando colocado em seguida. Daí, se o valor de “Stretch” for true em um dado momento, a função “not” o transformará para false e atribuirá este novo valor à mesma propriedade “stretch”, e vice-versa.

ü Em seguida, testamos o estado da propriedade stretch para verificarmos qual o texto deverá ser mostrado na propriedade “caption” do botão. iv. Imprimindo a figura: para imprimir, há necessidade de se incluir no projeto mais

um formulário e dentro dele se incluir objetos da aba Qreport. Esta aba não vem instalada no Delphi 7 explicitamente, há necessidade de instala-la manualmente. Para tal, consulte o tutorial sobre o assunto.

ü Para inserir um novo formulário vá ao menu File à New à Form, o que fará surgir o Form2.

(5)

Prof. Alberto Cezar de Carvalho

ü Agora, procure a aba QReport e escolha o objeto QuickRep, acrescentando-o ao Form2. Este objeto tem o aspecto de uma folha de papel em branco toda quadriculada.

ü Com este objeto selecionado, vá à propriedade “Bands” e selecione a band “Summary”. Agora o Form2 terá o seguinte aspecto:

ü Aumente o tamanho da band Summary até encontrar uma linha tracejada azul bem abaixo no QuickRep1. Esta linha é o limite da folha de papel. ü Acrescente dentro do Summary o objeto QRImage que também se

encontra na aba QReport.

ü Aumente o tamanho do QRImage1 fazendo-o ocupar todo o espaço do Summary.

ü Agora, volte ao Form1, selecione o SpeedButton3 (Imprimir) e digite as linhas:

procedure TForm1.SpeedButton3Click(Sender: TObject); begin

Form2.QRImage1.Picture:= Form1.Image1.Picture; Form2.QuickRep1.Preview;

end;

ü A primeira linha transfere a imagem que está na propriedade “picture” do objeto “Image1” do Form1 para a mesma propriedade do objeto “QRImage1” que está no Form2.

ü A segunda linha é utilizada para se mostrar na tela um “preview” daquilo que irá ser impresso. ü O ícone da impressora que aparece no preview serve para imprimir a página. Para aumentar o Summary arraste este ponto para baixo.

Ícone que faz imprimir esta página.

(6)

Prof. Alberto Cezar de Carvalho

v. Tornando o formulário transparente: À partir do Windows 2000, é possível conseguir fazer com que o formulário fique transparente. Na propriedade “TransparentColorValue” informa-se uma cor que será considerada transparente. Em todo local onde aparece esta cor, o formulário ficará vazado. Também é necessário alterar a propriedade “TransparentColor” para “true”.

ü Crie o método do evento OnClick do SpeedButton4 (Transparência) e digite as linhas:

procedure TForm1.SpeedButton4Click(Sender: TObject); begin

Form1.TransparentColorValue:= Form1.Color;

Form1.TransparentColor:= not Form1.TransparentColor; end;

ü A primeira linha pega a cor do Form1 e a atribui à propriedade “TransparentColorValue”. Esta será a cor transparente se o valor da propriedade “TransparentColor” for “true”.

ü Novamente utilizamos o artifício de trocar o estado booleano através da função NOT para inverter de false para true e vice-versa, o valor da propriedade “TransparentColor”, fazendo o formulário ficar vazado e opaco.

d. Execução e testes: agora executamos o programa e realizamos inúmeros testes de funcionamento.

IMPLEMENTAÇÃO EXTRA

Para sumir com as bordas e fazer o Painel aparecer e desaparecer automaticamente procedure TForm1.SpeedButton4Click(Sender: TObject);

begin

Form1.TransparentColorValue:= Form1.Color;

Form1.TransparentColor:= not Form1.TransparentColor; procedure TForm1.SpeedButton4Click(Sender: TObject); begin

Form1.TransparentColorValue:= Form1.Color;

Form1.TransparentColor:= not Form1.TransparentColor; If Form1.TransparentColor

then Form1.BorderStyle:= bsNone else Form1.BorderStyle:= bsSizeable; end;

è Acrescentar um objeto Timer

procedure TForm1.Timer1Timer(Sender: TObject); begin

If ((Mouse.CursorPos.X - Form1.Left) > (Form1.width - 110)) and ((Mouse.CursorPos.X - Form1.Left) < Form1.width) and (Mouse.CursorPos.Y > Form1.Top) and

(Mouse.CursorPos.Y < Form1.Top + Form1.Height) then Panel1.width:= 110

else Panel1.width:= 0; end;

Referências

Documentos relacionados

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O modelo conceitual procura mostrar quais são os elementos de informação tratados pelo sistema, para que mais adiante se possa mostrar ainda como essa informação é transformada pelo

IV - decidir sobre a aplicação de uma ou mais das medidas prudenciais preventivas previstas na legislação vigente, a multa cominatória a elas relacionadas e sua eventual

Parágrafo segundo – Não ocorrendo a citada homologação por responsabilidade do SESI-SP, em até 30 (trinta) dias após o prazo máximo para o pagamento das

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários