<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=StartprogrammingusingObjectPascal%3AFirstGuiApplication</id>
	<title>StartprogrammingusingObjectPascal:FirstGuiApplication - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=StartprogrammingusingObjectPascal%3AFirstGuiApplication"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:FirstGuiApplication&amp;action=history"/>
	<updated>2026-05-01T09:16:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:FirstGuiApplication&amp;diff=359&amp;oldid=prev</id>
		<title>Onionmixer: 스타일수정 및 번역오류수정</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:FirstGuiApplication&amp;diff=359&amp;oldid=prev"/>
		<updated>2013-04-04T11:23:07Z</updated>

		<summary type="html">&lt;p&gt;스타일수정 및 번역오류수정&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===우리의 첫번째 GUI 프로그램===&lt;br /&gt;
&lt;br /&gt;
새 GUI 프로그램을 만들려면, 다음 라자루스 메뉴를 누릅니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Project/New Project/Application&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
그 다음, 아래 메뉴를 따라가서 프로그램을 저장합니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
File/Save  All&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
우리의 프로젝트 파일들을 저장하기 위해 &amp;#039;&amp;#039;firstgui&amp;#039;&amp;#039;와 같은 새로운 폴더를 만들 수 있습니다. 그 다음 &amp;#039;&amp;#039;main.pas&amp;#039;&amp;#039;와 같은 메인 유닛을 저장할 것이고, &amp;#039;&amp;#039;firstgui.lpi&amp;#039;&amp;#039;와 같은 프로젝트 이름을 정할 것입니다.&lt;br /&gt;
&lt;br /&gt;
메인 Unit에서, 다음과 같은 메인 Unit과 관련된 폼을 보기 위해 &amp;#039;&amp;#039;F12&amp;#039;&amp;#039;키를 누를 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_00.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
프로그램을 실행하면 다음 창을 보게 될 것입니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
디자이너로 돌아가기 위해 프로그램을 끝낼 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
다음은 표준 구성요소 페이지로부터 폼 위에 &amp;#039;&amp;#039;버튼&amp;#039;&amp;#039;을 놓겠습니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
그 다음 아래 그림과 같이 버튼을 임의의 위치에 놓아둡니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Object Inspector&amp;#039;&amp;#039; 창에서 버튼의 속성(캡션 이름, 폭 등)을 표시할 수 있습니다. 라자루스 창에서 나타나지 않는다면, 메인메뉴에서 &amp;#039;&amp;#039;Window/Object Inspector&amp;#039;&amp;#039; 를 마우스로 누르거나, &amp;#039;&amp;#039;F11&amp;#039;&amp;#039; 키를 눌러서 표시할 수 있습니다. 이제 다음 창을 보게 될 것입니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_04.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
버튼의 속성을 수정하기 전에 &amp;#039;&amp;#039;Form&amp;#039;&amp;#039; 아니라 버튼을 선택했는지 확인해야 합니다. Inspector 창에 첫 번째에는 Properties,  두 번째에는 Events 탭이 있는 것을 살펴보도록 합니다. 각각의 탭은 그 자신의 페이지를 보여줍니다.&lt;br /&gt;
&lt;br /&gt;
이제 버튼에 표시된 텍스트를 &amp;#039;&amp;#039;Caption&amp;#039;&amp;#039; 속성을 눌러서 바꿀 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
그 다음, &amp;#039;&amp;#039;Events&amp;#039;&amp;#039; 페이지를 표시하기 위해 &amp;#039;&amp;#039;Object Inspector&amp;#039;&amp;#039;의 &amp;#039;&amp;#039;Events&amp;#039;&amp;#039; 탭을 선택하고, 메인 Unit에 코드 양식을 만들 OnClick 이벤트를 두 번 누릅니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이제 라자루스가 우리에게 만들어준 OnClick 이벤트 코드 양식에 다음 줄을 작성합니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
    ShowMessage(‘Hello world, this is my first GUI application’);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이렇게 해서 프로그램을 실행하면, 마우스로 단추를 눌렀을 때 기대하던 메시지가 들어있는 대화창을 표시할 것입니다.&lt;br /&gt;
