Dúvidas e comentários

A seguir você poderá consultar algumas dúvidas e perguntas, feitas por outros leitores, acerca do que foi tratado nesta página.


Não entendí a estrutura de arquivos do Delphi. Tem arquivos pas, dfm, etc. Afinal, qual é o programa que eu criei?

Quando criamos um programa no Delphi, na verdade estamos nos referindo a ele como um projeto. Daí que o próprio Delphi se encarrega de gerar os arquivos secundários deste nosso projeto.

Por exemplo, em nosso jogo da ave, se não for alterado nenhum nome (apenas usando os nomes default), o Delphi irá gerar uma lista de arquivos como se vê ao lado.

Os arquivos nomeados como Project são informações que o Delphi usa na montagem do programa e os arquivos nomeados como Unit representam a programação propriamente dita. O Unit1.pas contém tudo o que foi digitado da janela de digitação (as procedures, eventos, etc). Já o Unit1.dfm quarda as informações referentes ao formuário, como a posição dos componentes, o valor das propriedades, etc.

Para salvar um projeto, basta clicar no botão com os disquetes, ou ir no menu File, SaveProjectAs... e fornecer um nome ou usar o nome default. Em ambos os casos estaremos gravando todos os arquivos pertencentes ao projeto.

O disquete simples equivale a opção Save, ou SaveAs..., do menu File, e responde pela gravação exclusiva do arquivo Unit1.pas.

Após a compilação do projeto, pressionando o botão verde ou no menu Run, Run (ou ainda pressionando F9), o Delphi irá produzir mais dois arquivos.

O arquivo Project1.exe é finalmente o nosso executável do jogo. Para rodar o jogo, ou para distribuí-lo para os amigos, ou ainda na internet, basta fornecer este arquivo. Os outros não são necessários. Para mudar o nome do jogo, de Project1.exe para, por exemplo, Ave.exe, usamos a opção do menu File, SaveProjectAs... e definimos um novo nome para o projeto.


Por que usar imagens no formato BMP e não JPG, que produz arquivos menores?

O formato BMP ou bitmap é o formato nativo do Windows. Na verdade é o único formato gráfico que os componentes TImage "entendem" e portanto é o que devemos usar, pelo menos neste primeiro momento.

Ainda que o JPG possa ser carregado em um componente TImage, ele não pode ser manipulado diretamente, como uma matriz de pixels, enquanto estiver neste formato. Deverá ser convertido para BMP e portanto teremos etapas intermediárias e mais processamento.

No caso de imagens complexas e/ou fotográficas, faz sentido utilizar o jpeg e não o bitmap, mas para pequenas imagens podemos trabalhar diretamente no padrão nativo.


Onde ficará a imagem da ave, quando o executável for criado? Não será preciso ter o arquivo "ave.bmp" junto com o project1.exe?

Não necessariamente. Quando criamos o componente TImage Ave e nele carregamos o arquivo ave.bmp, os bits e bytes correspondentes a esta imagem estarão incorporados ao project1.exe (daí ele ter um tamanho bem maior do que o necessário para fazer o que estamos fazendo até aqui).

Este é um método muito prático de se trabalhar (principalmente com imagens pequenas), pois elas ficam todas concentradas num único arquivo. Obviamente que se a quantidade de imagens se tornar grande, usaremos a alternativa de carregá-las para os componentes, na inicialização do nosso jogo. Mas aí será sempre necessário manter esses arquivos gráficos junto (ou perto) do executável.


Como coloco a programação que foi mostrada na aula, para fazer a ave voar, no evento OnTimer?

Primeiro clique na alça System, clique no relógio (componente TTimer) e clique no formulário. Haverá um relógio sempre aparecendo no Form1, mas ele não será visto na execução do jogo.

A seguir clique a alça Events, do Object Inspector e dê um duplo clique no box em branco. Irá aparecer a palavra Timer1Timer e na janela de programação será incluido o cabeçalho da procedure. A seguir só é necessário digitar o código entre as definições begin e end. O resultado final deverá ser como o que está logo abaixo.

   procedure TForm1.Timer1Timer(Sender: TObject);
   begin
     Ave.Left:= Ave.Left + 1;
   end;

online