Lazarus Tutorial/pt

From Lazarus wiki
Revision as of 13:29, 8 December 2021 by Kupferstecher (talk | contribs) (Moved main menu section to page Main menu/pt and inserted link)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) italiano (it) 日本語 (ja) македонски (mk) Nederlands (nl) português (pt) русский (ru) slovenčina (sk) shqip (sq) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

Este é o início de um Tutorial Lazarus. Por favor, sinta-se livre para melhorá-lo .

Visão geral

Lazarus é uma ferramenta de desenvolvimento de código livre e aberto para o compilador Free Pascal, que também é livre e open source. O Ambiente de Desenvolvimento Integrado Lazarus (IDE, consulte Screenshots) é um ambiente de programação para criar aplicações gráficas e para consoles independentes.

Lazarus atualmente roda em Linux, Mac OS X e Win32 e fornece um editor de código e ambiente de criação de forma visual personalizada juntamente com um gerenciador de pacotes, depurador e integração completa GUI com o compilador Free Pascal.

Começando

Baixe, instale install e ative o Lazarus que virá também com o compilador FreePascal.

Note-icon.png

Nota: No Linux Ubuntu, o comando para iniciar Lazarus a partir da console é "startlazarus". Se você instalou-lo de um pacote Debian, você deve ter uma entrada de menu Lazarus em Menu/ Desenvolvimento. (Edição: No Debian e Ubuntu o binário principal e o pacote foi renomeado para "Lazarus-ide" porque o pacote "tct" já vem com um utilitário chamado "lazarus").


Começando - O seu primeiro programa feito no Lazarus !

Muitas janelas vão aparecer no desktop: o menu princípal no topo, o inspetor de objetos(object inspector) à esquerda, o editor de código ocupando a maior parte do desktop, e prontamente criada a janela do Form1 sobre o editor de código.

A janela do topo com menu, abaixo do menu, temos uma linha de abas. Se a aba "Standard" não estiver selecionada, selecine-a clicando com o "mouse" sobre ela. Então encontre o ícone do botão(um retângulo com a palavra:Ok dentro) e aperte nele com o "mouse". Em seguida clique na janela Form1, em algum lugar a esquerda do meio da janela. Um retângulo sombreado com as palavras "Button1" irá aparecer. Aperte novamente sobre o ícone do botão e de novo na janela Form1 em algum lugar à direita do centro e irá aparecer um outro botão com as palavras "Button2".

Agora aperte o "Button1" para selecioná-lo. O inspetor de objeto(Object Inspector) irá exibir as propriedades do objeto "Button1". Próximo ao topo temos a propriedade chamada de "Caption", com o valor exibido "Button1". Clique sobre esta caixa, e mude de "Button1" para "Press". Se você apertar a tecla "ENTER" ou em outra caixa, você irá ver o texto do primeiro botão da janela Form1 mudar para "Press". Em seguida clique na aba de Eventos(Events) do inspetor de objeto(object inspector), para ver vários eventos que podem ser associados com o botão. Este incluem: OnEnter, OnExit, OnClick, ... Selecione a caixa à direita do OnClick: uma pequena caixa com três pontos (... eliptícos) aparece. Quando você clica sobre ela, você é automaticamente levado para o editor de código e seu cursor fica posicionado na seguinte parte:

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   {agora escreva:}    Button1.caption := 'Press again';
   {o editor sempre termina o procedimento com}
 end;

Pressione F12 para a janela Form1 aparecer sobre o editor de código.

Agora pressione sobre o Button2 para editar as suas propriedades no inspetor de objeto(object inspector). Mude o valor da propriedade "Caption" de "Button2" para "Exit". Agora selecione a aba de eventos(Events) no inspetor de objeto(object inspector) e clique na caixa do evento OnClick. Aperte sobre o botão com três pontos, e você irá para a janela de edição de código no meio de outro procedimento:

 procedure TForm1.Button2Click(Sender: TObject);
 begin
 {agora escreva:}   Close;
 {o editor sempre completa o procedimento com} 
 end;

Em seguida pressione F12 para a janela Form1 aparecer novamente. Agora você está pronto para tentar compilar. Na janela do topo no menu selecione "Run" e aparecerá em seguida um submenu e aperte a opção "Run". Outra alternativa é apertar a tecla F9. Estes irão primeiro compilar o programa e então(se tudo estiver certo) ligar(link) e executá-lo.

Durante a compilação a janela de mensagens(Messages) terá escrito diversos textos referente a esta operação(compilação) e em seguida irá reaparecer a janela Form1 sem a grid que a janela princípal de sua aplicação, e está aguardando que você pressione um dos botões ou faça algo que interaja com a aplicação.

Tente agora clicar sobre o botão escrito "Press". Você irá reparar que ele mudará para "Press again". E se você pressionar novamente não mudará mais o texto escrito do botão.