&lt;br /&gt;
리눅스에서는 &amp;#039;&amp;#039;firstgui&amp;#039;&amp;#039; 라는 실행 파일을 같은 디렉터리에서 찾게 될 것이고, 윈도우즈를 사용한다면 &amp;#039;&amp;#039;firstgui.exe&amp;#039;&amp;#039; 를 같은 디렉터리에서 찾을 수 있습니다. 이 파일들은 다른 컴퓨터로 복사할 수 있고, 라자루스가 없어도 단독으로 실행할 수 있는 파일들 입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
앞의 예제에서 여러가지 중요한 점들이 있습니다.&lt;br /&gt;
&lt;br /&gt;
1. &amp;#039;&amp;#039;&amp;#039;메인 프로그램 파일&amp;#039;&amp;#039;&amp;#039;: 예제에서는 &amp;#039;&amp;#039;firstgui.lpr&amp;#039;&amp;#039; 파일로 저장되었습니다. Project/Source를 마우스로 눌러서 볼 수 있습니다. 이 소스 코드를 보게 될 것입니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
program firstgui;&lt;br /&gt;
&lt;br /&gt;
{$mode objfpc}{$H+}&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
    {$IFDEF UNIX}{$IFDEF UseCThreads}&lt;br /&gt;
    cthreads,&lt;br /&gt;
    {$ENDIF}{$ENDIF}&lt;br /&gt;
    Interfaces, // this includes the LCL widgetset&lt;br /&gt;
    Forms&lt;br /&gt;
    { you can add units after this }, main;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
    Application.Initialize;&lt;br /&gt;
    Application.CreateForm(TForm1, Form1);&lt;br /&gt;
    Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
특별한 목적으로 몇몇의 경우에 이 코드를 수정할 필요가 있겠지만, 대부분의 경우에는 라자루스가 자동으로 관리하도록 이대로 내버려둘 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. &amp;#039;&amp;#039;&amp;#039;메인 유닛&amp;#039;&amp;#039;&amp;#039;: 프로그램을 실행할 때 자동으로 나타날 폼의 정의내용이 들어있는 유닛입니다.&lt;br /&gt;
&lt;br /&gt;
아래는 OnClick 이벤트에 대해 완성한 코드의 main Unit입니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
unit main;&lt;br /&gt;
{$mode objfpc}{$H+}&lt;br /&gt;
&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
    Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,&lt;br /&gt;
    StdCtrls;&lt;br /&gt;
type&lt;br /&gt;
&lt;br /&gt;
    { TForm1 }&lt;br /&gt;
&lt;br /&gt;
    TForm1 = class(TForm)&lt;br /&gt;
    Button1: TButton;&lt;br /&gt;
    procedure Button1Click(Sender: TObject);&lt;br /&gt;
    private&lt;br /&gt;
        { private declarations }&lt;br /&gt;
    public&lt;br /&gt;
        { public declarations }&lt;br /&gt;
    end;&lt;br /&gt;
