Difference between revisions of "Lazarus Tutorial/pt"

From Lazarus wiki
Jump to navigationJump to search
(Moved main menu section to page Main menu/pt and inserted link)
 
(41 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
{{Lazarus Tutorial}}
 
{{Lazarus Tutorial}}
  
==Prefácio==
+
'' Este é o início de um Tutorial Lazarus. Por favor, sinta-se livre para melhorá-lo . ''
Lazarus é um ambiente de desenvolvimento gratuito e de código aberto para o compilador FreePascal (object pascal), que é também gratuito e de código fonte aberto. O ambiente Lazarus IDE ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg screenshot]) é estável e rico em programação para criação de aplicações gráficas e de console. Ele atualmente funciona nos sistemas operacionais: Linux, FreeBSD e Win32 e provê um customizável editor de código e ambiente de criação visual de formulários acompanhado com um gerenciador de pacotes, debugador e completa integração da GUI com o compilador FreePascal. Infelizmente ainda não foi feita toda a tradução da IDE para o português por isso estou utilizando os itens em inglês (que é o padrão).
+
== 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 [http://wiki.lazarus.freepascal.org/Screenshots 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 [[Installing Lazarus|install]] e ative o Lazarus que virá também com o compilador FreePascal.
 +
 
 +
{{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 !===
  
==Começando - O seu primeiro programa feito no Lazarus !==
 
Baixe, instale ([[Installing Lazarus]]) e ative o Lazarus que virá também com o compilador FreePascal.
 
  
 
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.
 
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.
Line 39: Line 49:
 
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.
 
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==
+
===Segunda Sessão===
 
Reabra seu projeto salvo.  
 
Reabra seu projeto salvo.  
 
Na janela Form1 pressione sobre o botão escrito "Press"(Button1) para selecioná-lo.
 
Na janela Form1 pressione sobre o botão escrito "Press"(Button1) para selecioná-lo.
Line 75: Line 85:
 
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.
 
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 '''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspetor de objeto]'''(object inspector) à esquerda, e à direita '''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg editor de código do Lazarus]'''. Aqui pode ter outra janela menor, indicada com '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg 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 descrito.
+
Sob a janela do Editor do Lazarus irá aparecer a janela do '''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspetor de objeto]'''(object inspector) à esquerda, e à direita '''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg editor de código do Lazarus]'''. Aqui pode ter outra janela menor, indicada com '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg 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
 +
'''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg 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'''
 +
 
 +
[[Image:Standard.jpg]]
 +
 
 +
''Componentes usados frequentemente'': TMainMenu, TPopUpMenu, TButton, TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TRadioGroup, TCheckGroup, TPanel, TActionList.
 +
 
 +
* '''Additional'''
 +
 
 +
[[Image: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'''
 +
 
 +
[[Image:Common.jpg]]
 +
 
 +
''Componentes mais usados'': TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TTabControl, THeaderControl, TImageList, TPopupNotifier.
 +
 
 +
* '''Dialogs'''
 +
 
 +
[[Image: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'''
 +
 
 +
[[Image:Misc.jpg]]
 +
 
 +
''Componentes'': TColorButton, TSpinEdit, TFloatSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox, TFilterComboBox, TXMLPropStorage, TIniPropStorage, TBarChart, TButtonPanel, TShellTreeView, TShellListView, TIDEDialogLayoutStorage.
 +
 
 +
* '''Data Controls'''
 +
 
 +
[[Image: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'''
 +
 
 +
[[Image:Dataaccess.jpg]]
 +
 
 +
''Componentes'': TDatasource, TSdfDataSet, TFixedFormatDataSet, TDbf, TMemDataset.
  
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ê cliquar com seu mouse(ponteiro) dentro desta caixa, você irá ver as propriedade deste formulário no inspetor de objeto no lado esquerdo do desktop, caso não o esteja vendo pressione a tecla F11 para vizualiza-lo.
+
* '''System'''
  
Outras janela que podem vir visíveis durante seu trabalho: O
+
[[Image:System.jpg]]
'''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg 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 Princípal===
+
''Componentes'': TTimer, TIdleTimer, TLazComponentQueue, THtmlHelpDatabase, THtmlBrowserHelpViewer, TProcessUTF8, TAsyncProcess, TProcess, TSimpleIPCClient, TSimpleIPCServer, TXMLConfig, TEventLog.
O menu princípal contém as seguintes entradas em inglês:
 
<u>F</u>ile  <u>E</u>dit  <u>S</u>earch  <u>V</u>iew  <u>P</u>roject  <u>R</u>un  <u>C</u>omponents  <u>T</u>ools  E<u>n</u>vironment  <u>W</u>indows  <u>H</u>elp
 
  
Como de costume, as opções podem ser selecionadas colocando o cursor do mouse(ponteiro) sobre a opção do menu e estalando(clicando) o botão esquerdo do mouse(ponteiro), ou datilografando o Alt-F no teclado (fornecido a janela do menu principal tem foco: se não tiver, aperte Tab repetidamente para dar um ciclo no foco através das várias janelas até que a janela desejada tiver sua barra do título destacada na cor).
+
* '''SynEdit'''
  
====O sub-menu Arquivo(File) ====
+
[[Image:Synedit.jpg]]
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/FileMenuSnapshot.png </div>
 
* '''New Unit''': Cria um arquivo para nova unidade (Pascal Source).
 
* '''New Form''': Cria um novo formulário: ambos uma janela visual na tela e um arquivo fonte Pascal associado.
 
* '''New ...''': Abre uma caixa ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg screenshot]) com uma variedade de novos tipos de documentos para criar.
 
* '''Open''': Abre uma caixa de diálogo que habilita você a navegar pelos arquivos e escolher um existente arquivo para abrir.
 
* '''Revert''': Abandona mudanças durante a edição e restaura o arquivo para seu estado original.
 
* '''Save''': Salva o arquivo corrente(em uso), utilizando seu nome original de arquivo. Se este não tiver um nome, o sistema irá perguntar pelo nome que você deseja salvar(como no Save As).
 
* '''Save As''': Permite que você escolha um diretório e um nome de arquivo para salvar o arquivo atual.
 
* '''Close''': Fecha o arquivo atual, perguntando se salva todas as mudanças do editor..
 
* '''Close all editor files''': Fecha todos os arquivos abertos no editor. E oferece para salvar mudanças.
 
* '''Clean directory''': Disponibiliza um diálogo com uma série de filtros editáveis para remoção de arquivos do corrente diretório.  Muito utilizado para remoção de arquivos .bak e  restir que formavam os projetos Delphi.
 
* '''Quit''': Sai do ambiente Lazarus, depois de perguntar se salva todos os arquivos editados.
 
<div style="clear:both;"></div>
 
  
====O sub-menu Editar(Edit) ====
+
Grupo de componentes para auxiliar o interfaceamento com outras linguagens e ferramentas de software.
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/EditMenuSnapshot.png </div>
+
É 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.
* '''Undo''': Desfaz a última ação de edição.
 
* '''Redo''': Refaz a última ação de edição que foi revertida pelo Undo.
 
* '''Cut''': Remove o texto ou item selecionado e o coloca na área de transferência.
 
* '''Copy''': Faz uma cópia do texto selecionado, deixando o original no lugar, e coloca uma cópia na área de transferência.
 
* '''Paste''': Coloca o conteúdo da área de transferência na posição do cursor. Se texto tem sido selecionado na posição do cursor, o conteúdo da área de transferência irá substituir o texto selecionado.
 
* '''Indent selection''': indenta(adiciona um espaço especificado) antes do texto selecionado.
 
* '''Unindent selection''': desindenta(remove o espaço especificado) antes do texto selecionado.
 
* '''Enclose selection''': disponibiliza um menu flutuante com opções para incluir o texto selecionado dentro de uma das opções(begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).
 
* '''Uppercase selection''': passa todo o texto selecionado para caixa alta, letras maiúsculas.
 
* '''Lowercase selection''': passa todo o texto selecionado para caixa baixa, letras minúsculas.
 
* '''Tabs to spaces in selection''': Converte as tabulações(TAB) no testo selecionado em número de espaços especificados no Environment -> Editor options -> General -> Tab widths.  O número de espaços não tem quantidade fixa, mas é o número necessário para preencher a largura restante da tabulação.
 
* '''Break lines in selection''': Se alguma linha no texto selecionado for maior que 80 caracteres ou que o número especificado em Environment -> Editor options -> Display -> Right Margin, então a linha é quebrada no limite de palavras e continua na próxima linha.
 
* '''Comment selection''': Torna o texto selecionado um comentário inserindo antes de cada linha os caracteres: // .
 
* '''Uncomment selection''': Remove as marcas de comentários.
 
* '''Sort selection''': Ordena linhas (ou palavras ou paragráfos) alfabeticamente;  podendo ser : ascendente ou descendente; e sensitívo a caixa ou não. No meio do código fonte do programa, é claro, não faz sentido, mas se você tem uma lista em que você precisa ordená-la você utilizará esta ferramenta.
 
* '''Select''': Seleciona blocos do texto.  As opções incluem selecionar tudo, para apoiar, um parágrafo ou  uma linha, etc.
 
* '''Insert from character map''': Insere de símbolos não existentes no teclado como caracteres acentuados, obtém de janela com o mapa de caracteres.
 
* '''Insert Text''':abre um menu à parte para inserir textos padrões: palavras chaves do CVS (Author, Date, Header etc) ou notícia do GPL, nome do usuário ou data e hora atual.
 
* '''Complete code''': Muito utilizado pelo desenvolvedor permite completar o código de um método, procedimento ou função, declarado na interface. Ao chamar esta rotina ele é adicionado na implementação(implementation) com o cursor dentro deste para você programar este.
 
* '''Extract procedure''': Usa o texto selecionado(a statement or series of statements) para gerar um novo procedimento(procedure).
 
<div style="clear:both;"></div>
 
  
====O sub-menu Localizar(Search) ====
+
''Componentes'': TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynFreePascalSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynPythonSyn, TSynVBSyn, TSynAnySyn, TSynMultiSyn.
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/SearchMenuSnapshot.png </div>
 
* '''Find''': similar a facilidade encontrada na maioria dos editores de texto:  uma caixa de diálogo aparece disponibilizando a entrada de um texto para procurar, com opções como: case sensitive(sensível a caixa: maiúscula <> minúscula), palavras inteiras, origem, escopo e direção da procura.
 
* '''Find Next, Find previous''': procurar novamente pelo anterior texto entrado, na especificada direção.
 
* '''Find in files''': procura pelo texto nos arquivos: diálogo com as opções: all open files(todos os arquivos abertos), all files in project (todos os arquivos no projeto) ou all directories(todos diretórios);  mascara disponível para selecionar tipos de arquivo.
 
* '''Replace''': parecido com "Find", exibe um diálogo com lugares para entrar com o texto para procurar e substituir, e opções para sensível à caixa(case sensitivity), direção(direction) etc.
 
* '''Incremental find''': Procura pelo texto enquanto você está colocando os caracteres de procura. Exemplo: depois de você escolher "Incremental Find" se você pressionar "l" o primeiro "l" irá ser marcado. Se em seguida você apertar "a", o editor irá procurar o próximo "la" e marcá-lo. E assim por diante.
 
  
* '''Goto line''': Move o cursor de edição para uma linha específica no arquivo.
+
=== Como usar a Paleta? ===
* '''Jump back''': Move de volta no arquivo para a próxima marcação(precisa ter usado Add jump point no histórico). Irá mover para marcações em outros arquivos no editor.
 
* '''Jump forward''': Move para próxima marcação.
 
* '''Add jump point to history''': Adiciona marcações ou pontos de pulo para o arquivo.
 
* '''View Jump-History''': Visualiza a lista de marcações no arquivo: Não implementada ainda.
 
* '''Find other end of code block''': Se posicionado em um início de bloco, encontra o correspondente fim e vice-versa.
 
* '''Find code block start''': Move para o início do procedimento ou função em que o cursor se encontra.
 
  
* '''Find Declaration at cursor''': Encontra o lugar em que o identificador selecionado é declarado. Pode ser o mesmo arquivo ou outro aberto no editor; se o arquivo não está aberto, ele será aberto (então se um procedimento ou função está declarado, por exemplo, no arquivo classesh.inc , este irá ser aberto no editor).
+
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.
* '''Open filename at cursor''': Abre o arquivo cujo o nome é selecionado no cursor. Útil para olhar  arquivos incluídos ou que contêm outras unidades usadas no projeto.Opens the file whose name is selected at the cursor.
 
* '''Goto include directive''': Se o cursor for posicionado em um arquivo que esteja incluído em um outro arquivo, vai ao lugar no outro arquivo que chamou o arquivo incluído.
 
'''<div style="clear:both;"></div>
 
  
====A Visão(View) sub-menu====
+
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.
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/ViewMenuSnapshot.png </div>
 
Controla as várias janelas e painéis exibidas da ferramenta(Lazarus) na tela.
 
* '''Object Inspector''': Esta janela usualmente ocupa o lado esquerdo do ambiente, e exibe as características, os atributos publicados(que se encontram no "published" da classe) do formulário(Form), módulo ou componente selecionado em um dos containers anteriores que está no ambiente.
 
* '''Source Editor''': é a janela encarregada de editar o código fonte do programa, geralmente são arquivos de extensão: pas, pp e inc.
 
* '''Code Explorer''': abre uma janela com as divisões do código fonte para facilitar o desenvolvimento.
 
* '''Units''': abre uma janela que exibe todas as unidades(bibliotecas) utilizadas pelo projeto.
 
* '''Forms''': abre uma janela que lista todas as janelas criadas e utilizadas no projeto.
 
* '''View Unit Dependencies''': abre uma janela que exibe em árvore as unidades que o projeto depende.
 
* '''Toogle form/unit view''': alterna entre o formulário e a unidade(biblioteca) do formulário.
 
* '''Messages''': exibe a janela de mensagens de compilação, exibindo progresso da compilação ou listando os erros econtrados...
 
* '''Search Results''': Uma janela que exibe os resultado de procura nos arquivos.
 
* ''' Debug windows''': Abre um menu com várias opções para operar e compilar o debugador.  
 
<div style="clear:both;"></div>
 
  
====O Projeto(Project) sub-menu====
+
== Como usar Controles Standard, Common e Extended ==
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/ProjectMenuSnapshot.png </div>
 
* '''New Project''': Cria um novo projeto.  Uma janela de diálogo aparece oferecendo a escolha de tipos de projeto para criar.
 
* '''New Project from file''': Um diálogo de navegação aparece, aguardando a seleção de um arquivo para criar um novo projeto.
 
* '''Open Project''': Abre um projeto existente que já tenha sido criado e salvo. Um diálogo de navegação aparece com uma lista de arquivos de informações de projetos lazarus(.lpi) para escolher.
 
* '''Open Recent Project''': Exibe uma lista de projetos recentes que você tenha trabalhado recentemente para você selecionar.
 
* '''Save Project''': Salva o projeto.
 
* '''Save Project As''': Salva o projeto como, ou seja com um nome determinado por você.
 
<div style="clear:both;"></div>
 
  
===A Barra de Botões===
+
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.
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).
+
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
  
==A Paleta de Componentes==
 
para fazer
 
 
==O Depurador==
 
==O Depurador==
 
para fazer
 
para fazer
Line 189: Line 207:
  
 
   xxx.pas e yyy.lpr
 
   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 encostrar a unit mais tarde, quando se referir a ela no arquivo do projeto). Claro, para ser coerente, troque sempre unit1 por xxx.
+
(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 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.  
Line 211: Line 229:
  
 
'''again.exe:'''
 
'''again.exe:'''
O programa principal (binário executavel). Em sistema Win32 é acrescido a extensão "exe". No Linuz, não tem nenhuma. Este arquivo será enorme no Linux devido a inclusão de simbolos de depuração. Execute o utilitário 'strip' parar remover os simbolos e diminuir bastante o tamanho do executável.
+
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:'''
 
'''again.lpi:'''
Line 217: Line 235:
  
 
'''again.lpr:'''
 
'''again.lpr:'''
Este é o arquivo fonte do programa principal. Apesar da extensão especifica do Lazarus, na realidade é um arquivo fonte totalmente normal de Pascal. Tem uma clausula de usos 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.
+
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:'''
 
'''againu.lfm:'''
Line 229: Line 247:
  
 
'''again.ppu:'''
 
'''again.ppu:'''
A unit compilada
+
A Unit compilada
  
 
'''ppas.bat:'''
 
'''ppas.bat:'''

Latest revision as of 13:29, 8 December 2021

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.