Agora pressione o botão com "Exit" dentro dele. A janela irá fechar e sairá do programa. A janela Form1 original irá reaparecer com grids pronta para edição.

Você deve salvar o seu trabalho agora(e freqüentemente) selecionando Project > Save As > your_selected_file_name.pas na janela do topo no menu.

Segunda Sessão

Reabra seu projeto salvo. Na janela Form1 pressione sobre o botão escrito "Press"(Button1) para selecioná-lo. Selecione a aba Eventos(Events) no inspetor de objeto(object inspector), pressione na caixa à direita de OnClick, clique sobre os ... eliptícos, para ir de volta ao ponto apropriado do editor de código.

Edite seu código para o que está escrito à seguir:

 procedure TForm1.Button1Click(Sender: TObject);
{Faz uso da propriedade Tag , indicando valores 0 ou 1}
 begin
   if Button1.tag =0 then
   begin
     Button1.caption := 'Press again';
     Button1.tag := 1
   end else
   begin
     Button1.caption := 'Press';
     Button1.tag := 0
   end
 end;

Salve seu trabalho, recompile e execute. O botão à esquerda irá agora variar entre duas alternativas de mensagem a cada clique.

O resto é com você!

Se você prefere escrever em Console- ou baseado em texto programas pascal (por exemplo se você está seguindo um curso básico de programação Pascal, ou você precisa escrever programas para prompt de comando ou para programação de sistema), você pode ainda usar o lazarus para editar, compilar e executar seus programas. Isto dá uma idéia do ambiente Pascal para desenvolvimento. Veja Console Mode Pascal.

O Editor

Quando você ativa o Lazarus pela primeira vez, uma série de janelas flutuantes separadas irão aparecer em seu desktop(ambiente gráfico).

A primeira, certamente funcionando ao longo do alto do desktop, é chamado Lazarus Editor vXXXXXX - project1 (que será subsequentemente modificado para refletir a mudança no nome de seu corrente projeto aberto). Esta é a princípal janela de controle de seu projeto, e contém o Menu Princípal, a Barra de Botões e a Paleta de Componentes.

Lazmain.jpg

Ainda na Janela abaixo da barra de título temos o Menu Princípal composto das seguintes entradas usuais: File(Arquivo), Edit(Editar), Search(Localizar) e View(Vizualizar), e mais outras específicas para o Lazarus. E Abaixo desta à esquerda temos a Barra de Botões(atalhos para diversos itens do menu princípal) e à direita a Paleta de Componentes.

Sob a janela do Editor do Lazarus irá aparecer a janela do inspetor de objeto(object inspector) à esquerda, e à direita editor de código do Lazarus. Aqui pode ter outra janela menor, indicada com Form1, sobre a janela do editor de código. Se esta janela não é visível imediatamente, você pode fazê-la aparecer pressionando a tecla F12, que alterna entre o editor do código fonte e o editor da janela(formulário). Nesta janela de formulário, em que se encontra agora, você construirá a interface gráfica para sua aplicação. Esta janela somente funciona se você estiver editando um formulário. A operação do inspetor de objeto é discutida mais detalhadamente abaixo quando a paleta de componentes for descrita.

Quando você inicia um novo projeto (ou quando você ativa o Lazarus) por padrão irá ser construído um formulário(Form), que consiste de uma caixa preenchida com pontos(grid) para ajudá-lo a posicionar vários componentes no formulário, e uma barra ao longo do topo que contém os usuais botões de janela: Minimizar, Maximizar, e Fechar. Se você clicar com seu mouse(ponteiro) dentro desta caixa, você verá as propriedades deste formulário no inspetor de objeto no lado esquerdo do desktop; caso não o esteja vendo, pressione a tecla F11 para visualizá-lo.

Outras janela que podem ser visíveis durante seu trabalho: O Inspetor do Projeto(Project Inspector), que contém detalhadamente os arquivos incluídos no seu projeto; A janela Mensagens(Messages), que exibe as mensagens do compilador, erros ou relatórios de progresso em seu projeto; se o Lazarus foi ativado em uma janela terminal, a janela terminal permanece visível e os detalhes das mensagens de compilação são colocados nela, na janela terminal.

O Menu Principal

For a detailed description of every menu item which is accessible from the Lazarus IDE Main Menu, please refer to the Main menu/pt page.

A Barra de Botões

Uma pequena barra de ferramentas a esquerda da janela principal do editor, logo abaixo do menu principal e a esquerda da paleta de componentes, contem um conjunto de botões que repetem as opções que são frequentemente mais usadas no menu principal:

New Unit, Open (com um drop down que mostra os arquivos recentes), Save, Save as, New Form, Toggle Form/Unit ( por exemplo, mostra qualquer formulário o código fonte da Unit), View Units, View Forms, Run (Compilar e executar), pause, Step Into, Step over (os ultimos são funções do depurador).

