Lazarus Tutorial/ja
│
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) │
このLazarusチュートリアルに、遠慮なくあなたの経験を書き加えてみませんか? どうぞご遠慮なく。
概要
Lazarusはフリーでオープンソースの開発ツールです。これは、フリーでオープンソースのFreePascalコンパイラ(object pascal)を利用しています。Lazarus IDE(スクリーンショット) はとても安定し、他への依存度がほとんどありません。Lazarusを使って機能豊富なグラフィカルアプリケーション、コンソールアプリケーションの開発ができます。 Lazarusは現在Linux、FreeBSD、Win32そしてOS Xの上で動作し、カスタマイズ可能なソースエディタ、ビジュアルなフォーム作成機能、パッケージマネージャ、デバッガといったものが、GUIによって備えられてFreePascalと完璧に統合しています。
Lazarusでプログラムをはじめてみよう
Lazarusをインストールして、起動してみてください。これだけで、Free PascalやLazarusをつかったプログラムをはじめてみることができます。
起動すると、いくつかのウィンドウがデスクトップ上に現れます。上の方にはメインメニューがあります。左には、オブジェクトインスペクタがあります。そのほかのデスクトップの大部分は、Lazarusソースエディタです。多分Form1ウィンドウが作られていて、ソースエディタの上にかぶさっているはずです。
上の方にあるメニューウィンドウの、メニューの下にタブの列があります。'標準'タブが選択されていますね。そこでButtonアイコン(四角の中に「OK」と書いてあるもの)を探してクリックしてください。そして、Form1の上の左中央あたりでクリックしてください。すると'Button1'と書かれた四角い図形(=ボタンです)が現れるはずです。もう一回標準タブのButtonアイコンをクリックして、Form1の右中央でクリックしてください。'Button2'と書かれたボタンが現れます。
Button1をクリックしましょう。オブジェクトインスペクタに、オブジェクトButton1のプロパティが表示されます。'Caption'と名付けられたプロパティに'Button1'と表示されていますね。その部分をクリックして'Button1'を'Press'に書き換えてください。あなたがENTERキーを押すか、別のボックスをクリックすれば、最初にForm1に置いたボタンが'Press'という名前になります。 続いて、オブジェクトインスペクタ上のイベントタブをクリックすると、ボタンに関連付けられている色々なイベントを見ることができます。 イベントには、たとえば、OnClick、OnEnter、OnExitなどがあります。OnClickボックスの右側を選択してください。小さなボックスが...と一緒に表示されます。あなたがこれをクリックすれば、自動的にソースエディタに移動してカーソルはコードの開始部分に移動します。
procedure TForm1.Button1Click(Sender: TObject); begin {ここで次のように入力:} Button1.caption := 'Press again'; {エディタは、このプロシージャ名を補完しました。} end;
と入力したら、F12を押してソースエディタから出てForm1ウィンドウを選択してください。
続いてButton2のプロパティを編集します。Button2をクリックして、プロパティをオブジェクトインスペクタに表示させてください。Captionプロパティを変更して'Button2'から'Exit'にします。イベントタブを選択して、OnClickボックスをクリックしてください。...をクリックして、ソースエディタに入り、真ん中あたりのプロシージャに
procedure TForm1.Button2Click(Sender: TObject); begin {ここで次のように入力:} Close; {エディタは、このプロシージャ名を補完しました。} end;
こう書いて、もう一度F12を押してForm1ウィンドウに戻ります。 これで、コンパイルを試みる段階まで来ました。コンパイルはとても簡単です。メインメニューにある'実行'を選択するだけです。 サブメニューで'実行'のオプションを選ぶこともできます。 また、単純にF9を押しても行えます。最初のコンパイルが行われ(うまくいけば)、リンクが完了し、コンパイルされたプログラムが実行されます。
複数のテキストウィンドウが現れてすべてのコンパイラメッセージが表示され、その後はForm1ウィンドウが現れますが、グリッドの点は表示されません。これはあなたのアプリケーションのメインウィンドウであり、あなたがボタンを押すか他の方法で操作をするのを待っています。
では'Press'と書かれたボタンを押してみましょう。あなたはそれが'Press again'と変わることに気づくでしょう。あなたがそれをもう一度押してもそれは'Press again'でしょう!!
'Exit'のボタンも押してみます。ウィンドウが閉じてプログラムが終了します。オリジナルのForm1ウィンドウがドットによるグリッドとともに表示され、編集可能な状態になります。
それではこれまでの作業を保存しておきましょう(これは頻繁に行いましょうね!!)。プロジェクトメニュー > 別名で保存 > your_selected_file_name.pas(適当な名前を付けます)とすれば完了です。これで、プログラムを終了して、PCの電源を切っても、保存したところから作業を再開できます。
第2段階
先ほど保存しておいた、プロジェクトを開いてください。 Form1ウィンドウにある'Press'ボタンをクリックして、選択してください。 オブジェクトインスペクタのイベントタブを選択して、OnClickボックスの右側をクリックして、ソースエディタの適切な位置に戻りましょう。
次に続くコードを参考に、さきほどのコードを書き直してみてください。
procedure TForm1.Button1Click(Sender: TObject); {TButtonのTagプロパティを使います。ここでは0か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;
保存し、もう一度コンパイルして実行しましょう。このコードによって、左側のボタンを押すと、今度はふたつのメッセージを交互に表示するようになりました。
さあ、後は自由に工夫してみてください。
もし、このようなGUIをもつプログラムでなく、たとえばあなたが基本的なPascalプログラミングを試してみたい、とかバッチモードで動作するプログラムを書く必要がある、とかシステムプログラミングをしたいとかそういう時には、コンソールやテキストベースのPascalプログラムを書く場面があるかもしれません。
そんな時にも、プログラムを編集、コンパイル、実行するために、Pascalの統合開発環境としてLazarusを使うことができます。 LazarusはPascalによる開発のための理想的な環境を作ります。詳しくはコンソールモードPascalをご覧ください。
IDEのウインドウ
概要
Lazarusを起動すると、いくつかに分割されている'フローティング'ウィンドウが、あなたのデスクトップ上に現れます。
デスクトップ右上に、Lazarus Editor vXXXXXX - project1(これはあなたが現在開いているプロジェクトの名前になります)とタイトルに書かれたものが表示されています。
これがプロジェクトのメインコントロールウィンドウで、メインメニューとコンポーネントパレットを含んでいます。
タイトルバー下のラインはメインメニューでファイル、編集、検索、表示メニューなどを含んでおり、Lazarusの基本的な操作をおこなえます。
この下に一組のビットボタン(よく使うメニューアイテムへのショートカットになっています)があり、その右側にはコンポートネントパレットがあります。
Lazarus Editorウィンドウの下にはオブジェクトインスペクタが左側に、 Lazarusソースエディタが右側にあります。他に小さな窓があり、Form1と名付けられていてLazarusソースエディタウィンドウの上に覆いかぶさっているでしょう。これが見えなければF12キーを押すことですぐに画面上に復帰させることができます。 Formウィンドウはあなたのアプリケーションのグラフィカルインターフェイスを作成するためにあり、ソースエディタはあなたのアプリケーションのPascalコードを表示します。The operation of the Object Inspector is discussed in more detail below while the Component Palette is described.
あなたが新しいプロジェクトを始めるとき、(Lazarusもしくはあなたが最初にLazarusを起動するとき)デフォルトのフォームが既に作成されていることでしょう。ここにはドットでグリッドが描かれており、あなたがコンポーネントをフォームに配置するときの手助けをします。そしてタイトルバーには最小化、 最大化 そして 閉じるのボタンがあります。もし あなたがこのウィンドウをクリックすればデスクトップの左側にあるオブジェクトインスペクタにこのフォームのプロパティが表示されます。
他のウィンドウが貴方の作業中に目にはいるようになることもあるでしょう。 プロジェクトインスペクタはあなたのプロジェクトの詳細と、関連するファイルを表示し、またファイルの追加や削除を行うことができます。メッセージウィンドウ は貴方のプロジェクトに関するコンパイラからのメッセージやエラー、もしくは進行状態を表示します。もしもLazarusをターミナルウィンドウから起動しているなら、本来ターミナルに表示されるべきことがらや、コンパイラメッセージの詳細が出力されます。
メインメニュー
メインメニューバーには、 ファイル(F)、編集(E)、検索(S)、表示(V)、プロジェクト(P)、実行(R)、パッケージ(P)、ツール(T)、環境(N)、ウィンドウ(W)、そしてヘルプ(H)という項目があります。
メニューの項目を確認するには、マウスカーソルでそのメニュー項目をクリックするか、キーボードのAltとF(ファイルメニューの場合)を同時に押してください。(訳注:Lazarus0.9.26では、ここにあったフォーカスの記述が不要であり削除)。
ファイル
- 新規ユニット: 新しいユニットファイル(Pascalソースコード)を生成します。
- 新規フォーム: 新しいフォーム(GUIウィンドウと関連するPascalソースコード)を生成します。
- 新規: 新規作成できるファイルを示すダイアログ (screenshot) が表示されます。
- 開く ...: "ファイルを開く"ダイアログが表示されます。
- 元に戻す: 現在のファイルの編集内容を破棄して元の状態に戻します。
- 最近扱ったファイルを開く: 最近編集したファイルのリストが表示されます。
- 保存: 現在のファイルを元の名前で保存します。名前が無い場合(新規ファイルの場合)は、"名前を付けて保存"ダイアログが表示されます。
- 名前を付けて保存: 現在のファイルを保存先のディレクトリと名前を指定して保存します。
- すべて保存: 現在選択しているファイルに加え、エディタで開かれている全てのファイルを保存します。
- 閉じる: 現在のファイルを閉じます。変更を保存するかどうかを尋ねるダイアログが表示されます。
- 全ファイルを閉じる: 現在エディタで開いている全てのファイルを閉じます。変更を保存するかどうかを尋ねるダイアログが表示されます。
- ディレクトリの中身を消去 ...: カレントディレクトリからファイルを取り除くために、除去ファイルのフィルタ編集ダイアログが表示されます。 バックアップファイル(.bak)や Delphi のプロジェクトを読み込んだ場合の不要物を取り除くのに便利です。
- Print ...: システムのプリンターを用いて、選択されたファイルを印刷します。
- 再起動: Lazarusを再起動します。ファイルが絶望的にぐちゃぐちゃになったときに役に立つでしょう!
- 終了: Lazarusを終了します。全ての変更されたファイルを保存するかどうかを尋ねるダイアログが表示されます。
編集
- 元に戻す: 最後の編集内容を元に戻します。 エディタの状態は、最後の編集時の手前の状態になります。
- やり直し: "元に戻す"によって戻された最後の編集内容が再び実行されます。Re-instates the last action that was reversed by Undo.
- 切り取り: 選択されたテキストやアイテムを削除して、その内容をクリップボードに転送します。
- コピー: 選択されたテキストやアイテムをコピーします。コピー元は変更されず、コピー内容をクリップボードに転送します。
- 貼り付け: クリップボードの内容をカーソル位置に貼り付けます。テキストがカーソルによって選択されている場合、クリップボードの内容によって選択箇所が置き換えられます。
- 選択部分をインデント: 選択されたテキストを 環境 -> エディターオプション -> 一般 -> ブロックインデント の設定に従い右に移動します。Pascalソースコードのブロック構造をはっきりさせるために便利です。
- 選択部分のインデントを解除:1レベルのインデントを解除します。テキストはブロックインデントの設定に従い左に移動します。
- 選択部分を囲む: 選択されたテキストを論理的な構造 (begin ... end; try ... except; try ... finally; repeat ... until; { ... } その他) で囲むためのダイアログが表示されます。
- 選択部分を注釈にする: 選択されたテキストの各行に // を挿入しコメント化します。
- 選択部分の注釈を外す: コメントマークを削除します。
- $IFDEFを挿入: $IFDEF文を追加するための条件定義のダイアログが表示されます。
- 選択部分をソートする: 行(や単語やパラグラフ)をアルファベット順にソートします。 ダイアログが表示され、昇順・降順、大文字小文字の区別の有無を選ぶことができます。 もちろん、ソースコードの途中で実行することに意味はありませんが、リストのソートなどには役立ちます。
- 選択部分を大文字化: 選択されたテキストを大文字にします。
- 選択部分を小文字化: 選択されたテキストを小文字にします。
- 選択部分のTabをスペースに変換: 選択されたテキスト内にあるタブを 環境 -> エディターオプション -> 一般 -> タブ幅 で設定された幅のスペースに変換します。
- 選択された行を適切に改行: 選択されたテキストのうち、80文字または 環境 -> エディターオプション -> 表示 -> 右マージン での設定値を超える行を改行します。単語は分割されず丸ごと次の行に移動します。
- 選択: テキストブロックの選択を行います。 サブメニューより、"すべて、括弧、コードブロック、行、段落" を選択することができます。
- キャラクターマップから挿入: アクセント記号など、キーボードから入力できない記号を挿入するキャラクターマップが表示されます。
- テキストを挿入: サブメニューより、"CVSキーワード(著者、日付、ヘッダ等)、GPL覚書き、現在のユーザー名、現在の日付と時刻" などの定型句を挿入します。
- コードを補完: カーソル部分のコードを補完します。 補完は文脈に応じて実行され、作業時間をかなり短縮できます。 例えば、クラスには、プライベート変数を追加し、プロパティにアクセスするメソッドを取得・設定し、メソッド本体を追加します。 変数の代入(例えば i := 3)には、変数宣言を追加します。 先に宣言されている手続には、手続本体を加えます。 イベントの設定(OnClick:=)には、メソッドの定義とメソッド本体を加えます。Lazarus IDE Toolsも参照してください。
- 手続きを展開 ...: 選択された文(一つの宣言、ないし一連の宣言)を用いて新しい手続を作ります。
検索
- 検索: 一般的なテキストエディタ同様に、文字列検索用のダイアログが表示されます。 大文字小文字の区別の有無や単語全体、正規表現、起点、スコープ、方向などのオプションがあります。
- 次を検索、前を検索: 直前に検索した文字列を、次または前の方向に再検索します。
- ファイルの中を検索 ...: ファイル内の文字列を検索するダイアログが表示されます。プロジェクト内のファイルをすべて検索、ディレクトリ内を検索、検索するファイルの種類を設定するためのマスクなどのオプションがあります。
- 置換: 検索と同様に、文字列置換用のダイアログが表示されます。
- インクリメンタル検索: 検索する文字列を入力している間、文字列が検索されます。 例: "インクリメンタル検索" を選択後に、 はじめに "l" を押せば、"l" がハイライトされ、次に "a" を押すと "la" がハイライトされます。
- 行へ移動 ...: カーソルをファイルの指定された行へ移動させます。
- 後方へ移動: 前の位置に移動します。 エラー行への移動や宣言の検索ごとに移動の履歴を保存しているため、以前に移動したソース位置へ移動することができます。
- 前方へ移動: 次の位置へ移動します。 後方へ移動のアンドゥです。
- 履歴の移動先を追加: 現在のソース位置を移動先の履歴へ追加します。
- 移動先履歴を表示 ...: 移動先の履歴を表示します。 表示に実装されています。
- 次のエラーへ移動, 前のエラーへ移動: 次または前のエラー箇所へ移動します。
- 自由なブックマークを付ける: 現在のカーソル行にブックマークを付けます(ブックマーク番号は、ブックマークリストの空き番号が自動的に割り当てられます)。 右クリックによるポップアップメニューの方が、番号を指定したブックマークの割当、移動ができるなど、機能が豊富です。(訳注)0.9.26ベータではポップアップメニューしか動作しないようです。
- 次のブックマークへ移動, 前のブックマークへ移動: ブックマークの数値順に、次または前のブックマークへ移動します。
- コードブロックの他の終了位置を検索: カーソル位置の手続や関数の終了箇所へ移動します。(例えば begin にカーソルがある場合、対応した end へ移動します。)
- コードブロックの開始を検索: カーソル位置の手続や関数の begin へ移動します。
- カーソル位置の変数の宣言を検索: カーソル位置の変数の宣言箇所へ移動します。 宣言が他のファイルにある場合、もしファイルが開いていなければ、そのファイルが開かれます。(例えば、ある関数がclassesh.incで宣言されていたときは、そのファイルがエディタによって開かれます)。
- カーソル位置のファイル名を開く: カーソルで選択されたファイル名のファイルを開きます。 インクルードされているファイルやプロジェクトで使用されている Unit を含むファイルを見るときに便利です。(訳注)ソースエディタでctrlを押しながらマウスカーソルを移動させると、カーソル位置の識別子にアンダーラインが表れます。このときマウスをクリックすると、指し示す識別子のファイルが開かれます。usesのunitで試してみてください。
- インクルード指令に移動: 他のファイルにインクルードされるファイルにカーソルがある場合、 呼び出しているファイルのインクルード宣言位置へ移動します。
- 識別子参照を検索 ...: 現在開いているプロジェクトやファイルなどを対象に、識別子について言及している行を表示します。
- 識別子名を変更: 現在開いているファイルのみ、またはプロジェクト全てなどを対象に、識別子を変更します。 さらに、コメント内で表れる識別子も名前の変更ができます。例えば、コンパイル時に識別子重複のエラーメッセージが出て、識別子を変更する必要があるときに役立ちます。
- 手続き一覧 ...: 現在開いているファイルの手続や関数を表示します。
表示
画面上のウィンドウやパネルの表示を制御します。
- オブジェクトインスペクタ: 通常はデスクトップの左側に位置する、オブジェクトの情報を表示するウィンドウです。 フォームのコンポーネントをクリックすると、その詳細が表示されます。 上部パネルに現プロジェクトのオブジェクトのツリー構造が表示され、ここからコンポーネントを選択することもできます。下部パネルには、選択されているコンポーネントの プロパティ(左列; name などのプロパティ、右列; プロパティの値) や イベント(左列; MouseClick などの関連イベント、右列;イベントに関連付けられたアクション) が表示されます。イベント タブでアクションを定義するには、 ダブルクリックや [...] ボタンを押すことでソースエディタにイベントの定義コードのテンプレートが追加されるので、続けてアクションのコードを記述してください。
- ソースエディタ: ソースコードを編集するウィンドウです。 多くのテキストエディタと同じように、カーソルをマウスで移動させたり、ドラッグ操作で文字列を選択して強調表示したりできます。 右クリックによるポップアップメニューから、切り取り、コピー、貼り付けなどの編集ができます。 ソースエディタ上部には、開いているファイルがタブ表示されますので、ファイルの切り替え、ファイル間のコピーや貼り付けなどが容易に行えます。 ソースエディタでは、コメント、文字列定数などの文法要素の色付けやインデントの自動設定ができます。 ソースエディタの機能や概観は、メニューの 環境 -> エディターオプション から設定できます。
- メッセージ: コンパイルの経過やエラーのリストを表示するウィンドウです。
- コードエクスプローラー: 通常はデスクトップの右側に位置し、現在のユニットやプログラムソースの構造をツリー表示するウィンドウです。 ソースエディタでファイルを編集した場合、リフレッシュボタンを押して、コードエクスプローラーの表示を更新する必要があります。
- FPDocエディタ:
- コードブラウザ:
- 制限ブラウザ:
- コンポーネント:
- ToDoリスト: プロジェクトに関連付けられたToDoリストを表示します。(//TODO で始まる行が自動的にToDoリストになります。表示されていない場合、ソースの保存後にリフレッシュボタンを押してみてください。) リストの 優先順位 は、ToDoコメントに付けられた数字によります。(例えば、//TODO では 0、//TODO999 では 999 と表示されます。)
- 移動先履歴を表示 ...: 移動先の履歴を表示します。
- ユニット ...: 現在のプロジェクトのユニットをリストで表示します。 クリックでソースエディタにファイルを表示します。 複数選択をチェックして、同時に複数のファイルを開くこともできます。 プロジェクト->プロジェクトインスペクタ と似ていますが、ユニットのリストを表示し、開くだけの機能になっています。
- フォーム ...: 現在のプロジェクトのフォームをリストで表示します。クリックでフォームを前面に表示します。
- ユニットの依存性を表示: 現在開いているユニットの依存性がツリー構造で表示されます。
- ユニットの情報を表示: 現在開いているユニットのサイズやパスなどの情報を表示します。
- フォーム/ユニット表示切替: ソースエディタと現在のフォームの表示を切り替え、デスクトップの前面に表示してフォーカスを与えます。
- 結果を検索: 検索結果を表示するウィンドウです。
- アンカーエディタを表示: コントロールのアンカーを細かく設定するアンカーエディタを表示します。
- コンポーネントパレットを表示: コンポーネントパレットの表示する/しないを切り替えます。
- IDEスピードボタンを表示: IDEスピードボタンの表示する/しないを切り替えます。
- デバッグウィンドウ: サブメニューから、デバッガを利用するためのウィンドウを開くことができます。デバッガも参照してください。
- IDE内部:
プロジェクト
- 新規プロジェクト ...: 新規に作成するプロジェクトの種類を選択するダイアログが表示されます。
- ファイルから新規プロジェクト ...: ソースプログラムを選択するダイアログが表示され、そのファイルを元に新規プロジェクトを作成します。
- プロジェクトを開く ...: 既存のプロジェクトファイル((.lpi: Lazarus Project Information))を開くダイアログが表示されます。
- 最近扱ったプロジェクト ...: サブメニューに表示される最近扱ったプロジェクトのリストからプロジェクトを開きます。
- プロジェクトを閉じる: 現在のプロジェクトを閉じます。
- プロジェクト保存: ファイル->保存 と同じように、現在のプロジェクトのファイルを全て保存します。プロジェクトを初めて保存する場合は、ファイル名を入力するダイアログが開きます。(「名前を付けてプロジェクト保存 ...」と同じになります。)
- 名前を付けてプロジェクト保存 ...: プロジェクト保存のダイアログが表示されるので、ファイル名を入力してプロジェクトを保存します。ファイル名の初期値は Project1.lpi ですが、別のファイル名を付けることをお勧めします。 ちなみにユニット名と同じファイル名は付けられません。(下記を参照)。
- プロジェクトを発行: プロジェクト全体の複製を生成します。 ソースとコンパイラの設定を他の人に送付する場合などに利用できます。 プロジェクトファイルが保存されているディレクトリには、多くの不要な情報 - .lpi ファイルに含まれるセッションの情報(カーソル位置や閉じられたユニットのブックマークなど)、 .ppu や .o などの中間ファイルや実行ファイル - があります。 基本となる情報とソース、サブディレクトリからなる lpi ファイルを生成するために プロジェクトを発行 を利用してください。 ダイアログには、ファイルの要不要を設定するフィルタがあります。実行後には、全体をまとめて1つのアーカイブにできます。Lazarus IDE Tools/jaを参照してください。
- プロジェクトインスペクタ: ダイアログに現在のプロジェクトのファイルをツリー状に表示します。 ここでは、ファイルの追加や削除、プロジェクトのオプションの変更ができます。
- プロジェクトオプション ...: プロジェクトオプションの設定ダイアログ(アプリケーションのタイトル、出力ファイル名、フォームの選択の可否、 セッションの情報など)を表示します。
- コンパイラオプション ...: 複数タブからなるコンパイラオプションの設定ウィンドウが表示されます。 タブは、 パス(ユニットやインクルードするファイル、ライブラリのパスやウィジェットの種類(gtk,gnome,win32など)などの設定); 構文解析(ソースを解析する際のルールの設定); コード(速度や実行ファイルの大きさなどの最適化、対象とするプロセッサの選択などの設定); リンク(デバッグにあたり静的または動的にライブラリにリンクするかどうかなどの設定); メッセージ(コンパイル時の状況表示の設定); その他(標準コンパイラ設定ファイル(fpc.cfg)を使用するかどうかなどの設定); 継承されたもの(導入されたユニットからどんなオプションが継承されたかをツリー構造で表示する); コンパイル(Makeファイルの利用やコンパイル後にファイルを実行するかどうかなどのコマンドの定義)
- プロジェクトに編集中のファイルを追加: 現在編集しているファイルをプロジェクトに追加します。
- プロジェクトから削除 ...: プロジェクトから削除できるファイルのリストが表示されます。
- ソースを表示: どのファイルを編集していても、主プログラムファイル(.lpr)または (.lpr) が無い場合は、主となる (.pas) ファイルを開きます。
実行
- 構築: 前回の構築から変更されたプロジェクトのファイル全てを構築(つまりコンパイル)します。
- すべて構築: 変更の有無に関わらず、プロジェクトのファイル全てを構築します。
- 高速コンパイル:
- 構築中止: 実行中の構築を中止します。(エラーに気づいたときや、明らかに長時間かかっているとき)
- 実行: 通常のコンパイル時に用います。コンパイルに成功するとアプリケーションを起動します。(Lazarus内では、ファイルのコピーを保存し、コンパイラとリンカを起動し、最終的にリンクされた実行形式のファイルを実行します。)
- 一時停止: 現在実行中のプログラムを一時停止します。 生成された出力の確認に利用できます。実行 でプログラムが再開します。
- トレース実行: デバッガと関連して利用され、ソースのブックマークされた箇所まで、1ステップ実行します。
- ステップ実行: ステップごとにマークされた行まで実行します。 マークされた行以降は普通の速度で実行します。 論理エラーを起こす行を判別するために役立ちます。
- カーソル位置まで実行: 普通の速度(ステップ実行とは異なり)で、カーソル位置まで実行して一時停止します。実行 でプログラムが再開します。
- 停止: 実行中のプログラムを停止します。 実行を選んでも再開はできず、プログラムを最初から実行します。(必要ならば再コンパイルした後に)
- 実行パラメーター ...: プログラム実行時のコマンドラインオプションやコマンドライン引数、表示するディスプレイ(例えば、Linuxで使用されるX端末)、オーバーライドする環境変数などの設定ウィンドウを表示します。
- このメニューの重要な利用方法として、従来どおりのPascalコンソールアプリケーションの入出力表示があります。GUIを使用しないコンソールプログラムを作成している場合、アプリケーション起動を使用にチェックを入れるとよいでしょう。 初めてコンパイル/実行したとき、次のメッセージが表示された場合、適切なファイルのパーミッションを変更する必要があります。
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied".
- 例えば、chmod +x filename や パーミッションを変更するユーティリティを利用してパーミッションを変更してください。 正しくパーミッションを設定できた場合、プログラムの実行ごとに、コンソールボックスが表示され、テキストの入出力内容(readln, writeln など)が表示されるでしょう。
- プログラムの実行後には、 "Press enter" とのメッセージが表示されます。'enter' を押すまでプログラムの出力は表示されたままです。
- 注記: 現在のバージョン(訳注:いつの時点か不明)では Window ユーザ用のコンソールコマンドはありません。 現状では、WindowXPでは以下のコマンドが有効です。 (他のwindowsについては報告お願いします。)
C:\Windows\system32\cmd.exe /C ${TargetCmdLine}
- Console Mode Pascal プログラミングでのチュートリアルも参照してください。
- デバッガをリセット: デバッガを元の状態に戻します。ブレークポイントや変数の値などは消去されます。
- ファイルを構築: 現在エディタで開いているファイルのみを構築(コンパイル)します。
- ファイルを実行: 現在エディタで開いているファイルのみを構築(コンパイル)、リンク、実行します。
- [構築+実行ファイル]を設定: 構築 を実行したときに、ファイルの構築を代わりに実行したり、作業ディレクトリやビルド時のマクロを設定するウィンドウを表示します。 この最後の3つのオプションは、テストプロジェクトを開いたり維持するのに利用できます。Use File -> Openを.lprファイルを用いるために使用し、次のダイアログでキャンセルすることで、このファイルを"normal source" ファイルとして開くことができます。
- インスペクト ...:
- 評価/変更 ...:
- 監視追加:
- ブレークポイントを追加:
パッケージ
- 新規パッケージ: パッケージエディタを開く
- 読み込みされているパッケージを開く ...: ファイルを開いたり、様々なオプションを設定したりするための、インストールされたパッケージの一覧を表示する。
- パッケージファイル(.lpk)を開く: 選択されたパッケージファイルを開く。
- 現在のユニットのパッケージを開く: 現在開かれているユニットのパッケージを開く。
- 最近扱ったパッケージを開く ...: 最近扱ったパッケージを開く。
- アクティブなユニットをパッケージに追加: 現在エディタ上にあるユニットファイルをパッケージに追加する。
- パッケージグラフ ...: パッケージグラフ によって使用中のパッケージの関係を表示する。(他のパッケージを利用していない場合、Lazarus のパッケージと FCL とLCL が表示される。)
- インストール済みパッケージを設定 ...: コンポーネントを作った場合、その設定を行う。
ツール
- カスタムツールを設定 ...: 様々な外部ツール(通常はマクロ)をツールキットに加えます。
- 構文を素早くチェック: コンパイルせずにソースの構文を素早くチェックします。 複雑なプログラムを組む際は必須の作業となります。 時間をかけたコンパイルをエラーで無駄にしたくないでしょうから。
- 閉じていないブロックを推察: 複雑にネストされたブロック構造を組んで、endを入れ忘れた際に便利です。
- 不適切に置かれたIFDEF/ENDIFを推察: 複雑にネストされたマクロ構造を組んで、ENDIFを入れ忘れた際に便利です。
- リソース文字列作成 ...: 選択された文字列をリソースセクションに置き、リソース文字列として扱えるようにします。 リソース文字列を使う利点は、文字列を修正する際のコンパイル作業が不要になることです。
- 差分: 2つのファイル(あるファイルの修正前後など)を比較し、相違点を見つけます。行頭行末の空白や改行コードの相違(CR+LFとLF)を無視するオプションがあります。 CVS更新後の変更点の確認などに便利です。
- エディタでLFMファイルをチェック: LFMファイル(現在のフォーム状態の設定を含む)を調べることができます。
- DelphiユニットをLazarusユニットへ変換 ...: DelphiアプリケーションをLazarusに移植する際に役立ちます。 ソースファイルに必要な変更を行います。Lazarus For Delphi Users/ja 及び Code Conversion Guide/jaを参照してください。
- DelphiプロジェクトをLazurusプロジェクトに変換 ...: DelphiからLazarusへの移植の際、Delphiのフォーム定義ファイルをLazarusのものに変換します。Lazarus For Delphi Users/ja と Code Conversion Guide/ja を参照してください。
- プロジェクトやパッケージの文字コードを変換 ...: プロジェクトやパッケージの文字コードを変換するダイアログを表示します。
- Lazarus を構築: 最新のダウンロードあるいは CVS ファイルを元にLazarus を再構築します。 実行したら腰を落ち着けて何が起きるか見てみましょう!(Messagesウィンドウに注目)
- "Lazarus構築"を設定: Lazarusを構築 において、どの部分をどのように再構築するか設定します。 例えば、LCLのみやサンプル以外全ての再構築などです。 LCLインターフェースの種類(ウィジェットの種類)やターゲットOS、ターゲットディレクトリを選択することもできます。
環境
- 環境オプション ...: 下記の設定ページを持つウィンドウを表示します。
- ファイル - 最近扱ったファイルのファイル数の上限、既定のディレクトリ、コンパイラディレクトリなどを設定できます。
- デスクトップ - 言語や自動保存の動作、デスクトッププロパティの保存、コンポーネントパレットやスピードボタンのヒント表示などを設定できます。
- ウィンドウ - 様々なウィンドウの大きさや動作を設定できます。
- フォームエディタ - フォーム編集時の色を設定できます。
- オブジェクトインスペクタ - 色と項目の高さを設定できます。
- バックアップ - ファイルのバックアップ方法を設定できます。
- ネーミング - Pascalファイルの拡張子(.pas, .pp, .p)、保存するファイル名を自動的に小文字化するかなどを設定できます。
- FPDocエディタ - FPDocのファイルパスを設定できます。
- エディターオプション ...: 下記の設定ページを持つウィンドウを表示します。
- 一般 - 自動インデント、括弧の強調表示、文法強調、ヒント表示、ブロックインデントとタブ幅、Undo回数の上限などを設定できます。
- 表示 - 行番号、右マージン、余白表示などの有無、エディタのフォントなどを設定できます。下部のプレビュー画面では、構文表示(注釈・コンパイラ指令など)の様子を確認できます。
- キーマッピング - キー操作を設定できます。スキームの選択では、Lazarus 風や Turbo Pascal 風などの設定もできます。
- 色 - エディタの文字の色使いを選びます。Object Pascal、C++、Perl、HTML、XML、各種シェルスクリプトなど様々な言語向けの設定があり、選択されたスキームでのプレビューを表示します。
- コードツール - 識別子の補完、ツールチップの表示速度などを設定できます。
- コードの折り畳み - コードの折り畳みの有無、区切り表示レベルを設定できます。
- コードテンプレート ...: コード補完用テンプレートを設定できます。
- デバッガオプション ...: 下記の設定ページを持つウィンドウを表示します。
- 一般 - デバッガの種類 - デバッガ無し、GNU debugger (gdb)、SSH(セキュアシェル)経由のgdb -、検索するパス名、指定するオプションを設定できます。
- イベントログ - ログを初期化するかどうか、行数の制限を設定できます。
- 言語例外 - 無視する例外を設定できます。
- OS例外 - 実行中のOSに特定のシグナルを出すことができます(未実装)。
- コードツールオプション ...: 下記の設定ページを持つウィンドウを表示します。
- 一般 - ソースの検索パスを追加指定できます。 また、移動方法を設定できます。
- コード作成 - クラス、メソッドなどのエディタが生成したコードの追加方法を設定します。
- 単語 - Pascal のキーワードの入力方法(大文字、小文字、先頭だけ大文字など)を設定できます。
- 行分割 - 改行規則(特定の文法記号、キーワードの前後など)を設定できます。
- 空白 - 自動的な空白の挿入(特定の文法記号、キーワードの前後など)を設定できます。
- 識別子補完 - 識別子の補完方法(セミコロン、代入演算子の追加)を設定できます。
- コードツール定義エディタ ...: ソースを構文解析する際の IDE の内部定義(定義、ユニット、ソースやインクルードパスなど)を見ることができます。 現行の FPC の設定から始まり、Lazarus ソースディレクトリの定義、全パッケージのディレクトリ、プロジェクトのディレクトリに至ります。これらの多くは自動生成され、読み出し専用です。
- FPCソースディレクトリを再スキャン ディレクトリ全体を調査します。 Lazarus は正しいイベントハンドラを生成したり、宣言を探索したりするために FPC のソースを利用します。 環境オプションでソースディレクトリを変更した際は、そのディレクトリに含まれるヴァージョンのソースを Lazarus が確実に利用することができるように、ディレクトリを再走査します。 しかし、Lazarus に知らされる前にディレクトリが変更されると、フォームのデザイン時や「宣言を検索する」際にエラーとなるかも知れません。 そのような場合は、次の二つのどちらかを行ってください。
- 環境オプション->ファイル->FPCソースディレクトリを確認する。
- FPCソースディレクトリを再スキャンする。
ウィンドウ
現在開いているファイル、ソースエディタなど利用可能なウィンドウのリストを表示します。 リストの名前をクリックするとそれが最前面に移動し、フォーカスが当たります。
ヘルプ
いまのところ(訳注:いつのことかは不明)、三つの項目があります。
- オンラインヘルプ Webブラウザを開き、Lazarus のロゴ(走るチーター)と Lazarus、FreePascal、Lazarus Wiki、RTL(Free Pascal Run Time Library)、FCL(Free Component Library)、LCL(Lazarus Component Library)へのリンクを表示します。
- バグを報告中 ... バグ報告の方法 How_do_I_create_a_bug_report ページを開きます。
- ヘルプを設定 ヘルプを読むためのビューワ、データベースを設定できます。 Lazarus-CCR ウェブサイト、他のウェブサイト、あるいはオフライン用のローカルに保存されたドキュメントを選ぶことができます。(ヘルプシステムが完成した暁には、ローカルなドキュメントがデフォルトになります。)
現状では、エディタのカーソルを RTL(Free Pascal Run Time Library)、FCL(Free Component Library)、LCL(Lazarus Component Library) のキーワードの上を置き <<F1>> キーを押すことで、ウェブサイトにあるヘルプを見ることができます。この項目は現在作業中です
- Lazarusについて Lazarus に関する情報を表示します。
将来的には、完全なオンラインヘルプ - Pascalの文法、IDEの使い方、コンポーネントの利用・改造・作成の方法、特定のタスクを行うためのヒント - が用意される予定です。 皆さんが現在読んでいるこの部分もそのための第一歩です。よーし、私も、と思われる方は、私達と一緒にドキュメント整備に参加してください。Wiki上での編集はとても容易です。
ボタンツールバー
小さなツールバーがメインエディタウィンドウの左、メインメニューの直下、コンポーネントパレットの左にあります。このツールバーには、メインメニューの項目の中で頻繁に用いられるものに対応する小さなボタンがあります:
- New unit(新しいユニット)、Open (開く。下向き矢印を押すと最近用いたファイルの一覧が現れます)、Save(保存)、Save all(全保存)、New Form(新しいフォーム)、Toggle Form/Unit(ユニット表示におけるフォームとソースの切り替え)、View Units(ユニットを見る)、View Forms(フォームを見る)Run(実行。コンパイルして実行します)、Pause(実行の一時停止)、Step Into(ステップイン)、Step over(ステップオーヴァー)。最後の二つはデバガ関係の機能です。
コンポーネントパレット
概要
コンポーネントパレットとは、多くのアイコンが並んだタブ付きのツールバーのことです。各アイコンは、フォームを作成する際によく用いられるコンポーネントを表しています。
それぞれのタブは機能ごとに分けられており、異なった組のアイコンからなります。 全てのタブでは、一番左に矢印のアイコンがあります。これは選択ツール(Selection Tool)と呼びます。
マウスカーソルをコンポーネントパレットのアイコンの上に移動して、しばらくクリックしないで待つと、アイコンが意味するコンポーネントの名前がポップアップします。 それらの名前がすべて 'T' で始まることに注意してください。これは、そのコンポーネントの 「型:'Type'」 、正確に言うとコンポーネントの 「クラス:'Class'」 を示しています。
コンポーネントをフォームに加えると、その Class が Unit の Interface 部の Type セクションに追加されます。(通常は TForm1 の定義の一部として) 同時に、そのクラスの instance が Var セクションに加えられます(通常、Form1という名前の変数として)。 フォームやコンポーネントが用いる Methods は、全て(つまり全ての Procedure と Function )、そのユニットの Implementation 部で宣言する必要があります。
コンポーネントのサンプルプログラム
コンポーネントのサンプルプログラムは、 $LazarusPath/lazarus/examples に保存されています。
多くのプログラムで、IDEやコンポーネントパレットを使わないでダイアログや他のコンポーネントを利用する方法が分かるでしょう。全てのコンポーネントは、明確に主となるpascalプログラムで定義されています。 IDEを大いに利用するサンプルもあります。
サンプルプログラムの中には、そのままでは動作しないものもあるでしょう。ファイルやディレクトリのパス、パーミッションを設定する必要があるかも知れません。サンプルプログラムをコンパイルするにあたり、ファイル及びディレクトリに対する 読み/書き/実行 (read/write/execute) のパーミッションを確認して下さい。または適切なパーミッションを持ったディレクトリにファイルをコピーしてください。
まずは、'testall' プログラムを実行してみましょう。利用可能なコンポーネントのメニューと簡単な実行例があります。コードを読んでどう動いているか調べてみましょう!
コンポーネントの一覧
コンポーネントの一覧を以下に示します。各ユニットには、それらの解説するページへのリンクが張ってあります(ないのもあります)。 あるコンポーネントのプロパティについて知りたければ、そのコンポーネントの継承を調べ、継承元となるコンポーネントについて調べるとよいでしょう。 例えば、TMaskEdit について理解することは、 TCustomMaskEditについて調査する際にも役に立ちます。
タブの名前 (タブ自体の名前がおよその説明になっています。)
- Standard (基本:コンポーネントの記述は、Standard tab にあります。)
- TMainMenu, TPopupMenu, TButton, TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox,TRadioGroup, TCheckGroup, TPanel, TActionList
- Additional (追加:コンポーネントの自体は、Additional tab もご覧下さい。)
- TBitBtn, TSpeedButton, TStaticText, TImage, TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, TTrayIcon, TMaskEdit, TCheckListBox, TScrollBox, TApplicationProperties, TStringGrid, TDrawGrid, TPairSplitter, TColorBox, TColorListBox, TChart
- Common Controls (コンポーネントの記述は、 Common Controls tab にあります。)
- TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TTabControl, THeaderControl, TImageList, TPopupNotifier
- Dialogs (コンポーネントの記述は、 Dialogs tab にあります。)
- TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TFindDialog, TReplaceDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog, TPrinterSetupDialog, TPrintDialog, TPageSetupDialog
パレットに含まれていませんが、他にもいくつかの便利な ダイアログ手続きや関数があります。それらはソースプログラムから直接に呼び出せ、簡単に利用できます。
- Misc(その他)
- TColorButton, TSpinEdit, TFloatSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox, TXMLPropStorage, TIniPropStorage, TBarChart, TButtonPanel, TIDEDialogLayoutStorage
- Data Controls(データの制御。Standard及びAdditionalグループに似ていますが、データベースに適用できます)
- TDBNavigator, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox, TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TDBGrid
- Data Access(データへのアクセス)
- TDatasource, TMemDataset, TSdfDataSet, TFixedFormatDataSet, TDbf
- System(システム)
- TTimer, TIdleTimer, TLazComponentQueue, THtmlHelpDatabase, THtmlBrowserHelpViewer, TProcessUTF8, TAsyncProcess, TProcess, TSimpleIPCClient, TSimpleIPCServer, TXMLConfig, TEventLog
- SynEdit(SynEdit:他の言語や開発ツールへのインターフェースとなるコンポーネントsourceforge)
- TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynFreePascalSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynPythonSyn, TSynVBSyn, TSynAnySyn, TSynMultiSyn
SynEditは、 Borland Delphi, Kylix と C++Builder用の複数行編集コントロールであり、文法ハイライト機能やコード補完機能、HTMLやTeX、RTFへのエクスポート機能を持っています。これは完全なVCL/CLXコントロールであり、Microsoft Windows のコントロールのラッパーではなく、ランタイムライブラリを必要としない、クロスプラットフォームで利用できるコンポーネントです。FreePascalとの互換性も計画されており、 Lararus IDE をエディタも SynEditが利用されています。sourceforgeも参照ください。
コンポーネントパレットの使い方
コンポーネントパレットの利用にあたっては、フォームが作成されており、エディタ上で見えている必要があります(フォームが無い場合は、 File -> New Form で新たなフォームが作成してください)。 次に、使いたいコンポーネントのアイコンをクリックして選択し、フォーム上のコンポーネントを配置したい位置でクリックすることで、選択されたコンポーネントが配置されます。 コンポーネントの移動やサイズの調整は、マウスで直接操作することでもできますし、コンポーネントのプロパティの値をオブジェクトエディタから直接操作することでもできます。
コンポーネントを新たに追加したときには(自作や他のパッケージから追加するなど)、コンポーネントパレットに新しいタブが現れ、コンポーネントに応じたアイコンが表示されます。それらは他のコンポーネントと同様に使用できます。
デバッガ
- (まだ書かれていません)
Lazarusのファイルについて
ファイルの保存操作をすると、次の二つのファイルを保存することになります:
xxx.pas yyy.lpr
他にも保存されるファイルはありますが、あなたが名前をつけられるのはこの二つです。 プロジェクトファイル (lpr) 及びユニットファイル (pas) は同じ名前であってはいけません。Lazarus はユニットの名前(ソースコードに現れる名前)をユニットファイル名(xxxの部分)と同じになるように、またプログラムの名前をプロジェクトファイル名(yyyの部分)と同じになるように設定するので、同じになっていると、プロジェクト中で識別子が重複してしまいます。 一貫性を維持するため、project1 や、unit1 に適当な名前をつけましょう。
たとえば、again という名前のプロジェクトを保存しようとする際に、again.pas と again.lpr という名前で保存しようとするとうまくいきません。ユニット名とプログラム名は同じプロジェクト中にあるため、名前が重複したというエラー duplicate name error になります。
そこで、次のようになりました:
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
二つのファイル (again.lpr、againu.pas) を保存したと思っていたのに、もっと多くのファイルが保存されています。
それぞれのファイルの簡単な説明をしておきましょう:
- again.exe:
- メインプログラムのバイナリ実行ファイルです。Win32では拡張子"exe"がつきます。Linux(やMac OS X)では何もつきません。デバッグ用のシンボルを含むために、Linuxでは巨大なファイルになります。"strip"コマンドでそれらを除去すると実行ファイルを小さくすることができます。
- again.lpi:
- Lazarus プロジェクトのメインファイルです (Lazarus Project Information); Delphi でこれと同等なものが .dpr です。このファイルは XML フォーマットで保存されます。
- again.lpr:
- メインプログラムのソースファイルです。Lazarus特有の拡張部分を除くと、実際にはごく普通の Pascal ソースファイルです。
uses節があり、コンパイラはその記述に従って必要な全ユニットを見つけます。Program 宣言の名前はファイル名と一致する必要があります。
- againu.lfm:
- フォームユニットのレイアウトを格納します。Lazarus はこれを用いてリソースファイルを生成し、それが againu.pas の初期化セクション でインクルードされます。 Lazarus IDE の Tools->Convert DFM file to LFM utility を用いると、Delphi の dfm ファイルをlfmに変換することができます。
- againu.lrs:
- 生成されたリソースファイルです。Windows のリソースファイルとは異なります。
- againu.pas:
- このユニットにフォームのコードを書きます。
- againu.ppu:
- ユニットをコンパイルしたオブジェクトコードです。
- ppas.bat:
- プログラムをリンクし実行ファイルを作るための簡単なスクリプト(バッチファイル)です。コンパイルが成功すれば、コンパイラによって削除されます。
Original contributors and changes
This page has been imported from the epikwiki version.
- Created initial page and template. T. Lisjac - 11/04/2003 VlxAdmin
- Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 User:Kirkpatc
- Per above, moved Chris's writeup to the main body of the tutorial VlxAdmin
- Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 User:Kirkpatc
- Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 User:Kirkpatc
- Added screenshots and revised some of the page formatting VlxAdmin 3/25/2004
- Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 User:Kirkpatc
- Formatted, added credits and comments. Removed original notes. VlxAdmin 3/26/2004
- More material added to Editor section of tutorial. 26 Mar 2004 User:Kirkpatc
- More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 User:Kirkpatc
- Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 User:Kirkpatc
- Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 User:Kirkpatc
- Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 User:Kirkpatc
- Added some more to the description of the Editor Main Menu. 18 Apr 2004 User:Kirkpatc
- Added section on Environment sub-menu. 19 Apr 2004 User:Kirkpatc
- Added section on Components sub-menu. 4 May 2004 User:Kirkpatc
- Adding Tools sub-menu description (incomplete). 7 May 2004 User:Kirkpatc
- Added some screenshots to Menu descriptions. 9 May 2004 User:Kirkpatc
- Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 User:Kirkpatc
- More additions to Tools sub-menu. 19 May 2004 User:Kirkpatc
- Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 User:Kirkpatc
- Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 User:Kirkpatc
- Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 User:Kirkpatc
- Expanding on the Components Palette. 5 June 2004 User:Kirkpatc
- Added a lot to the DialogExamples page. 10 June 2004 User:Kirkpatc
- Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 User:Kirkpatc
- Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 User:Kirkpatc
- Added page for Common Controls (linked to Component Palette). 16 June 2004 User:Kirkpatc
- Added MaskEdit page (linked to Component Palette). 17 June 2004 User:Kirkpatc
- Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 User:Kirkpatc
- Edited MainMenu component description page. 23 June 2004 User:Kirkpatc
- Some additions to Common Controls. 28 June 2004 User:Kirkpatc
- A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 User:Kirkpatc
- Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July User:Kirkpatc
- Added FormsTxt, component description page for Component Palette. 20 July 2004 User:Kirkpatc
- Some corrections to ConsoleModePascal. 21 July 2004 User:Kirkpatc
- Some small changes to ComponentPalette. 22 July 2004 User:Kirkpatc
- Some edits and additions to the Lazarus Component section. 23th Jan 2009 User: Miyatake