6 delphi 7 729 916 - jurandir1967.co.uk

188
Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 729 Delphi 7.0 Module 6

Transcript of 6 delphi 7 729 916 - jurandir1967.co.uk

Page 1: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 729

Delphi 7.0

Module 6

Page 2: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 730

���� Como por imagem na StatusBar ?

Mostrando imagens na barra de status.

Clique duplo sobre a StatusBar, será aberta a tela ao lado, clique

no primeiro ícone amarelo 5 vezes ( Add New criar 5

divisões. Na primeira, terceira e quarta divisão da StatusBar

defina a propriedade Style para psOwnerDraw, para mostrar a

imagem.

Page 3: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 731

���� Como trocar papel de parede ?

Este é mais um código ( programa ) para trocar papel de parede. Insira um componente Picture e um OpenPictureDialog.

Page 4: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 732

Page 5: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 733

���� Como clicar em uma determinada imagem ?

� Insira um formulário. File – New – Form. � Insira um componente Image ( aba Additional ), clique na propriedade picture e

insira uma imagem do tipo .bmp ( bitmap ). � Insira 3 componentes Shape ( aba Additional ). No canto superior esquerdo há

uma imagem, faça um retângulo sobre esta imagem usando um componente shape, clique na propriedade +Brush, Color deve ter o valor clWhite, Style = bsClear, clique em +Pen, clique em Style e defina psClear, isto para deixar a borda do componente Shape invisível.

� Clique no primeiro Shape que foi armado sobre a primeira imagem, clique no

evento OnMouseDown e digite:

Observe esta imagem, as

propriedades ainda não foram definidas,

de acordo com o item 3.

Page 6: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 734

���� Rave ���� Criando relatório

No artigo anterior apresentei minhas experiências com ferramentas de relatórios para desenvolvimento de projetos Delphi. Neste estarei apresentando os componentes da paleta RAVE e, no próximo, partirei para a prática da construção de relatórios usando essa ferramenta. Ficou bastante claro que essa suíte de componentes se distingue das demais pelo fato de possibilitar um desenvolvimento estritamente baseado em código de programação Delphi. Essa técnica, apesar de trabalhosa, é bastante flexível, pois possibilita ao programador mais experiente desenvolver seus próprios métodos de criação de relatórios, sem muita dependência dos recursos disponibilizados pelo ambiente gráfico da ferramenta. Porque utilizar o desenvolvimento em código runtime? Imagine a seguinte situação:

Preciso montar um Relatório de Vendas e apresente o movimento diário por Cidade e por Vendedor. Seu layout deverá obedecer aos seguintes critérios de impressão: As vendas de segunda-feira à quarta-feira ficarão à esquerda do relatório na cor azul. As vendas da quinta-feira e sexta-feira, serão impressas à direita na cor verde. As vendas do sábado serão impressas numa folha individual. Na última página deverá ser emitido um resumo semanal de vendas. Vendedores sem vendas no período deverão estar em negrito. Experimente montar esse relatório usando queries SQL em um ambiente de criação de relatórios visuais(!): Pode até ser que você consiga fazê-lo, mas garanto que irá gastar muito mais tempo que o seu equivalente devidamente codificado em Delphi.

Os pessimistas dirão que estou sendo extremista. Claro, estou... as dificuldades que o desenvolvedor enfrenta na construção de projetos corporativos costumam ser maiores e os prazos cada vez menores! Esta é a nossa realidade. Estaremos sempre nos deparando com questões de difícil e trabalhosa solução. Precisamos aplicar a ferramenta certa para cada problema. Não existe uma ferramenta mágica que atenda a uma heterogeneidade de propósitos. Se a construção de relatórios difíceis é um dos seus problemas, então, com certeza, o RAVE veio para facilitar bastante o seu trabalho de desenvolvimento.

Page 7: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 735

Quem é o RAVE? A incorporação do RAVE pelo Delphi 7.0 foi feita de uma forma bastante confusa (creio que foi feita às pressas). Os componentes da paleta RAVE no Delphi 7.0 não são compatíveis com o pacote oficial disponibilizado pela Nevrona em seu site. Lá você encontrará o RAVE 4.09 trial para download e a 5.0 para a compra. Os arquivos demos disponíveis para download não são compatíveis com o Delphi 7.0 e RAVE 5.0, pois foram baseados no RAVE 4.09. Houve uma mudança no nome das classes da versão 4.09 para 5.0 e alguns componentes simplesmente desapareceram. Isto inviabilizará o uso dos exemplos de demonstração da versão 4.09. Quem já utilizava o RAVE (ou, no meu caso, o ReportPrinter) terá que modificar seus projetos para garantir a compatibilização do Delphi 5/6 com o 7.0. Produtos de terceiros, tipo o excelente Rave for Renders da Pragnaam (http://www.pragnaan.com) não são compatíveis. Deverão ser rescritos. A Borland não disponibiliza o código fonte do RAVE. Este deverá ser adquirido junto à Nevrona. Até aí, nada de novo, já era assim com o QuickReport. É a técnica que a Borland usa para promover seus parceiros de soluções. Percebi alguns pequenos bugs na versão 5.0 do RAVE, principalmente na sua IDE de criação de relatórios. A Nevrona está prometendo para breve um patch de correção. Um bug interessante (se é que Bugs podem ser interessantes) acontece na versão 98 do Windows. quando o usuário tenta salvar um relatório criado na IDE. Uma mensagem de erro o informará que não existe espaço livre no disco rígido (!). O relatório só será salvo se você apontá-lo para a pasta raiz do drive. Cheguei a essa conclusão depois de perder vários trabalhos desenvolvidos na IDE. O desenvolvedor inicialmente enfrentará o problema da falta de documentação e demos atualizados para a versão adotada pelo Delphi 7.0. Isto será apenas uma questão de tempo, pois esta será a solução oficial para criação de relatórios em Delphi à partir da versão 7.0. Não percebi mudanças substanciais na engine básica do componente. Acredito que essa evolução tenha caminhado basicamente para o lado do design de relatórios usando a IDE do RAVE. Os legionários do ReportBuilder (http://www.digital-metaphors.com) a acharão muito confusa, e realmente é. Levem em consideração que essa IDE é bastante nova, se comparada ao ReportBuilder, que já está no mercado desde o Delphi 2.0. A Nevrona ainda tem muito o que aprender com a Digital-Metaphors. A propósito, nos fóruns "borland.public.delphi.thirdparty-tools" e "borland.public.delphi.reporting-charting" está acontecendo um duelo de titãs entre os criadores do RAVE e do ReportBuilder. Vale a pena acompanhá-la, é uma discussão de alto-nível onde cada um expõe os recursos de sua ferramenta em comparação com a concorrente. Se você não usa News, procure pelas palavras "Delphi" "RAVE" "ReportBuilder" no http://groups.google.com.

Page 8: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 736

Para conhecer melhor o produto RAVE, recomendo o download da documentação oficial da Nevrona nos endereços abaixo. São dois arquivos PDF (mais de 600 páginas) com uma excelente descrição técnica e funcional das classes do pacote. Rave Visual Designer Documentation in Adobe Acrobat Format http://www.nevrona.com/files/rave4.pdf Borland Integration Guide Pro Documentation in Adobe Acrobat Format http://www.nevrona.com/files/rppro4.pdf Não deixe de visitar também a seção de Tips & Tricks. A maioria das dicas estão desatualizadas, porém o código é compatível com as novas versões. http://www.nevrona.com/rave/tips.shtml O Delphi 7.0 traz alguns demos de relatórios do RAVE na pasta RAVE5\\DEMOS, porém a Borland se esqueceu de um arquivo importante, o arquivo de projeto do demo (arquivo .DPR), dificultando assim sua compilação pelos usuários com pouco conhecimento do Delphi. Para quem não sabe, RAVE significa "Report Authoring Visual Environment".

Page 9: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 737

���� Rave ���� Criando relatório no Delphi 7.0 Fazer relatório no Delphi 7 é totalmente diferente comparando ao Delphi 6.0. Abaixo faremos um relatório exemplo usando o novo recurso, aba Rave.

� Crie a tabela abaixo.

� Crie o formulário de entrada de dados com o Form Wizard e insira um botão para abrir o relatório.

� Insira dois componentes, RvProject1 e RvTableConnection1 ( veja aba Rave ).

Page 10: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 738

� Dê um clique duplo sobre o ícone RvProject, será aberta a tela abaixo...

� Usaremos a aba Report e alguns componetes de aba. Siga os passo de acordo com os números.

� � � �

Page 11: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 739

� Demarca a região onde serão definidas as bandas e onde mostrará / listará os registros do relatório.

� Band Component - Insira um Banda ( Band1 ) e nesta banda vamos inserir um cabeçalho.

No ponto verde pode ser aumentado na altura da banda,

mantenha pressionado no botão e arraste para cima e para baixo.

Note que a altura da região da caixa esta baixa, ou seja,

imprimirá cerca de 5 ou 6 registros neste espaço.

Page 12: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 740

Agora vamos inserir um cabeçalho no relatório. Para isto usaremos a aba Standard e o componente “T” ( Text Component )

Para definir um título para página Band1.

� Vamos usar a aba Drawing para definir uma linha abaixo do título Relatório de Clientes – Teste 1 – Delphi 7.0 – Usando Rave.

No lado equerdo você poderá definir as

propriedades da linha, LineWidth ( largura linha ),

Color ( cor ) etc

Page 13: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 741

�� Banda cabeçalho dos dados ( Band 2 - band component ). Clique na aba Standard e insira 3 componentes Text Component.

�� DataBand Component - Banda onde dados da tabela são mostrados, impressos. Insira uma DataBand Component que esta na aba Report.

Page 14: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 742

�� Data Text component - Insira três componentes Data Text component. Este componente permite associar ao campo da tabela.

�� Clique no ícone View.

�� Clique em Database Connection, após clique no botão Next, será aberta a página ao lado.

Page 15: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 743

�� Defina o Alias ( nome do Alias é Rave1 ) e o tipo de driver da tabela de dados ( Paradox ).

�� Clique em Direct Data View, após clique no botão Next, será aberta a página ao lado.

� Agora vamos associar os campos da tabela, clique no componente Data Text1.

Clique nos 3 pontinhos [...], será aberta a tela abaixo, escolha o campo e clique em Insert Field

Page 16: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 744

� Definindo campo Clie_Codigo ( código do cliente ). Clique no componente DataText1, clique em DataField escolha o nome do campo Clie_Codigo, clique no botão Insert Field. Após clique em DataView e defina DataView1.

�� Clique na primeira banda ( Band1 ), clique em BandStyle, será aberta a tela abaixo, após clique em ControllerBand e defina DataBand1.

Page 17: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 745

�� Clique na primeira banda ( Band2 ), clique em BandStyle, após clique em ControllerBand e defina DataBand1.

�� Clique na banda DataBand1, clique na propriedade DataView e defina DataView1, clique DataBand1, clique na propriedade BandStyle, será aberta a tela abaixo:

Clique na opção Detail

Page 18: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 746

�� Definindo campo Clie_Nome ( código do cliente ). Clique no componente DataText2, clique em DataField escolha o nome do campo Clie_Nome, clique no botão Insert Field. Após clique em DataView e defina DataView1.

Clique na banda Databand Component, clique na

propriedade BandStyle, será aberta uma tela para definir propriedades, veja

página anterior.

Page 19: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 747

�� Definindo campo Clie_Data_Nasc ( Data de Nascimento ). Clique no componente DataText3, clique em DataField escolha o nome do campo Clie_Data_Nasc, clique no botão Insert Field. Após clique em DataView e defina DataView1.

�� Clique no ícone Save Project para salvar o relatório, neste arquivo serão salvas todas as propriedades etc do o projeto Rave como o nome de Project2.rav.

�� Clique no ícone RvProject1, clique em ProjectFile, informe o caminho e o nome do arquivo do relatório ( Project2.rav ).

Page 20: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 748

Relatório pronto. ☺ ufa ! ... imagina... este é um relatório bem simples ... ☺

Page 21: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 749

Page 22: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 750

���� Inserindo Data e Número de página no cabeçalho do relatório

� Clique duplo sobre o componente , clique na aba Report, insira um componente Data Text Component.

� Digite o texto entre aspas simples e o sinal de mais: ‘Data: ‘ +

Clique no drop down em Report Variables, escolha DateShort e clique

no botão Insert Report Var, após digite o caracter mais ( + ), após digite:

+ ‘ Página ‘ + Clique no drop down Report Variables,

escolha CurrentPage para imprimir página atual.

� Clique no componente DataText Component ,

clique na propriedade DataField [...], será aberta a tela abaixo.

Digite ‘ Data: ‘ + Digite + ‘ Página ‘ +

Page 23: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 751

���� Usando componentes CheckBox e RadioButton

Page 24: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 752

���� Criando senha ( 1 )

� Insira um Form, um MaskEdit ( aba Additional ) e um Bitbtn. O usuário terá 3 chances, se na terceira a senha for digitada errada será abortado o programa. Na propriedade Name do formulário digite Senha_Frm.

� Abra seu projeto, clique no ícone View Unit ou pressione Ctrl F12 e coloque duas barrinhas diante do nome do formulário da senha para cancelar esta linha.

Coloque duas barrinhas ( // ) diante da linha que

abre o formulário da senha para que esta não

seja carregada.

No evento OnClick do botão Bitbtn

acima ( OK ) digite o código que está

na direita.

Page 25: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 753

� Project • options, clique no sinal de maior ( > ) para deslocar o formulário da senha para direita.

� Após a senha qual é o formulário que você deseja abrir ?, neste exemplo abriremos o Menu de opções.

O formulário da senha deve estar do lado direito

( Available forms, ou formulários disponíveis )

No evento OnActivate do formulário do Menu digite o código abaixo.

Senha_Frm é o formulário da

senha.

Page 26: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 754

���� Criando senha ( 2 )

� Insara um Form, a propriedade Name do Form é Login_Frm, insira dois Edit, a propriedade Name do primeiro Edit é Edit_usuario e o segundo Name é Edit_Senha, veja abaixo a tela da senha e o programa fonte.

Código fonte completo da tela acima:

Page 27: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 755

� File • New • Unit. O Delphi mostrará o conteúdo abaixo básico abaixo, você terá que digitar ( implementar ) a Unit da senha. Este código poderá ser usado ( aproveitado ) em qualquer outro programa ou sistema que desejar.

Page 28: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 756

Veja abaixo o programa fonte da Unit da página anterior. A unit abaixo foi salva com o nome de Rotinas.pas. Foi criado um arquivo de Rotinas para facilitar ( tornar mais dinâmico ) o uso futuro da função senha.

Page 29: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 757

� Clique no ícone View Unit ( Ctrl F12 )

���� Restringir área do mouse

Após Application.Initialize digite: If TelaDeLogin then

Begin … e na parte final do programa digite Else Application.Terminate

Page 30: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 758

���� Usando agentes da Microsoft Trabalhando com os Agentes da Microsoft no Delphi e fazendo seus programas mais alegres. Os testes a seguir foram realizados com Delphi 6.0 1) Faça download dos Agentes no site da Microsoft. Para instalar basta dar um clique duplo em cada um dos agentes e Ok, very easy ☺, existem vários agentes e não somente agentes da Microsoft mas também de outras empresas.

2) Abra o Delphi, na opção Component – Import ActiveX Control, clique em Microsoft Agent Control 2.0 e Install ( para instalar o componente )

Selecione o Agente clicando, após clique

no botão Install.

Page 31: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 759

Crie um projeto novo no Delphi, no formulário principal insira o componente Agent que está na aba ActiveX

Se o campo Nome não for preenchido faremos com que o Agente Papagaio apareça mostrando uma mensagem.

Page 32: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 760

Na seção Private digite esta linha.

Se não for preenchido o campo Nome o

Papagaio aparecerá e fará as ações definidas

e desaparecerá.

Clique no Agente e no evento

OnBallonHide digite o código ao lado.

Page 33: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 761

Agente: Peedy

Se você preferir usar o agente Merlin, instale o agente e no programa fonte substitua o nome Peedy para Merlin. Agente: Merlin

O foco esta no campo Nome,

se deixar o campo nome em

branco o agente será exibido e

fará suas ações.

O foco esta no campo Nome,

se deixar o campo nome em

branco o agente será exibido e

fará suas ações.

Page 34: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 762

Peedy ���� Palavras de animação do “ Papagaio ”

Animação Retorno da animação Fala ? Som Estado Descrição

Acknowledge None No No None Nods head

Alert Yes, using exit branches Yes No Listening Straightens and raises eyebrows

Announce Yes, using exit branches Yes Yes None Paper airplane flies in and unfolds

Blink None No No IdlingLevel1 IdlingLevel2

Blinks eyes

Confused Yes, using exit branches Yes Yes None Eyes spin around

Congratulate Yes, using exit branches Yes Yes None Displays blue ribbon

Decline Yes, using exit branches Yes No None Shakes head

DoMagic1 None Yes Yes None Raises magic wand

DoMagic2 Yes, using exit branches No Yes None Lowers wand, clouds appear

DontRecognize Yes, using exit branches Yes No None Shakes head and holds wing to ear

Explain Yes, using exit branches Yes No None Extends arms to side

GestureDown Yes, using exit branches Yes No GesturingDown Gestures down

Animação Retorno da animação Fala ? Som Estado Descrição

GestureLeft Yes, using exit branches Yes No GesturingLeft Gestures left

GestureRight Yes, using exit branches Yes No GesturingRight Gestures right

GestureUp Yes, using exit branches Yes No GesturingUp Gestures up

GetAttention GetAttentionReturn Yes Yes None Jumps up with wings outstretched

GetAttentionContinued GetAttentionReturn Yes Yes None Jumps up with wings outstretched again

GetAttentionReturn None No No None Returns to neutral position

Greet Yes, using exit branches Yes Yes None Bows

Hearing_1 None No No Hearing Tilts head right (*looping animation)

Hearing_2 None No No Hearing Tilts head left (*looping animation)

Hearing_3 None No No Hearing Turns head right then left (*looping animation)

Hide None No Yes Hiding Flies away

Idle1_1 None No No IdlingLevel1 IdlingLevel2

Takes breath

Idle1_2 None No No IdlingLevel1 IdlingLevel2

Glances right and blinks

Idle1_3 None No No IdlingLevel1 IdlingLevel2

Glances left and blinks

Idle1_4 None No No IdlingLevel1 IdlingLevel2

Glances up and blinks

Idle1_5 None No No IdlingLevel1 IdlingLevel2

Glances down and blinks

Idle2_1 Yes, using exit branches No No IdlingLevel2 Puts on sunglasses

Idle2_2 None No Yes IdlingLevel2 Eats a cracker

Idle3_1 None No Yes IdlingLevel3 Yawns

Idle3_2 Yes, using exit branches No Yes IdlingLevel3 Falls asleep (*looping animation)

Idle3_3 Yes, using exit branches No No IdlingLevel3 Listens to music (*looping animation)

LookDown LookDownReturn No No None Looks down

LookDownBlink LookDownReturn No Yes None Blinks looking down

LookDownReturn None No No None Returns to neutral position

Page 35: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 763

LookDownLeft LookDownLeftReturn No No None Looks down left

LookDownLeftBlink LookDownLeftReturn No Yes None Blinks looking down left

LookDownLeftReturn None No No None Returns to neutral position

LookDownRight LookDownRightReturn No No None Looks down right

LookDownRightBlink LookDownRightReturn No Yes None Blinks looking down right

LookDownRightReturn None No No None Returns to neutral position

LookLeft LookLeftReturn Yes No None Looks left

Animação Retorno da animação Fala ? Som Estado Descrição

LookLeftBlink LookLeftReturn Yes Yes None Blinks looking left

LookLeftReturn None No No None Returns to neutral

position

LookRight LookRightReturn Yes No None Looks right

LookRightBlink LookRightReturn Yes Yes None Blinks looking right

LookRightReturn None No No None Returns to neutral position

LookUp LookUpReturn No No None Looks up

LookUpBlink LookUpReturn No Yes None Blinks looking up

LookUpReturn None No No None Returns to neutral position

LookUpLeft LookUpLeftReturn No No None Looks up left

LookUpLeftBlink LookUpLeftReturn No Yes None Blinks looking up left

LookUpLeftReturn None No No None Returns to neutral position

LookUpRight LookUpRightReturn No No None Looks up right

LookUpRightBlink LookUpRightReturn No Yes None Blinks looking up right

LookUpRightReturn None No No None Returns to neutral position

MoveDown Yes, using exit branches No Yes MovingDown Flies down

MoveLeft Yes, using exit branches No Yes MovingLeft Flies left

MoveRight Yes, using exit branches No Yes MovingRight Flies right

MoveUp Yes, using exit branches No Yes MovingUp Flies up

Pleased Yes, using exit branches Yes No None Smiles

Process None No Yes None Uses calculator

Processing Yes, using exit branches No Yes None Uses calculator (*looping animation)

Read ReadReturn Yes Yes None Opens magazine, reads and looks up

ReadContinued ReadReturn Yes Yes None Reads and looks up

ReadReturn None No Yes None Returns to neutral position

Reading Yes, using exit branches No Yes None Reads (*looping animation)

RestPose None Yes No Speaking Neutral position

Sad Yes, using exit branches Yes No None Sad expression

Search None No Yes None Reveals telescope and rotates

Searching Yes, using exit branches No Yes None Reveals telescope and rotates (*looping animation)

Show None No Yes Showing Flies in

StartListening Yes, using exit branches Yes No None Puts hand to ear

StopListening Yes, using exit branches Yes No None Puts hands to ears

Suggest Yes, using exit branches Yes Yes None Displays light bulb

Surprised Yes, using exit branches Yes Yes None Looks surprised

Page 36: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 764

Think Yes, using exit branches Yes No None Looks up with wing on face

Animação Retorno da animação Fala ? Som Estado Descrição

Thinking None No No None Looks up with wing on face (*looping

animation)

Uncertain Yes, using exit branches Yes No None Leans to right and shrugs

Wave Yes, using exit branches Yes No None Waves

Write WriteReturn Yes Yes None Takes out pencil and pad, writes and looks up

WriteContinued WriteReturn Yes Yes None Writes and looks up

WriteReturn None No No None Returns to neutral position

Writing Yes, using exit branches No Yes None Takes out pencil and pad, writes (*looping animation)

Merlin ���� Palavras de animação do “Mago”

Animação Retorno da animação Fala ? Som Estado Descrição

Acknowledge None No No None Nods head

Alert Yes, using Exit branches Yes No Listening Straightens and raises eyebrows

Announce Yes, using Exit branches Yes Yes None Raises trumpet and plays

Blink None No No IdlingLevel1 IdlingLevel2

Blinks eyes

Confused Yes, using Exit branches Yes Yes None Scratches head

Congratulate Yes, using Exit branches Yes Yes None Displays trophy

Congratulate_2 Yes, using Exit branches Yes Yes None Applauds

Decline Yes, using Exit branches Yes No None Raises hands and shakes head

DoMagic1 None Yes No None Raises magic wand

DoMagic2 Yes, using Exit branches No Yes None Lowers wand, clouds appear

DontRecognize Yes, using Exit branches Yes No None Holds hand to ear

Explain Yes, using Exit branches Yes No None Extends arms to side

GestureDown Yes, using Exit branches Yes No GesturingDown Gestures down

GestureLeft Yes, using Exit branches Yes No GesturingLeft Gestures left

GestureRight Yes, using Exit branches Yes No GesturingRight Gestures right

GestureUp Yes, using Exit branches Yes No GesturingUp Gestures up

GetAttention GetAttentionReturn Yes Yes None Leans forward and knocks

GetAttentionContinued GetAttentionReturn Yes Yes None Leaning forward, knocks again

GetAttentionReturn None No No None Returns to neutral position

Greet Yes, using Exit branches Yes Yes None Bows

Hearing_1 None No No Hearing Ears extend (*looping animation)

Hearing_2 None No No Hearing Tilts head left (*looping animation)

Hearing_3 None No No Hearing Turns head left (*looping animation)

Hearing_4 None No No Hearing Turns head right (*looping animation)

Hide None No Yes Hiding Disappears under cap

Idle1_1 Yes, using Exit branches No No IdlingLevel1 IdlingLevel2

Takes breath

Idle1_2 Yes, using Exit branches No No IdlingLevel1 IdlingLevel2

Glances left and blinks

Animação Retorno da animação Fala ? Som Estado Descrição

Page 37: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 765

Idle1_4 Yes, using Exit branches No No IdlingLevel1 IdlingLevel2

Glances up to the right and blinks

Idle2_1 None No No IdlingLevel2 Looks at wand and blinks

Idle2_2 None No No IdlingLevel2 Holds hands and blinks

Idle3_1 None No Yes IdlingLevel3 Yawns

Idle3_2 Yes, using Exit branches No Yes IdlingLevel3 Falls asleep (*looping animation)

LookDown LookDownReturn No No None Looks down

LookDownBlink LookDownReturn No No None Blinks looking down

LookDownReturn None No No None Returns to neutral position

LookLeft LookLeftReturn No No None Looks left

LookLeftBlink LookLeftReturn No No None Blinks looking left

LookLeftReturn None No No None Returns to neutral position

LookRight LookRightReturn No No None Looks right

LookRightBlink LookRightReturn No No None Blinks looking right

LookRightReturn None No No None Returns to neutral position

LookUp LookUpReturn No No None Looks up

LookUpBlink LookUpReturn No No None Blinks looking up

LookUpReturn None No No None Returns to neutral position

MoveDown Yes, using Exit branches No Yes MovingDown Flies down

MoveLeft Yes, using Exit branches No Yes MovingLeft Flies left

MoveRight Yes, using Exit branches No Yes MovingRight Flies right

MoveUp Yes, using Exit branches No Yes MovingUp Flies up

Pleased Yes, using Exit branches Yes No None Smiles and holds hands together

Process No No Yes None Stirs caldron

Read ReadReturn Yes Yes None Opens book, reads and looks up

ReadContinued ReadReturn Yes Yes None Reads and looks up

ReadReturn None No Yes None Returns to neutral position

Reading Yes, using Exit branches No Yes None Reads (*looping animation)

RestPose None Yes No Speaking Neutral position

Sad Yes, using Exit branches Yes No None Sad expression

Search No No Yes None Looks into crystal ball

Animação Retorno da animação Fala ? Som Estado Descrição

Searching Yes, using Exit branches No Yes None Looks into crystal ball (*looping animation)

Show None No Yes Showing Appears out of cap

StartListening Yes, using Exit branches Yes No None Puts hand to ear

StopListening Yes, using Exit branches Yes No None Puts hands over ears

Suggest Yes, using Exit branches Yes Yes None Displays lightbulb

Surprised Yes, using Exit branches Yes Yes None Looks surprised

Think Yes, using Exit branches Yes No None Looks up with hand on chin

Thinking No No No None Looks up with hand on chin (*looping animation)

Uncertain Yes, using Exit branches Yes No None Leans forward and raises eyebrow

Wave Yes, using Exit branches Yes No None Waves

Write WriteReturn Yes Yes None Opens book, writes and looks up

WriteContinued WriteReturn Yes Yes None Writes and looks up

WriteReturn None No Yes None Returns to neutral position

Writing Yes, using Exit branches No Yes None Writes (*looping animation)

Page 38: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 766

Genie ���� Palavras de animação do “Gênio”

Animação Retorno da animação Fala ? Som Estado Descrição

Acknowledge None No No None Nods head

Alert Yes, using Exit branches

Yes No Listening Straightens and raises eyebrows

Announce Yes, using Exit branches

Yes No None Raises hand

Blink None No No IdlingLevel1 IdlingLevel2

Blinks eyes

Confused Yes, using Exit branches

Yes No None Scratches head

Congratulate Yes, using Exit branches

Yes Yes None Applauds

Congratulate_2 Yes, using Exit branches

Yes No None Gives thumbs-up gesture

Decline Yes, using Exit branches

Yes No None Raises hands and shakes head

DoMagic1 None Yes No None Turns to side and raises hands

DoMagic2 Yes, using Exit branches

No Yes None Lowers hands, clouds appear

DontRecognize Yes, using Exit branches

Yes No None Holds hand to ear

Explain Yes, using Exit branches

Yes No None Extends arms to side

GestureDown Yes, using Exit branches

Yes No GesturingDown Gestures down

GestureLeft Yes, using Exit branches

Yes No GesturingLeft Gestures left

GestureRight Yes, using Exit branches

Yes No GesturingRight Gestures right

GestureUp Yes, using Exit branches

Yes No GesturingUp Gestures up

GetAttention GetAttentionReturn Yes No None Waves arms

GetAttentionContinued GetAttentionReturn Yes No None Waves arms again

GetAttentionReturn None No No None Returns to neutral position

Greet Yes, using Exit branches

Yes No None Bows

Hearing_1 None No No Hearing Ears extend (*looping animation)

Hearing_2 None No No Hearing Tilts head left (*looping animation)

Hearing_3 None No No Hearing Turns head left (*looping animation)

Hearing_4 None No No Hearing Turns head right (*looping animation)

Hide None No Yes Hiding Disappears into smoke

Page 39: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 767

Animação Retorno da animação Fala ? Som Estado Descrição

Idle1_1 None No No IdlingLevel1 IdlingLevel2

Takes breath

Idle1_2 None No No IdlingLevel1 IdlingLevel2

Glances right and blinks

Idle1_3 Yes, using Exit branches

No No IdlingLevel1 IdlingLevel2

Glances left and blinks

Idle1_4 None No No IdlingLevel1 IdlingLevel2

Glances up to the right and blinks

Idle1_5 Yes, using Exit branches

No No IdlingLevel1 IdlingLevel2

Glances down and blinks

Idle1_6 None No No IdlingLevel1 IdlingLevel2

Glances up and blinks

Idle2_1 None No No IdlingLevel2 Wisp snakes

Idle2_2 Yes, using Exit branches

No No IdlingLevel2 Reveals scroll and reads

Idle2_3 Yes, using Exit branches

No No IdlingLevel2 Reveals scroll and writes

Idle3_1 None No Yes IdlingLevel3 Yawns

Idle3_2 Yes, using Exit branches

No Yes IdlingLevel3 Falls asleep (*looping animation)

LookDown LookDownReturn No No None Looks down

LookDownBlink LookDownReturn No No None Blinks looking down

LookDownReturn None No No None Returns to neutral position

LookLeft LookLeftReturn No No None Looks left

LookLeftBlink LookLeftReturn No No None Blinks looking left

LookLeftReturn None No No None Returns to neutral position

LookRight LookRightReturn No No None Looks right

LookRightBlink LookRightReturn No No None Blinks looking right

LookRightReturn None No No None Returns to neutral position

LookUp LookUpReturn No No None Looks up

LookUpBlink LookUpReturn No No None Blinks looking up

LookUpReturn None No No None Returns to neutral position

MoveDown Yes, using Exit branches

No Yes MovingDown Flies down

MoveLeft Yes, using Exit branches

No Yes MovingLeft Flies left

MoveRight Yes, using Exit branches

No Yes MovingRight Flies right

MoveUp Yes, using Exit branches

No Yes MovingUp Flies up

Pleased Yes, using Exit branches

Yes No None Smiles and holds hands together

Process No No No None Spins into a cloud

Page 40: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 768

Animação Retorno da animação Fala ? Som Estado Descrição

Processing Yes, using Exit branches

No No None Spins into a cloud (*looping animation)

Read ReadReturn Yes Yes None Reveals scroll, reads and looks up

ReadContinued ReadReturn Yes No None Reads and looks up

ReadReturn None No No None Returns to neutral position

Reading Yes, using Exit branches

No Yes None Reveal scroll and reads (*looping animation)

RestPose None Yes No Speaking Neutral position

Sad Yes, using Exit branches

Yes No None Sad expression

Search No No No None Reveals binoculars and turns

Searching Yes, using Exit branches

No No None Reveals binoculars and turns (*looping animation)

Show None No Yes Showing Appears out of smoke

StartListening Yes, using Exit branches

Yes No None Puts hand to ear

StopListening Yes, using Exit branches

Yes No None Puts hands over ears

Suggest Yes, using Exit branches

Yes No None Displays lightbulb

Surprised Yes, using Exit branches

Yes No None Looks surprised

Think Yes, using Exit branches

Yes No None Looks up with hand on chin

Thinking No No No None Looks up with hand on chin (*looping animation)

Uncertain Yes, using Exit branches

Yes No None Moves one hand to chin, other to hip, and raises right eyebrow

Wave Yes, using Exit branches

Yes No None Waves

Write WriteReturn Yes Yes None Reveals scroll, writes and looks up

WriteContinued WriteReturn Yes Yes None Writes and looks up

WriteReturn None No No None Returns to neutral position

Writing Yes, using Exit branches

No Yes None Reveals scroll, writes (*looping animation)

Page 41: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 769

���� Exportando dados para arquivos textos (.txt)

Exportando e importando arquivo texto com campos de tamanhos variáveis.

� Crie a tabela abaixo.

���� Insira um formulário, um DBgrid, um Table, um DataSource e 3 botões.

Arquivo TEXTO

Este código lerá registros com de

tamanho variável, logo adiante veremos como

ler registros com tamanhos fixos.

Page 42: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 770

Page 43: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 771

Registros com tamanhos fixos:

Arquivo texto de tamanho fixo = clientes_fixo.txt

Page 44: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 772

���� Criando um editor de textos

Clique duplo no componente MainMenu1

Insira um MainMenu, e os

componentes Dialog

( aba Dialogs )

Após ter aberto com clique duplo o

componente MainMenu1

adicione as opções do menu: defina o Caption, Name e

ShortCut.

Digite

Digite

Page 45: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 773

Page 46: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 774

Page 47: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 775

Page 48: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 776

Resultado

Page 49: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 777

���� Como imprimir arquivo no Word através do Delphi ?

���� Crie o arquivo abaixo no Word XP e grave com o nome Carta.doc

���� Insira um formulário e dois botões

���� Observe a linha Uses no início do programa, deve conter todas as bibliotecas abaixo.

Estes nomes são apenas variáveis e serão substituídas pelas informações que estão armazenadas no programa

feito no Delphi.

Page 50: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 778

Digite o código abaixo:

Será criado um arquivo de nome Tabela.doc via Delphi.

Page 51: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 779

���� Abrindo programas da Microsoft

Page 52: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 780

���� Como abrir unidade de cd-rom, bloco de notas etc. ?

Dicas: Como abrir e fechar unidade de cd-rom, abrir menu iniciar do Windows, navegador, Bloco de notas, proteção de tela ... Faça um formulário de acordo com o exemplo abaixo:

Page 53: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 781

Page 54: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 782

���� Como esconder o botão iniciar ?

Page 55: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 783

���� Como esconder ícones da área de trabalho ?

���� Como esconder o relógio da barra de tarefas do Windows ?

���� Como tocar arquivo de som do tipo “.wav” ?

Page 56: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 784

���� Como ressetar, desligar o computador ?

���� Como tocar arquivo de som do tipo “.wav, .mid e .mp3” ?

Insira um componente RadioGroup1 (aba Standard ) Selecione o objeto RadioGroup e

na na propriedade Items clique em (TStrings), será aberta uma caixa e dentro desta digite as seguintes linhas uma abaixo

da outra: Reinicia o Windows Desliga o Windows Força todos os programas a desligarem Dá um logoff no usuário atual

Insira um componente MediaPlayer ( aba System ), clique na propriedade

VisibleButtons e defina os valroes True ou False para os botões que deseja visualizar ou

ocultar, insira um OpenDialog ( aba Dialogs ) e insira um botão do tipo Bitbtn.

Clique no OpenDialog, clique na propriedade Filter, clique

nos 3 pontinhos ( ... ) e digite a terminações de acordo com o

gráfico ao lado.

Page 57: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 785

���� Como abrir utilitários do Painel de Conrole do Windows ?

Abaixo estão os códigos dos utilitários do Painel de Controle. // Abre o Painel de Controle Executa_Prog ('shell32.dll,Control_RunDLL'); // Adiciona/Remove programas: instalar/desinstala programas Executa_Prog ('shell32.dll,Control_RunDLL appwiz.cpl,,1'); // Adiciona/Remove programas: setup windows Executa_Prog ('shell32.dll,Control_RunDLL appwiz.cpl,,2'); // Adiciona/Remove programas: disco de Inicialização Executa_Prog ('shell32.dll,Control_RunDLL appwiz.cpl,,3'); // Mostra propriedades: fundo Executa_Prog('shell32.dll,Control_RunDLL desk.cpl,,0');

Page 58: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 786

// Mostra propriedades: proteção de Tela Executa_Prog ('shell32.dll,Control_RunDLL desk.cpl,,1'); // Mostra propriedades: aparência Executa_Prog('shell32.dll,Control_RunDLL desk.cpl,,2'); // Mostra propriedades: configurações Executa_Prog('shell32.dll,Control_RunDLL desk.cpl,,3'); // Localizar Executa_Prog('shell32.dll,Control_RunDLL findfast.cpl'); // Internet: geral Executa_Prog('shell32.dll,Control_RunDLL inetcpl.cpl,,0'); // Internet: segurança Executa_Prog('shell32.dll,Control_RunDLL inetcpl.cpl,,1'); // Internet: conteúdo Executa_Prog('shell32.dll,Control_RunDLL inetcpl.cpl,,2'); // Internet: conexão Executa_Prog('shell32.dll,Control_RunDLL inetcpl.cpl,,3'); // Internet: programas Executa_Prog('shell32.dll,Control_RunDLL inetcpl.cpl,,4'); // Internet: avançado Executa_Prog('shell32.dll,Control_RunDLL inetcpl.cpl,,5'); // Configurações regionais: configurações regionais Executa_Prog('shell32.dll,Control_RunDLL intl.cpl,,0'); // Configurações regionais: numeração Executa_Prog('shell32.dll,Control_RunDLL intl.cpl,,1'); // Configurações regionais: moeda Executa_Prog('shell32.dll,Control_RunDLL intl.cpl,,2'W); // Configurações regionais: hora Executa_Prog('shell32.dll,Control_RunDLL intl.cpl,,3'); // Configurações regionais: data Executa_Prog('shell32.dll,Control_RunDLL intl.cpl,,4'); // Joy stick: geral Executa_Prog('shell32.dll,Control_RunDLL joy.cpl,,0'); // Joy stick: avançado Executa_Prog('shell32.dll,Control_RunDLL joy.cpl,,0'); // Mouse Executa_Prog('shell32.dll,Control_RunDLL main.cpl @0');

Page 59: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 787

// Teclado Executa_Prog('shell32.dll,Control_RunDLL main.cpl @1'); // Impressora Executa_Prog('shell32.dll,Control_RunDLL main.cpl @2'); // Fontes Executa_Prog('shell32.dll,Control_RunDLL main.cpl @3'); // Microsoft outlook: fax/mail Executa_Prog('shell32.dll,Control_RunDLL mlcfg32.cpl'W); // Multimedia: audio Executa_Prog('shell32.dll,Control_RunDLL mmsys.cpl,,0'); // Multimedia: video Executa_Prog('shell32.dll,Control_RunDLL mmsys.cpl,,1'); // Multimedia: midi Executa_Prog('shell32.dll,Control_RunDLL mmsys.cpl,,2'); // Multimedia: cd music Executa_Prog('shell32.dll,Control_RunDLL mmsys.cpl,,3'); // Multimedia: dispositivos Executa_Prog('shell32.dll,Control_RunDLL mmsys.cpl,,4'); // Rede Executa_Prog('shell32.dll,Control_RunDLL netcpl.cpl'); // Dialup-networking Executa_Prog('rnaui.dll,RnaWizard'); // Administração odbc Executa_Prog('shell32.dll,Control_RunDLL odbccp32.cpl'W); // Configurando senhas Executa_Prog('shell32.dll,Control_RunDLL password.cpl'); // System: general Executa_Prog('shell32.dll,Control_RunDLL sysdm.cpl,,0'); // system: device manager Executa_Prog('shell32.dll,Control_RunDLL sysdm.cpl,,1'); // System: hardware profiles Executa_Prog('shell32.dll,Control_RunDLL sysdm.cpl,,2'); // System: performance Executa_Prog('shell32.dll,Control_RunDLL sysdm.cpl,,3'); // Assistente para instalar novo Hardware Executa_Prog('shell32.dll,Control_RunDLL sysdm.cpl @1');

Page 60: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 788

// Assistente para adicionar nova impressora Executa_Prog('shell32.dll,SHHelpShortcuts_RunDLL AddPrinter'); // Temas Executa_Prog(,'shell32.dll,Control_RunDLL themes.cpl'); // Propriedades data e hora: geral Executa_Prog('shell32.dll,Control_RunDLL timedate.cpl'); // Propriedades data/hora: zona Executa_Prog('shell32.dll,Control_RunDLL timedate.cpl,,/f'); // Adicionar modem wizard Executa_Prog('shell32.dll,Control_RunDLL modem.cpl,,add');

���� Windows Explorer

Executando os programas, utilitários do Painel de Controle do Windows, abrindo arquivos, opções etc. Na linha Uses digite ShellApi. 1 - A linha abaixo abre o Explorer procedure TForm1.Bit_OKClick(Sender: TObject); begin ShellExecute(Handle, 'explore', PChar('c:\windows'), nil, nil, SW_SHOW); end; 2 - A linha abaixo imprimirá o arquivo readme.txt ShellExecute(Handle, 'print', PChar('c:\Windows\Readme.txt'), nil, nil, SW_SHOW); 3 - A linha abaixo abrirá o home page (site) da playboy.com ShellExecute(Handle, 'open', PChar('http://www.playboy.com/'), nil, nil, SW_SHOW); 4 - A linha abaixo abrirá o arquivo readme.txt ShellExecute(Handle, 'open', PChar('c:\Test\Readme.txt'), nil, nil, SW_SHOW); 5 - A linha abaixo abrirá o arquivo recover.txt com o programa Notepad ShellExecute(Handle, 'open', PChar('notepad'), PChar('c:\Windows\Recover.txt'), nil, SW_SHOW); 6 - A linha abaixo só abrirá o arquivo o programa Notepad ShellExecute(Handle, 'open', PChar('notepad'), nil, nil, SW_SHOW); 7 - A linha abaixo só abrirá qualquer aplicação ShellExecute(Handle, 'open', PChar('c:\Windows\Calc.exe'), nil, nil, SW_SHOW);

Page 61: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 789

���� Definindo imagem no fundo do formulário

Colocando uma figura de fundo no formulário Na linha Uses defina o termo ShellApi Abaixo do termo Private digite: Meu_Bmp : TBitMap;

No evento OnCreate digite as linhas abaixo:

No evento OnPaint digite os código abaixo:

Page 62: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 790

���� Como animar imagem ?

Insira um componente Image ( aba Additional ), clique na propriedade Picture ( TBitmap ...) e informe uma imagem, neste caso de um

Globo. Defina o fundo do formulário preto, insira um componente Timer

( aba System ), clique no Time, defina o nome da propriedade

( Name ) para Timer_Relogio e Interval para 1000.

Page 63: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 791

���� Formulário simulando cortina

Ao clicar no botão será aberta a cortina e o botão

superior ficará temporariamente oculto,

após clicar no botão inferior a cortina será

aberta e botão superior será exibido novamente.

Page 64: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 792

���� Como criar uma barra flutuante ?

Clique na lateral do

formulário e arraste-o.

Page 65: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 793

Page 66: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 794

Exemplo

Page 67: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 795

���� Como capturar conteúdo de uma tela ?

Insira um componente TImage

e na propriedade Stretch defina o valor

para True.

Page 68: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 796

���� Como gravar imagem na tabela paradox ?

Para armazenar a foto ou imagem no campo Foto use o recurso “colar e copiar” Crie a tabela de acordo como gráfico abaixo:

Page 69: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 797

���� Como encriptografar imagem/foto na tabela ?

Tipo de campo para armazenar a imagem/foto = B

Page 70: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 798

Clique no botão Carrega imagem para abrir um arquivo de imagem, antes de Salvar clique no botão

Encript / Decript, isto criptografará ( codificará / embaralhará ) a imagem, finalmente clique no botão Salvar do

navegador de dados.

Para decodificar a imagem basta clicar no botão Encript / Decript

☺ Você poderá melhorar ainda mais este exemplo ☺ Have phun

...

Salva imagem

codificada

No mesmo botão criptografará e

decriptografará a imagem.

Page 71: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 799

���� Como encriptografar texto ? ( 1 )

Page 72: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 800

���� Como encriptografar texto ? ( 2 )

Digite linha na seção public

Page 73: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 801

Page 74: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 802

���� Como encriptografar texto ? ( 3 )

Page 75: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 803

Page 76: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 804

Page 77: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 805

���� Programa para gerar “código” de acesso

Gere um código de segurança para o

seu sistema.

Page 78: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 806

���� Componente StatusBar

Insira uma StatusBar ( aba Win32 ), dê um clique duplo sobre a barra, clique 5 vezes no primeiro

ícone ( Add New ) para criar 5 divisões na barra para encaixar os

“textos”

Defina a largura de cada divisão da StatusBar: 0 – propriedade Width = 200 1 – propriedade Width = 30 2 – propriedade Width = 30 3 – propriedade Width = 65 4 – propriedade Width = 55 5 – propriedade Width = 65

Page 79: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 807

Page 80: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 808

���� Como criar barra de título ?

Uma maneira simples para criar um barra de título personalizada.

Insira um botão Button e na

propriedade Caption digite um X

A parte azul escura é um Label com a propriedade

Color = clNavy

Digite as Procedures ao lado.

Page 81: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 809

���� Como converter Rich Text em arquivo .Bmp ?

Insira um componente Image ( aba Additional ) e

um componente SaveDialog

( aba Dialogs )

Insira um componente RichEdit ( aba Win32 ) e

na propriedade Lines digite um texto para converter para .bmp

Page 82: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 810

���� Como criar formulário com cor gradiente ?

Page 83: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 811

���� Como fazer um letreiro ?

Page 84: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 812

Page 85: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 813

���� Criando um slide

Insira um Label e no Capiton deste Label digite By English Way. Insira um SpeedButton

e neste botão insira uma imagem de um X

Page 86: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 814

���� Criando um relógio flutuante

Dê um clique duplo sobre o componente PopuMenu1 e no Caption digite &Fechar

Page 87: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 815

Para fechar o relógio, clique com botão direito do mouse sobre o relógio

e clique em Fechar.

Page 88: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 816

���� Como fazer um contador para finalizar programa ?

Page 89: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 817

���� Como criar programa para listar tarefas ?

Tarefas que estão na

memória do computador.

Page 90: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 818

���� Como desativar o teclado e o mouse por 10 segundos ?

���� Animando um botão

Após clicar no botão o teclado e o mouse não funcionarão por 10

segundos.

Page 91: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 819

���� Como apagar arquivos do Cache do Internet Explorer ?

Page 92: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 820

���� Como evitar que a tela não seja redimensionada ? Não permitirá redimensionar e maximizar a tela.

���� Como encriptografar senha ?

Digite

Digite

Page 93: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 821

���� Como “matar” processos ?

Insira uma StringGrid ( aba Additional ),

clique na StringGrid, clique na propriedade ColCount e defina o

valor 3

Insira um RadioGroup ( aba Standard ), na

propriedade Columns defina o valor 2, na propriedade Items (...) escreva:

Não A cada 5 segundos

Insira um Timer ( aba System )e na

propriedade Interval digite 5000

Page 94: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 822

Page 95: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 823

Page 96: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 824

���� Como fazer um formulário invisível ?

Digite

Digite

Page 97: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 825

Page 98: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 826

Formulário Visível

Formulário Invisível

Page 99: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 827

���� Como definir imagem no fundo do formulário ?

Page 100: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 828

���� Como abrir um programa com parâmetro ? Antes de abrir a Calculadora do Windows será passado um parâmentro e se este for diferente não abrirá a Calculadora.

Clique em no menu do Delphi em Run, clique em Run Parameters, clique no campo Parameters e digite o parâmetro parâmetro_senha77

Para abrir projeto clique no ícone View Unit ( Ctrl + F12 )

.

Digite o parâmetro

Abra o projeto, talvez você terá que digitar as bibliotecas Dialogs

e Windows.

Page 101: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 829

���� Como visualizar arquivo de vídeo (.avi) ?

���� Como usar algumas classes do Windows ?

Crie um segundo formulário Form_Mostra_Vídeo , onde será aberto o arquivo de vídeo, ou

seja, um formulário em branco.

Insira um componente MediaPlayer que está na

aba System.

Abre o Editor de Textos Word

Page 102: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 830

���� Como definir imagem em um botão do tipo “Button” ?

���� Como forçar posicionamento em uma coluna ?

No exemplo abaixo mostra como posicionar o cursor na terceira coluna de um DBGrid. O código deverá ser digitado no evento OnShow.

���� Forçar letras “maiúsculas” no DBGrid.

Key := AnsiLowerCase(Key)[1]; // minúsculas

Page 103: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 831

���� Como gravar arquivo de som do tipo .wav ?

Insira um novo formulário, dois edit, um botão SpeedButton, um

SpeedEdit ( aba Samples ), dois componentes MediaPlayer ( aba System ), um Timer ( aba System ), um SaveDialog ( aba Dialogs ), um GroupBox, 8 RadioButton e

quatro botões do tipo BitBtn.

Como gravar ? Ouça uma música, música de cd e clique no botão Começa para iniciar

a gravação ☺

Page 104: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 832

Digite estas linhas

Page 105: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 833

Page 106: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 834

Page 107: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 835

Page 108: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 836

���� Girando imagem no formulário

Page 109: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 837

Digite as linhas abaixo da seção

Private

Clique no botão e gire a foto.

Page 110: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 838

Page 111: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 839

���� Como trocar papel de parede ?

Page 112: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 840

���� Como usar OLE ?

Usando WordPad em um aplicativo Delphi.

Vamos incorporar um objeto externo, ou seja, o

WordPad do Windows dentro de um programa

Delphi.

Page 113: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 841

Page 114: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 842

Page 115: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 843

���� Como obter código serial do HD ?

���� Como mostrar mensagem mais demorada ?

Mostrará mensagem após pressionar botão 5 segundos.

Page 116: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 844

���� Como imprimir conteúdo de um Memo ?

���� Como ocultar e mostrar ponteiro do mouse ?

Page 117: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 845

���� Como ligar e desligar Capslock ?

Page 118: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 846

���� Como obter informações: label, serial... ?

���� Como verificar programas que estão abertos ?

Page 119: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 847

���� Como verificar se Drive esta Ok ?

���� Como criar e gravar em um arquivo .ini ?

Page 120: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 848

Page 121: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 849

���� Gravando e lendo dados no registro “regedit”

Page 122: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 850

���� Fecha aplicativo com a mensagem “Erro fatal”

Page 123: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 851

���� Como definir senha para tabela – paradox ?

Insira um novo formulário, um edit e 3 botões do tipo

Bitbtn.

Page 124: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 852

Clique no botão “Adiciona senha”, será aberta uma pequena tela, digite a nova senha e clique OK. Após cadastrado a senha feche o formulário corrente ( o cadastro atual ). Rode o programa, clique no botão Ativa Tabela, será aberta uma tela solicitando senha, digite 123 ( senha ), após informado senha os registros serão exibidos no formulário. Para remover senha: feche o programa ( formulário ), rode o programa ( F9 ), será mostrada a tela solicitando senha, digite 123 e Ok, a senha foi removida.

Page 125: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 853

���� Como criar um despertador agenda ?

Insira um PageControl1 ( aba Win32 ), clique no botão direito e clique em New Page para criar abas ( paletas )

Insira um DriveComboBox1 ( aba Win 3.1 )

Insira um DirectoryListBox1 ( aba Win 3.1 )

Insira um DirectoryListBox1 ( aba Win 3.1 )

Insira dois componentes DateTimePicker ( aba Win32 ). Clique no DateTimePicker

da Data e na popriedade deste digite 11/03/2001, clique no DateTimePicker

da hora e na propriedade Time digite 21:28:31

Digite Const e a linha abaixo

Insira um ListBox ( aba Standard ), insira um componente Timer ( aba Win32 ) e na propriedade do Interval defina 2000. Insira

um componente PopupMenu ( veja abaixo ).

Page 126: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 854

Digite as linhas abaixo da seção Private

Page 127: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 855

Page 128: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 856

Page 129: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 857

Como funciona o despertador ?

� Execute o programa, note o ícone do relógio na barra inferior. � Clique no botão direito para ativá-lo, após clicado no botão direito será aberta uma tela de atalho.

� Clique na opção “Configura Despertador”, será aberta a tela abaixo: A primeira paleta é para configurar o som. Paleta “Horários” configura os lembretes.

� Quando chegar a hora dos lembretes definidos soará o som programado, após clique no lembrete programa e clique no botão “Remove”, para remover este lembrete.

Despertador

Page 130: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 858

ISAPI

Page 131: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 859

���� ISAPI ���� O que é ISAPI ?

ISAPI – Internet Server Application Programing Interface, é um padrão proposto pela Microsoft, para criação de conteúdo dinâmico em servidores Web. ISAPI é uma alternativa ao uso de aplicações CGI e tem como fundamental diferença o fato de ser implementado na forma de DLLs, ao invés de executáveis. A Microsoft apresentou a proposta deste padrão ao lançar a primeira versão do seu servidor http, o IIS. A primeira versão dos IIS já suportava este padrão e a Microsoft não economizou esforços para tornar a interface ISAPI o padrão dominante do ambiente Windows.

���� ISAPI ���� Primeira aplicação ���� File – New – Other, clique em Web Server Application, será aberta a tela abaixo, clique na opção ISAPI/NSAPI Dynamic Link Library.

� Dê um clique duplo dentro do WebModule1, será

aberta a tela para editar as ações Editing

WebModule1.Actions

Page 132: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 860

� Clique em Add New ( Ins ) para adicionar uma ação.

� Clique na aba Events, clique duplo no evento OnAction.

� Dê um clique duplo em OnAction e digite a linha abaixo:

� Abra o Painel de Controle, ( estou usando Windows XP Professional ) abra Ferramentas Administrativas, dê um clique duplo em Internet Information Services, vamos criar um Alias e apontar para pasta / diretório onde esta o projeto que fizemos no Delphi.

Page 133: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 861

Abra o navegador da Internet e digite a linha http://localhost/isapi1/project1.dll

Posicione o ponteiro do mouse sobre a opção Site da Web padrão, clique no botão direito,

clique em Novo, Diretório virtual, clique para prosseguir, clique no botão Avançar, será

aberta uma tela, digite o nome do Alias isapi1, clique em Avançar, digite no nome do caminho / pasta onde se encontra o projeto que você fez no Delphi, neste exemplo o caminho é c:\aaa , clique no botão Avançar, marque os quadrinhos

abaixo...

Este é o resultado.

Arquivos que compõe este

projeto.

Page 134: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 862

���� ISAPI ���� Mostrando Hora

Para cada aplicação ISAPI precisamos definir um Alias com no Internet Information Services. ���� File – New – Other, clique em Web Server Application, será aberta a tela abaixo, clique

na opção ISAPI/NSAPI Dynamic Link Library.

� Clique na aba Events, clique duplo no evento OnAction.

� Dê um clique duplo dentro do WebModule1, será aberta a tela para

editar as ações Editing

WebModule1.Actions

Page 135: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 863

� Insira um componente PageProducer1 que está na aba Internet.

� Clique em PageProducer1, clique na aba Events e dê um clique duplo em OnHTMLTag e digite as duas linhas abaixo:

Ou

� Clique na propriedade HTMLDoc TStrings, será aberta uma pequena tela, dentro desta são colocados os códigos Html.

Page 136: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 864

� Compile o projeto, veja abaixo os arquivos gerados:

� Clique no componente WebModule1.

Clique duplo em (TWebActionItems), será aberta a tela abaixo. Clique na propriedade ProducerContent, clique no drop-down e escolha a opção PageProducer1.

Crie um alias para testar o projeto em sua máquina, após testado poderá ser enviado para um servidor na Internet. Estou usando o Inernet Information Server ( Windows XP Pro ), se você estiver usando o Windows 98 poderá usar o servidor PWS que se encontra em uma sub-pasta do cd do Windows. Abra o Painel de Controle, abra Ferramentas Administrativas, dê um clique duplo em Internet Information Services, vamos criar um Alias e apontar para pasta / diretório onde esta o projeto que fizemos no Delphi.

Page 137: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 865

Abra o navegador e digite http://localhost/hora/Projeto_Hora.dll Lembre-se, hora é o nome do alias, o arquivo projeto_hora.dll é gerado após compilar ( Ctrl F9 ).

ATENÇÃO:

Se alterar o programa e compilá-lo novamente o Delphi mostrará uma mensagem de erro abaixo...

e se tentar apagar o arquivo projeto_hora.dll o Windows não permitirá. * Something is not ok in the above example and I could not figure out the problem �

�� Posicione o ponteiro do mouse sobre a opção Site da Web padrão, clique no botão direito,

clique em Novo, Diretório virtual, clique para prosseguir, clique no botão Avançar, será aberta uma tela, digite o nome do Alias Hora, clique em Avançar, digite no nome do caminho / pasta onde

se encontra o projeto que você fez no Delphi, neste exemplo o caminho é c:\Isapi_aula10 , clique no botão Avançar, marque os quadrinhos

abaixo...

Page 138: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 866

���� ISAPI ���� Listando registros do Cadastro de Clientes

Projeto que lista todos os Clientes cadastrados na tabela ( paradox ). ���� Crie a tabela abaixo.

���� File – New – Other, clique em Web Server Application, será aberta a tela abaixo, clique na opção ISAPI/NSAPI Dynamic Link Library.

Page 139: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 867

� Clique na aba Events, clique duplo no evento OnAction.

� Insira dois componentes, PageProducer1 ( aba Internet ) e um Table ( aba BDE ).

� Clique no WebModule1 e defina a propriedade OnCreate e OnDestroy.

� Dê um clique duplo dentro do WebModule1, será aberta a tela para

editar as ações Editing

WebModule1.Actions

Clique no componente Table e defina as propriedades: DababaseName:

C:\Isapi_Dados\Dados ( caminho onde esta a tabela de dados ) , TableName: Clientes.db,

posicione o ponteiro do mouse sobre o componente Table, clique no botão direito em Fields Editor, será aberto uma pequena tela,

clique no botão direito e clique em Add Fields e Ok para adicionar todos os campos da tabela.

Propriedade Active = True

Page 140: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 868

� Clique no componente PageProducer1, clique duplo no evento OnHTMLTag e digite o código abaixo:

� Abra o Internet Information Server ( ou IIS ) com um clique duplo, posicione o ponteiro do mouse sobre a opção Site da Web padrão, clique no botão direito, clique em Novo, Diretório virtual, clique para prosseguir, clique no botão Avançar, será aberta uma tela, digite o nome do Alias lista1, clique em Avançar, digite no nome do caminho / pasta onde se encontra o projeto que você fez no Delphi, neste exemplo o caminho é c:\Isapi_dados , clique no botão Avançar, marque os quadrinhos abaixo...

Page 141: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 869

Abra o navegador e digite a linha http://localhost/lista1/projeto_lista_clientes3.dll

O relatório da página anterior está com uma distribuição horrível, para resolver esta situação usaremos outro componente da aba Internet chamado de DataSetTableProducer1. Dê um clique duplo sobre DataSetTableProducer1 será aberta a tela abaixo:

Clique nas várias propriedades da tabela e defina as propriedades de

acordo com seu gosto.

Antes de alterar as propriedades da coluna

clique no campo desejado, neste caso Clie_Codigo. Alterei a cor de fundo do primeiro campo, e cor de toda a coluna, o nome da coluna, alinhamento para

direita da coluna.

Page 142: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 870

Selecione todos os campos e alterei as cores de uma única vez.

� Para listar os registros precisamos mudar a propriedade ProducerContent para DataSetTableProducer1. Dê um clique duplo em WebModule1 para abrir a tela de ações, veja logo abaixo:

Page 143: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 871

Veja como ficou o resultado ☺

���� Como ver meu IP ?

Outra maneira ...

Após clicar no botão será mostrado no Label1 o IP

Page 144: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 872

Page 145: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 873

Page 146: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 874

���� Como ver IP local e do Servidor ?

Page 147: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 875

���� Como pegar IP de um determinado servidor ?

-

Insira dois Edits, um Bitbtn, uma Satus Bar (

aba Win32 ), um NMFinger ( aba FastNet )

Page 148: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 876

���� Como mostrar nome do Host ?

Page 149: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 877

���� Como criar navegador de páginas ?

Page 150: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 878

Page 151: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 879

Page 152: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 880

���� Como criar rastreador de portas ( Port Scanner ) ?

Page 153: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 881

Page 154: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 882

���� Como criar um simples programa “Chat” ?

Page 155: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 883

Page 156: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 884

Page 157: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 885

���� Como criar um Cliente e Servidor ? Este exemplo mostra como enviar mensagens para um outro computador na Internet ou rede local, basta saber o IP da segunda máquina ( servidor ), também, o servidor deverá estar rodando na segunda máquina. ☺

Cliente

Insira um RichEdit e nomeia a propriedade

Name para RichEdit_Usuario

Insira um Splitter ( aba Additional )

Clique no componente

ClientSocket1 e na propriedade

Port digite 9923

Este componente esta na aba

Internet

Insira um Memo e nomeie a propriedade

Name para Memo_Resultado

Insira uma StatusBar, dê um clique duplo sobre esta, clique em Add new e na

propriedade Text digite Sem conexão...

Page 158: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 886

Servidor

Este é o Servidor, está na segunda página. Execute o programa Servidor para abrir a

porta 9923

A propriedade Port deste componente devet também ser 9923 para que haja comunicação

entre ambos. Este componente esta na

aba Internet

Este é um componente Memo e logo abaixo uma StatusBar.

Page 159: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 887

Page 160: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 888

���� Como criar um programa de email ( 1 ) ?

Após digitado a mensagem esta será

enviada para o Outlook Express e para enviar basta

clicar no botão Enviar

Page 161: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 889

���� Como criar um programa de email ( 2 ) ?

Page 162: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 890

Conecte na internet... Execute o programa acima, preencha os campos necessários e clique “enviar” ☺

Page 163: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 891

Page 164: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 892

���� Programa de email completo

Neste exemplo você poderá enviar para vários destinatários, várias cópias, cópias ocultas e anexar arquivos.

Insira um ListView

( aba Win32 )

Insira um ListBox

( aba Standard )

Insira dois componentes NMSMTP ( aba FastNet )

Insira um componente OpenDialog ( aba Dialogs )

Insira um RadioGroup (aba Standard )

Page 165: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 893

Page 166: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 894

Page 167: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 895

Page 168: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 896

Page 169: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 897

���� Como fazer email bomba ? ( 1 )

Page 170: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 898

Page 171: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 899

Page 172: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 900

���� Como fazer email bomba ? ( 2 )

Neste exemplo usaremos arquivos de números no format “.gif” e animação ☺

Insira um componente Animate ( aba Win32 )

Insira 4 componentes TImage ( aba Additional )

Insira um componente ProgressBar

Insira um NMSMTP1

( aba FastNet )

Page 173: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 901

Você precisará 4 arquivos de imagens numéricas, estes

arquivos possuem a extensão .bmp

Quando o email está sendo enviado o

componente Animate mostrará a animação.

Digite estas linhas.

Quando emails estão sendo enviados a

pastinha será animada.

Page 174: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 902

Page 175: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 903

Page 176: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 904

���� Abrindo link no evento onclick No início do programa na cláusula Private digite:

���� Digite a procedure na cláusula Private:

���� Digite procedure Linkar:

No evento OnClick digite a linha ao lado.

Insira um Label, clique na aba Events, clique

duplo no evento OnClick e digite linha

abaixo.

Page 177: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 905

���� Programa de comunicação interna

Já vimos um programa anteriormente similar, porém este permitirá abrir e fechar o cd-rom da outra máquina, ocultar e mostrar a barra de ferramentas, ocultar e mostrar os ícones da área de trabalho etc.

Inicio doprograma fonte:

Defina a propriedade Port para 35000 para os dois compoentes Cliente e

Servidor.

Insira um componente Memo1

Insira um componente MainMenu

Insira um componente

ImageList ( aba Additional )

Page 178: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 906

Page 179: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 907

Page 180: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 908

Page 181: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 909

Page 182: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 910

Page 183: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 911

Page 184: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 912

Page 185: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 913

Testando o programa:

Page 186: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 914

No menu, clique na opção “ser servidor”

Clique no menu Opções, clique em “conectar ao servidor”, será aberta uma caixa de diálogo, digite o ip local padrão 127.0.0.1 e ok

Page 187: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 915

���� Como gerar aquivo .html com todos registros ?

O exemplo a seguir mostra como gerar um arquivo .html com todos os registros de um tabela.

Page 188: 6 delphi 7 729 916 - jurandir1967.co.uk

Delphi 7 - by Jurandir – Timbó – SC - Brasil - Sharing knowledge 916

Arquivo gerado:

���� Como obter código fonte de um site ? Insira um componente Memo1 e um NMHTTP.

Be Always Thankful

Everything comes and goes

Este componente está na aba FastNet.

Retornará o Memo o código html do site www.tpa.com.br