A Paleta de Componentes

Uma barra de ferramentas organizada em abas com um grande número de ícones comumente usados para construir forms. Cada aba tem um conjunto diferente de ícones, representando um grupo funcional de componentes. O ícone mais à esquerda em cada aba é uma seta inclinada para a esquerda chamada Selection Tool. Se você parar o mouse sobre qualquer um dos ícones, sem clicar nele, o nome do componente será mostrado em uma pequena janela. Observe que cada título inicia com 'T', que significa 'Type', ou mais precisamente 'Class' do componente. Quando você seleciona um componente para inclusão em um form, a Class é adicionada à seção type da interface da unit (geralmente como parte de TForm1). Qualquer método que você projeta para ser usado pelo form ou componentes (isto é, procedures ou functions) serão colocados na implementation da unidade.

A seguir estão relacionados os componentes.

ABAS(os nomes são autoexplicativos):

  • Standard

Standard.jpg

Componentes usados frequentemente: TMainMenu, TPopUpMenu, TButton, TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TRadioGroup, TCheckGroup, TPanel, TActionList.

  • Additional

Additional.jpg

Componentes mais usados: TBitBtn, TSpeedButton, TStaticText, TImage, TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, TTrayIcon, TMaskEdit, TCheckListBox, TScrollBox, TApplicationProperties, TStringGrid, TDrawGrid, TPairSplitter, TColorBox, TColorListBox.

  • Common Controls

Common.jpg

Componentes mais usados: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TTabControl, THeaderControl, TImageList, TPopupNotifier.

  • Dialogs

Dialogs.jpg

Componentes mais usados: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TFindDialog, TReplaceDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog, TPrinterSetupDialog, TPrintDialog, TPageSetupDialog.

Muitos procedimentos e funções de Dialogs não aparecem na paleta, mas são facilmente chamados a partir do seu código fonte. Para ver vários bons exemplos de uso dos componentes veja o subdiretório examples no diretório de instalação do Lazarus. Muitos dos exemplos mostram como usar os componentes diretamente sem usar a paleta de componentes ou usando um arquivo de definição de form separado; todos os componentes são bem explicados no programa principal. Outros exemplos fazem uso do IDE.

Para compilar e executar os exemplos tenha certeza que tem direitos read/write/execute sobre os diretórios e arquivos ou copie os arquivos para outro diretório onde você tenha esses direitos.

Tente executar o programa testall para ver um menu de componentes disponíveis junto com pequenos forms de exemplo para muitos deles; então dê uma boa olhada no código para ver como eles funcionam.

  • Misc

Misc.jpg

Componentes: TColorButton, TSpinEdit, TFloatSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox, TFilterComboBox, TXMLPropStorage, TIniPropStorage, TBarChart, TButtonPanel, TShellTreeView, TShellListView, TIDEDialogLayoutStorage.

  • Data Controls

Datacontrols.jpg

Componentes replicados das abas Standard e Additionl, mas aplicados a bancos de dados. Componentes mais comuns: TDBNavigator, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox, TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TDBGrid.

  • Data Access

Dataaccess.jpg

Componentes: TDatasource, TSdfDataSet, TFixedFormatDataSet, TDbf, TMemDataset.

  • System

System.jpg

Componentes: TTimer, TIdleTimer, TLazComponentQueue, THtmlHelpDatabase, THtmlBrowserHelpViewer, TProcessUTF8, TAsyncProcess, TProcess, TSimpleIPCClient, TSimpleIPCServer, TXMLConfig, TEventLog.

  • SynEdit

Synedit.jpg

Grupo de componentes para auxiliar o interfaceamento com outras linguagens e ferramentas de software. É um control de edição multilinhas para Delphi, C++ Builder e Kylix. Suporta Syntax Highlighting e complementação de código, e inclui exportadores para HTML, rtf e tex. É um controle totalmente VCL/CLX, não dependente da API do Windows e não necessita de bibliotecas de tempo de execução, o que torna o SynEdit um componente multiplataforma. Compatível com FreePascal, SynEdit é o editor do IDE Lazarus.

Componentes: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynFreePascalSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynPythonSyn, TSynVBSyn, TSynAnySyn, TSynMultiSyn.

Como usar a Paleta?

Para usar a Paleta deve haver um form aberto no editor. Clique no ícone do componente na aba apropriada e então clique no form na posição aproximada onde você quer que o componente apareça. Quando o componente desejado aparecer, você pode selecioná-lo clicando nele com o mouse, e arrastá-lo para o local exato do form que você preferir e ajustar seu tamanho. Podem ser feitos ajustes na aparência do componente alterando a figura do objeto no form ou alterando as propriedades correspondentes do componente no Inspetor de Objetos.

