Sign in Join
Wiki copytemporary

Lazarus Tutorial/pt: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11*Este é o início de um Tutorial Lazarus. Por favor, sinta-se livre para melhorá-lo .*
22
33## Visão geral
44
55Lazarus é 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](http://wiki.lazarus.freepascal.org/Screenshots)) é um ambiente de programação para criar aplicações gráficas e para consoles independentes.
66
77Lazarus 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.
88
99## Começando
1010
1111Baixe, instale [[Installing Lazarus|install]] e ative o Lazarus que virá também com o compilador FreePascal.
1212
1313### Começando - O seu primeiro programa feito no Lazarus !
1414
1515Muitas 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.
1616
1717A 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".
1818
1919Agora 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:
2020
2121` procedure TForm1.Button1Click(Sender: TObject);`\
2222` begin`\
2323`   {agora escreva:}    Button1.caption := 'Press again';`\
2424`   {o editor sempre termina o procedimento com}`\
2525` end;`
2626
2727Pressione F12 para a janela Form1 aparecer sobre o editor de código.
2828
2929Agora 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:
3030
3131` procedure TForm1.Button2Click(Sender: TObject);`\
3232` begin`\
3333` {agora escreva:}   Close;`\
3434` {o editor sempre completa o procedimento com} `\
3535` end;`
3636
3737Em 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.
3838
3939Durante 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.
4040
4141Tente 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.
4242
4343Agora 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.
4444
4545Você deve salvar o seu trabalho agora(e freqüentemente) selecionando Project \> Save As \> your_selected_file_name.pas na janela do topo no menu.
4646
4747### Segunda Sessão
4848
4949Reabra 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.
5050
5151Edite seu código para o que está escrito à seguir:
5252
5353` procedure TForm1.Button1Click(Sender: TObject);`\
5454`{Faz uso da propriedade Tag , indicando valores 0 ou 1}`\
5555` begin`\
5656`   if Button1.tag =0 then`\
5757`   begin`\
5858`     Button1.caption := 'Press again';`\
5959`     Button1.tag := 1`\
6060`   end else`\
6161`   begin`\
6262`     Button1.caption := 'Press';`\
6363`     Button1.tag := 0`\
6464`   end`\
6565` end;`
6666
6767Salve seu trabalho, recompile e execute. O botão à esquerda irá agora variar entre duas alternativas de mensagem a cada clique.
6868
6969O resto é com você!
7070
7171Se 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]].
7272
7373## O Editor
7474
7575Quando você ativa o Lazarus pela primeira vez, uma série de janelas flutuantes separadas irão aparecer em seu desktop(ambiente gráfico).
7676
7777A 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.
7878
79-<center>
80-
81-<figure>
82-<img src="Lazmain.jpg" title="Lazmain.jpg" />
83-<figcaption>Lazmain.jpg</figcaption>
84-</figure>
85-
86-</center>
79+![](/wiki-images/2/2d/Lazmain.jpg)
8780
8881Ainda 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.
8982
9083Sob a janela do Editor do Lazarus irá aparecer a janela do **[inspetor de objeto](http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg)**(object inspector) à esquerda, e à direita **[editor de código do Lazarus](http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg)**. Aqui pode ter outra janela menor, indicada com **[Form1](http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg)**, 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.
9184
9285Quando 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.
9386
9487Outras janela que podem ser visíveis durante seu trabalho: O **[Inspetor do Projeto(Project Inspector)](http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg)**, 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.
9588
9689## O Menu Principal
9790
9891For a detailed description of every menu item which is accessible from the Lazarus IDE Main Menu, please refer to the [[Main menu/pt]] page.
9992
10093## A Barra de Botões
10194
10295Uma 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:
10396
10497
10598**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).
10699
107100## A Paleta de Componentes
108101
109102Uma 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.
110103
111104A seguir estão relacionados os componentes.
112105
113106**ABAS**(os nomes são autoexplicativos):
114107
115108- **Standard**
116109
117-<figure>
118-<img src="Standard.jpg" title="Standard.jpg" />
119-<figcaption>Standard.jpg</figcaption>
120-</figure>
110+![](/wiki-images/7/7f/Standard.jpg)
121111
122112*Componentes usados frequentemente*: TMainMenu, TPopUpMenu, TButton, TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TRadioGroup, TCheckGroup, TPanel, TActionList.
123113
124114- **Additional**
125115
126-<figure>
127-<img src="Additional.jpg" title="Additional.jpg" />
128-<figcaption>Additional.jpg</figcaption>
129-</figure>
116+![](/wiki-images/0/08/Additional.jpg)
130117
131118*Componentes mais usados*: TBitBtn, TSpeedButton, TStaticText, TImage, TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, TTrayIcon, TMaskEdit, TCheckListBox, TScrollBox, TApplicationProperties, TStringGrid, TDrawGrid, TPairSplitter, TColorBox, TColorListBox.
132119
133120- **Common Controls**
134121
135-<figure>
136-<img src="Common.jpg" title="Common.jpg" />
137-<figcaption>Common.jpg</figcaption>
138-</figure>
122+![](/wiki-images/5/5f/Common.jpg)
139123
140124*Componentes mais usados*: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TTabControl, THeaderControl, TImageList, TPopupNotifier.
141125
142126- **Dialogs**
143127
144-<figure>
145-<img src="Dialogs.jpg" title="Dialogs.jpg" />
146-<figcaption>Dialogs.jpg</figcaption>
147-</figure>
128+![](/wiki-images/7/73/Dialogs.jpg)
148129
149130*Componentes mais usados*: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TFindDialog, TReplaceDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog, TPrinterSetupDialog, TPrintDialog, TPageSetupDialog.
150131
151132Muitos 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.
152133
153134Para 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.
154135
155136Tente 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.
156137
157138- **Misc**
158139
159-<figure>
160-<img src="Misc.jpg" title="Misc.jpg" />
161-<figcaption>Misc.jpg</figcaption>
162-</figure>
140+![](/wiki-images/b/be/Misc.jpg)
163141
164142*Componentes*: TColorButton, TSpinEdit, TFloatSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox, TFilterComboBox, TXMLPropStorage, TIniPropStorage, TBarChart, TButtonPanel, TShellTreeView, TShellListView, TIDEDialogLayoutStorage.
165143
166144- **Data Controls**
167145
168-<figure>
169-<img src="Datacontrols.jpg" title="Datacontrols.jpg" />
170-<figcaption>Datacontrols.jpg</figcaption>
171-</figure>
146+![](/wiki-images/c/c6/Datacontrols.jpg)
172147
173148Componentes 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.
174149
175150- **Data Access**
176151
177-<figure>
178-<img src="Dataaccess.jpg" title="Dataaccess.jpg" />
179-<figcaption>Dataaccess.jpg</figcaption>
180-</figure>
152+![](/wiki-images/a/a6/Dataaccess.jpg)
181153
182154*Componentes*: TDatasource, TSdfDataSet, TFixedFormatDataSet, TDbf, TMemDataset.
183155
184156- **System**
185157
186-<figure>
187-<img src="System.jpg" title="System.jpg" />
188-<figcaption>System.jpg</figcaption>
189-</figure>
158+![](/wiki-images/f/f3/System.jpg)
190159
191160*Componentes*: TTimer, TIdleTimer, TLazComponentQueue, THtmlHelpDatabase, THtmlBrowserHelpViewer, TProcessUTF8, TAsyncProcess, TProcess, TSimpleIPCClient, TSimpleIPCServer, TXMLConfig, TEventLog.
192161
193162- **SynEdit**
194163
195-<figure>
196-<img src="Synedit.jpg" title="Synedit.jpg" />
197-<figcaption>Synedit.jpg</figcaption>
198-</figure>
164+![](/wiki-images/b/b7/Synedit.jpg)
199165
200166Grupo 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.
201167
202168*Componentes*: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynFreePascalSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynPythonSyn, TSynVBSyn, TSynAnySyn, TSynMultiSyn.
203169
204170### Como usar a Paleta?
205171
206172Para 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.
207173
208174Se 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.
209175
210176## Como usar Controles Standard, Common e Extended
211177
212178As 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.
213179
214180Muitos 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.
215181
216182Se 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.
217183
218184Se você criar um componente através de código lembre de destruí-lo quando não precisar mais dele.
219185
220186Se você colocar um componente no Inspetor de Objetos, você pode observar as propriedades se modificando enquanto move o componente.
221187
222188Por 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.
223189
224190## Como usar Controles do menu
225191
226192Sugestões para a criação de menus para os seus formulários
227193
228194## O Depurador
229195
230196para fazer
231197
232198## Os arquivos do Lazarus
233199
234200`   (Obrigado a Kevin Whitefoot.)`\
235201`   (Adições de Giuseppe Ridinò, `Usuário:Kirkpatc` y Tom Lisjac)`
236202
237203Ao Salvar, os seguintes arquivos são gravados:
238204
239205`  xxx.pas e yyy.lpr`
240206
241207(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.
242208
243209Assim 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.
244210
245211Assim que eu terminei o que foi descrito acima, obtive:
246212
247213e:/lazarus/kj/lazhello:
248214
249215`total 4740  free 76500`\
250216`-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 again.exe`\
251217`-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 again.lpi`\
252218`-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 again.lpr`\
253219`-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 againu.lfm`\
254220`-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 againu.lrs`\
255221`-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 againu.pas`\
256222`-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 againu.ppu`\
257223`-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat`
258224
259225Observe que há mais arquivos do que pensei que estava salvando.
260226
261227Continuando, uma breve nota sobre cada arquivo:
262228
263229**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.
264230
265231**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.
266232
267233**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.
268234
269235**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.
270236
271237**again.lrs:** Este é o arquivo fonte gerado. Note que não é um arquivo fonte de Windows.
272238
273239**againu.pas:** A Unit que contém o código do formulário.
274240
275241**again.ppu:** A Unit compilada
276242
277243**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.
278244
279245## Contribuições e Mudanças
280246
281247Este documento é uma tradução do original em inglês.
282248
283249---
284250*From the Free Pascal wiki, page "Lazarus Tutorial/pt", as it stood on 2021-12-08 after a change by Kupferstecher, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history