今回紹介するプログラムは,所謂HelloWorldで,画面にHelloWorldと表示するだけの極々簡単なプログラムです。今回は,実際にHelloWorldプログラムを見ながら,プログラムの大枠を紹介して,次回以降にそれらの詳しい説明を進めて行くことにします。
ソース
解説に先立ち,サンプルコード全体を以下に示します。HelloWorld.mod
MODULE HelloWorld;
FROM
	GraphicWindows
IMPORT
	Window,
	OpenGraphicWindow,
	CloseGraphicWindow,
	SetPen,
	WriteString;
FROM
	EventBase
IMPORT
	mouseDown,
	Point,
	EventRecord,
	PushTask,
	PopTask,
	PollEventTasks;
VAR
	wndHello	:Window;
	blnDone		:BOOLEAN;
	tskMouse	:INTEGER;
PROCEDURE TrackMouse(VAR recEvent :EventRecord)	:BOOLEAN;
BEGIN
	IF recEvent.what = mouseDown THEN
		blnDone := TRUE;
		RETURN TRUE
	ELSE
		RETURN FALSE
	END
END TrackMouse;
PROCEDURE WriteHello(wndArg :Window);
BEGIN
	SetPen(wndArg,10,10);
	WriteString(wndArg,"hello,world!")
END WriteHello;
BEGIN
	OpenGraphicWindow(wndHello,50,50,100,50,"hello,world!",WriteHello);
	tskMouse := PushTask(TrackMouse);
	REPEAT
		PollEventTasks
	UNTIL blnDone;
	PopTask(tskMouse);
	CloseGraphicWindow(wndHello)
END HelloWorld.
解説
MODULE HelloWorld;
FROM
	GraphicWindows
IMPORT
	Window,
	OpenGraphicWindow,
	CloseGraphicWindow,
	SetPen,
	WriteString;
FROM
	EventBase
IMPORT
	mouseDown,
	Point,
	EventRecord,
	PushTask,
	PopTask,
	PollEventTasks;
VAR
	wndHello	:Window;
	blnDone		:BOOLEAN;
	tskMouse	:INTEGER;
PROCEDURE TrackMouse(VAR recEvent :EventRecord)	:BOOLEAN;
BEGIN
	IF recEvent.what = mouseDown THEN
		blnDone := TRUE;
		RETURN TRUE
	ELSE
		RETURN FALSE
	END
END TrackMouse;
PROCEDURE WriteHello(wndArg :Window);
BEGIN
	SetPen(wndArg,10,10);
	WriteString(wndArg,"hello,world!")
END WriteHello;
BEGIN
	OpenGraphicWindow(wndHello,50,50,100,50,"hello,world!",WriteHello);
	tskMouse := PushTask(TrackMouse);
	REPEAT
		PollEventTasks
	UNTIL blnDone;
	PopTask(tskMouse);
	CloseGraphicWindow(wndHello)
END HelloWorld.
BEGINは,モジュールのメイン部分が始まることを示し,対して対になるENDはメイン部分の終了を示すとともに,モジュール自体がここで終わることをも示します。
この部分では,Windowを作成し,マウスイベント処理を組込み,イベントを待ち,最後にイベント処理及び作成されたWindowを削除する,という一連の処理を行っています。(詳しくは次回以降に説明します。)
お試し
さて,プログラムを入力して,コンパイル・リンクしてみましょう。どうでしょうか?以下のキャプチャの様に,うまいことHelloWorldプログラムが実行されてましたでしょうか?(クリックすると終了します。)