Se você instalar componentes adicionais, aqueles que você mesmo criar ou aqueles que vêem em um pacote de outra fonte, abas extras com ícones relevantes irão aparecer na Paleta de Componentes. Esses componentes podem ser selecionados e usados em seus forms da mesma forma que os componentes padrão.

Como usar Controles Standard, Common e Extended

As units StdCtrls, ComCtrls e ExtCtrls contém definições e descrições de muitos dos controles mais comumente usados para construir forms e outros Objetos nas aplicações Lazarus.

Muitos controles finais usados nas aplicações, tais como TButton, TMemo, TScrollBar, etc. tem uma classe ancestral correspondente tal como CustomButton, TCustomMemo ou TCustomScrollBar. Várias das propriedades e métodos relevantes do controle final são definidos e explicados mais detalhadamente na classe TCustomXXX, e são herdados pelo controle final.

Se você coloca um componente no form você não precisa adicionar código explicitamente para criá-lo. O componente é automaticamente criado pelo IDE junto com o form, e destruido junto com ele.

Se você criar um componente através de código lembre de destruí-lo quando não precisar mais dele.

Se você colocar um componente no Inspetor de Objetos, você pode observar as propriedades se modificando enquanto move o componente.

Por exemplo, se você um botão (TButton) no form, clique nele para selecioná-lo, e então movimente-o pelo form com o mouse. Você pode observar as propriedades Top e Left mudando no Inspetor de Objetos para refletir a nova posição. Se você usar as barras de redimensionamento dos objetos, você poderá observar as propriedades Height e Width se modificando também.

Como usar Controles do menu

Sugestões para a criação de menus para os seus formulários

O Depurador

para fazer

Os arquivos do Lazarus

   (Obrigado a Kevin Whitefoot.)
   (Adições de Giuseppe Ridinò, Usuário:Kirkpatc y Tom Lisjac)

Ao Salvar, os seguintes arquivos são gravados:


  xxx.pas e yyy.lpr

(Voce salva mais arquivos, mas estes são os únicos que tem que colocar um nome). O arquivo do projeto (*.lpr) e a unit (*.pas) não devem ter o mesmo nome porque o Lazarus renomeará a unit (dentro do código fonte) com o mesmo nome da unit e o programa com o mesmo nome do arquivo do projeto (é necessário fazer isto, senão, o compilador não será capaz de encontrar a unit mais tarde, quando se referir a ela no arquivo do projeto). Claro, para ser coerente, troque sempre unit1 por xxx.

Assim que se Salva um Projeto chamado again, se tentar salvar again.pas e again.lpr obterá erros, porque os nomes da unidade e do programa são iguais, onde se produz um erro de duplicação de nome.

Assim que eu terminei o que foi descrito acima, obtive:

e:/lazarus/kj/lazhello:

total 4740  free 76500
-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 again.exe
-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 again.lpi
-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 again.lpr
-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 againu.lfm
-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 againu.lrs
-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 againu.pas
-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 againu.ppu
-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat

Observe que há mais arquivos do que pensei que estava salvando.

Continuando, uma breve nota sobre cada arquivo:

again.exe: O programa principal (binário executavel). Em sistema Win32 é acrescido a extensão "exe". No Linux, não tem nenhuma. Este arquivo será enorme no Linux devido a inclusão de simbolos de depuração. Execute o utilitário 'strip' para remover os simbolos e diminuir bastante o tamanho do executável.

again.lpi: Este é o arquivo principal do projeto Lazarus (Lazarus Project Information); o arquivo principal de uma aplicação equivalente em Delphi será .dpr.. É armazenado no formato XML.

again.lpr: Este é o arquivo fonte do programa principal. Apesar da extensão específica do Lazarus, na realidade é um arquivo fonte totalmente normal de Pascal. Tem uma clausula Uses que permite ao compilador encontrar as Units que necessita. Note que na declaração do programa não temos que nomear o programa com o mesmo nome do arquivo.

againu.lfm: Aqui é onde o Lazarus armazena o Design do formulário. O Lazarus utilizará este arquivo para gerar um arquivo fonte que esta incluido na seção do inicio da Unit againu.pas. Os arquivos do Delphi dfm podem ser convertidos no formato lfm mediante a IDE do Lazarus nome menu Tools->Convert DFM file to LFM utility.

again.lrs: Este é o arquivo fonte gerado. Note que não é um arquivo fonte de Windows.

againu.pas: A Unit que contém o código do formulário.

again.ppu: A Unit compilada

ppas.bat: Este é um simples script que linka o programa para criar o executavel. Se a compilação tiver sucesso, este arquivo é removido pelo compilador.

Contribuições e Mudanças

Este documento é uma tradução do original em inglês.