var&lt;br /&gt;
    Form1: TForm1;&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{ TForm1 }&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
    ShowMessage(&amp;#039;Hello world, this is my first GUI application&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
initialization&lt;br /&gt;
    {$I main.lrs}&lt;br /&gt;
&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
메인 Unit 머리 부분에서 &amp;#039;&amp;#039;레코드 형식&amp;#039;&amp;#039;과 유사하지만 클래스인 &amp;#039;&amp;#039;TForm1&amp;#039;&amp;#039; 선언을 찾았습니다. 클래스에 대해서는 다음 장 “객체지향 프로그래밍”에서 이야기할 것입니다. &amp;#039;&amp;#039;Button1&amp;#039;&amp;#039; 은 &amp;#039;&amp;#039;TForm1&amp;#039;&amp;#039; 클래스 안에 선언되어 있습니다.&lt;br /&gt;
&lt;br /&gt;
이 Unit의 소스 코드는 Ctrl+F12를 누르고 메인 유닛을 선택하면 볼 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. &amp;#039;&amp;#039;&amp;#039;Object Inspector/Properties:&amp;#039;&amp;#039;&amp;#039; Object Inspector의 이 페이지에서는 버튼의 캡션이나 위치, 폼의 색, 레이블의 글꼴 등과 같은 임의의 구성요소의 속성을 보고 수정할 수 있습니다. 이 구성요소들은 레코드와 유사하며, 이들의 속성은 레코드의 필드와 유사합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. &amp;#039;&amp;#039;&amp;#039;Object Inspector/Events:&amp;#039;&amp;#039;&amp;#039; Object Inspector의 이 페이지에서는 버튼의 &amp;#039;&amp;#039;OnClick&amp;#039;&amp;#039; 이벤트, 편집 상자의 &amp;#039;&amp;#039;KeyPress&amp;#039;&amp;#039;, 레이블의 두 번 누르기 등과 같이 우리가 받을 수 있는 구성요소의 이벤트가 들어있습니다. 구성요소의 임의의 이벤트를 마우스로 누를 때, 라자루스는 이에 해당하는 이벤트가 발생할 때 호출될 코드를 작성하도록 우리를 위해 새로운 프로시저 양식 코드를 만듭니다. 단추의 &amp;#039;&amp;#039;OnClick&amp;#039;&amp;#039; 이벤트에 대한 아래 예제처럼 해당하는 이벤트에 대한 파스칼 코드를 작성할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
    ShowMessage(&amp;#039;Hello world, this is my first GUI application&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이 프로시저는 사용자가 이 버튼을 눌렀을 때 호출됩니다. 이 프로시저를 이벤트 핸들러&amp;lt;sup&amp;gt;event handler&amp;lt;/sup&amp;gt; 라고 부릅니다.&lt;br /&gt;
&lt;br /&gt;
[[Category:StartprogrammingusingObjectPascal]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:FirstGuiApplication&amp;diff=357&amp;oldid=prev</id>
		<title>Onionmixer at 11:09, 26 July 2012</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:FirstGuiApplication&amp;diff=357&amp;oldid=prev"/>
		<updated>2012-07-26T11:09:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:09, 26 July 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot;&gt;Line 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;다음은 표준 구성요소 페이지로부터 폼 위에 단추를 놓겠습니다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;다음은 표준 구성요소 페이지로부터 폼 위에 단추를 놓겠습니다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[image:lazarus_02.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[image:lazarus_02.png&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|800px&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:FirstGuiApplication&amp;diff=356&amp;oldid=prev</id>
		<title>Onionmixer: SPOP 우리의첫GUI프로그램 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:FirstGuiApplication&amp;diff=356&amp;oldid=prev"/>
		<updated>2012-07-26T11:06:52Z</updated>

		<summary type="html">&lt;p&gt;SPOP 우리의첫GUI프로그램 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===우리의 첫 GUI 프로그램===&lt;br /&gt;
&lt;br /&gt;
새 GUI 프로그램을 만들려면, 다음 라자루스 메뉴를 누릅니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Project/New Project/Application&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
그 다음, 아래 메뉴를 따라가서 프로그램을 저장합니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
File/Save  All&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
우리의 프로젝트 파일들을 저장하기 위해 &amp;#039;&amp;#039;firstgui&amp;#039;&amp;#039;와 같은 새로운 폴더를 만들 수 있습니다. 그 다음 &amp;#039;&amp;#039;main.pas&amp;#039;&amp;#039;와 같은 메인 유닛을 저장할 것이고, &amp;#039;&amp;#039;firstgui.lpi&amp;#039;&amp;#039;와 같은 프로젝트 이름을 정할 것입니다.&lt;br /&gt;
&lt;br /&gt;
메인 유닛에서, 다음과 같은 메인 유닛과 관련된 폼을 보기 위해 F12키를 누를 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_00.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
프로그램을 실행하면 다음 창을 보게 될 것입니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
디자이너로 돌아가기 위해 프로그램을 끝낼 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
다음은 표준 구성요소 페이지로부터 폼 위에 단추를 놓겠습니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
그 다음 아래 그림과 같이 단추를 임의의 위치에 놓아둡니다.&lt;br /&gt;
&lt;br /&gt;
[[image:lazarus_03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Object Inspector&amp;#039;&amp;#039; 창에서 단추의 속성(캡션 이름, 폭 등)을 표시할 수 있습니다. 라자루스 창에서 나타나지 않는다면, 메인메뉴에서 &amp;#039;&amp;#039;Window/Object Inspector&amp;#039;&amp;#039; 를 마우스로 누르거나, &amp;#039;&amp;#039;F11&amp;#039;&amp;#039; 키를 눌러서 표시할 수 있습니다. 이제 다음 창을 보게 될 것입니다.&amp;lt;br&amp;gt;&lt;br /&gt;
[[image:lazarus_04.png]]&lt;br /&gt;
&lt;br /&gt;
단추의 속성을 수정하기 전에 &amp;#039;&amp;#039;Form&amp;#039;&amp;#039; 아니라 단추를 선택했는지 확인하는 것이 좋습니다. Inspector 창에 첫 번째에는 Properties,  두 번째에는 Events 탭이 있는 것을 눈여겨 보도록 합니다. 각각의 탭은 그 자신의 페이지를 보여줍니다.&lt;br /&gt;
&lt;br /&gt;
이제 단추에 표시된 텍스트를 &amp;#039;&amp;#039;Caption&amp;#039;&amp;#039; 속성을 눌러서 바꿀 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
그 다음, &amp;#039;&amp;#039;Events&amp;#039;&amp;#039; 페이지를 표시하기 위해 &amp;#039;&amp;#039;Object Inspector&amp;#039;&amp;#039;의 &amp;#039;&amp;#039;Events&amp;#039;&amp;#039; 탭을 선택하고, 메인 유닛에 코드 양식을 만들 OnClick 이벤트를 두 번 누릅니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이제 라자루스가 우리를 위해 만들어준 OnClick 이벤트 코드 양식에 다음 줄을 작성합니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
    ShowMessage(‘Hello world, this is my first GUI application’);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이렇게 해서 프로그램을 실행하면, 마우스로 단추를 눌렀을 때 바라던 메시지가 들어있는 대화창을 표시할 것입니다.&lt;br /&gt;
&lt;br /&gt;
리눅스에서는 &amp;#039;&amp;#039;firstgui&amp;#039;&amp;#039; 라는 실행 파일을 같은 디렉터리에서 찾게 될 것이고, 윈도우즈를 사용한다면 &amp;#039;&amp;#039;firstgui.exe&amp;#039;&amp;#039;를 같은 디렉터리에서 찾게 될 것입니다. 이들은 다른 컴퓨터로 복사할 수 있고, 라자루스 도구를 필요로 하지 않고 실행할 수 있는 파일들 입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
앞의 예제에서 여러가지 중요한 점들이 있습니다.&lt;br /&gt;
&lt;br /&gt;
1. 메인 프로그램 파일: 예제에서는 firstgui.lpi 파일로 저장되었습니다. Project/Source를 마우스로 눌러서 볼 수 있습니다. 이 소스 코드를 보게 될 것입니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
program firstgui;&lt;br /&gt;
&lt;br /&gt;
{$mode objfpc}{$H+}&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
    {$IFDEF UNIX}{$IFDEF UseCThreads}&lt;br /&gt;
    cthreads,&lt;br /&gt;
    {$ENDIF}{$ENDIF}&lt;br /&gt;
    Interfaces, // this includes the LCL widgetset&lt;br /&gt;
    Forms&lt;br /&gt;
    { you can add units after this }, main;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
    Application.Initialize;&lt;br /&gt;
    Application.CreateForm(TForm1, Form1);&lt;br /&gt;
    Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
특별한 목적으로 몇몇의 경우에 이 코드를 수정할 필요가 있겠지만, 대부분의 경우에는 라자루스가 자동으로 관리하도록 이대로 내버려둘 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 메인 유닛: 프로그램을 실행할 때 자동으로 나타날 폼의 정의내용이 들어있는 유닛입니다.&lt;br /&gt;
&lt;br /&gt;
아래는 OnClick 이벤트에 대해 완성한 코드의 메인 유닛입니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
unit main;&lt;br /&gt;
{$mode objfpc}{$H+}&lt;br /&gt;
&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
    Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,&lt;br /&gt;
    StdCtrls;&lt;br /&gt;
type&lt;br /&gt;
&lt;br /&gt;
    { TForm1 }&lt;br /&gt;
&lt;br /&gt;
    TForm1 = class(TForm)&lt;br /&gt;
    Button1: TButton;&lt;br /&gt;
    procedure Button1Click(Sender: TObject);&lt;br /&gt;
    private&lt;br /&gt;
        { private declarations }&lt;br /&gt;
    public&lt;br /&gt;
        { public declarations }&lt;br /&gt;
    end;&lt;br /&gt;
var&lt;br /&gt;
    Form1: TForm1;&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{ TForm1 }&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
    ShowMessage(&amp;#039;Hello world, this is my first GUI application&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
initialization&lt;br /&gt;
    {$I main.lrs}&lt;br /&gt;
&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
메인 유닛 머리 부분에서 &amp;#039;&amp;#039;레코드 형식&amp;#039;&amp;#039;과 유사하지만 클래스인 &amp;#039;&amp;#039;TForm1&amp;#039;&amp;#039; 선언을 찾았습니다. 클래스에 대해서는 다음 장 “객체지향 프로그래밍”에서 이야기할 것입니다. &amp;#039;&amp;#039;Button1&amp;#039;&amp;#039; 은 &amp;#039;&amp;#039;TForm1&amp;#039;&amp;#039; 클래스 안에 선언되어 있습니다.&lt;br /&gt;
&lt;br /&gt;
이 유닛의 소스 코드는 Ctrl+F12를 누르고 메인 유닛을 선택하면 볼 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Object Inspector/Properties:&amp;#039;&amp;#039;&amp;#039; Object Inspector의 이 페이지에서는 단추의 캡션이나 위치, 폼의 색, 레이블의 글꼴 등과 같은 임의의 구성요소의 속성을 보고 수정할 수 있습니다. 이 구성요소들은 레코드와 유사하며, 이들의 속성은 레코드의 필드와 유사합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. &amp;#039;&amp;#039;&amp;#039;Object Inspector/Events:&amp;#039;&amp;#039;&amp;#039; Object Inspector의 이 페이지에서는 단추의 OnClick 이벤트, 편집 상자의 KeyPress, 레이블의 두번 누르기 등과 같이 우리가 받을 수 있는 구성요소의 이벤트가 들어있습니다. 구성요소의 임의의 이벤트를 마우스로 누를 때, 라자루스는 이에 해당하는 이벤트가 발생할 때 호출될 코드를 작성하도록 우리를 위해 새로운 프로시저 양식 코드를 만듭니다. 단추의 OnClick 이벤트에 대한 아래 예제처럼 해당하는 이벤트에 대한 파스칼 코드를 작성할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
    ShowMessage(&amp;#039;Hello world, this is my first GUI application&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이 프로시저는 사용자가 이 단추를 눌렀을 때 호출됩니다. 이 프로시저를 이벤트 핸들러라고 부릅니다.&lt;br /&gt;
[[Category:StartprogrammingusingObjectPascal]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>