توابع کار با sound
گرفتن طول یک اهنگ که در پلیر لود شده بر حسب میلی ثانیه
کد:
function getPlayerDuration:integer;
باز کردن یک ریسورس در پلیر موبایل
کد:
function openPlayer(resource:string; mimetype:string):boolean;
مقدار mimetype میتواند به صورت زیر باشد
کد:
wave files: audio/x-wav
au files: audio/basic
MP3 files: audio/mpeg
MIDI files: audio/midi
مثال:
کد:
begin
if not openPlayer('/explosion.mid', 'audio/midi') then halt;
if not setPlayerCount(-1) then halt;
if not startPlayer then halt;
delay(5000);
end.
این تابع همانند دکمه تکرار عمل میکند و میتوانید مشخص کنید یک اهنگ چند بار تکرار شود
کد:
function setPlayerCount(loopCount:integer):boolean;
اجرای آهنگ لود شده در پلیر
کد:
function startPlayer:boolean;
اجرای آهنگ در پلیر را متوقف میکند
کد:
procedure stopPlayer;
نوشتن اولین برنامه
نرم افزار MIDletPascal را باز کنید. از منوی فایل new و سپس project را بزنید. و نامی برای پروژه خود انتخاب کنید. و okکنید حالا در محیط کد نویسی کدهای زیر را بنویسید و برای اجرا از منوی Project ابتدا Build Project را بزنید و سپس Run MIDlet را بزنید. یا می توانید Build and Run را بزنید. که هر دو کار را با هم انجام بدهید. یا با کلید F9 همین کار را انجام خواهید داد یا از ساید باز سمت راست یکی از این دکمه ها را انتخاب کنید
کد:
program HelloWorld;
begin
DrawText ('Hello, World!', 0, 0);
Repaint;
Delay(2000);
end.
.
بعد از اجرا فایل نهایی ساخته شده و ادرس ان در انتهای پنجره Message نمایش داده میشود مانند زیر
Launching cmd /A /C "C:\NewProject\bin\HelloWord.jad"
که فایل مورد نظر را از ادرس فوق برداشته و به گوشی منتقل کنید
کشیدن دایره:
کد:
program NewProject;
begin
drawEllipse(0, 0, getWidth, getHeight);
repaint;
delay(6000);
end.
یک دایره می کشد.
نوشتن functionوprocedure
Procedures ها زیر برنامه هایی هستند که مقدار خروجی ندارند وبطورکلی چیزی را برنمی گردانند.درمثال زیر دو پروسیجر نوشته شده است است که یکی از آنها بدون پارامتر ورودی و دیگری دارای دوپارامتر ورودی است:
کد:
program procedureSample;
var
n: integer; { this variable is visible in main
program block and in all functions
and procedures }
procedure noArgs;
begin
n := 5;
end;
procedure twoArgs(a: integer; b: string);
var len: integer; { this variable can be accessed only
from within the procedure and is
reinitialized every time that the
procedure is called }
begin
len := length(b);
n := a + len;
end;
begin
noArgs; { call the first procedure }
twoArgs(n, 'Some string'); { call the second procedure }
end.
و Functions ها زیر برنامه هایی هستند که مقداری را بعنوان خروجی باید برگردانند. Functions همانند پروسیجرها هستند ولی با این تفاوت که مقداری را باید بعنوان خروجی برگردانند.
کد:
program functionSample;
var result: integer;
{ this simple function always returns 5 }
function returnFive: integer;
begin
returnFive := 5;
end;
function multiply(a, b: integer): integer;
begin
multiply := a * b;
end;
begin
result := multiply(2, returnFive); { call the multiply function
where on argument is value
returned by calling the
other function }
end.
می توانید از کلمه کلیدی result برای برگرداندن مقدار در توابع استفاده نمایید.در مثال زیر طرز استفاده را خواهید دید:
کد:
function Return4: integer;
begin
result := 4;
end;
برای خروج از یک تابع را رویه در هر لحظه میتوانید از دستور Exit استفاده کنید
همچنین می توان func هایی بصورت بازگشتی نوشت.همانند زیر که حالت فاکتوریل را پیاده سازی کرده ایم:
کد:
program recursionSample;
var factorielOfFive: integer;
function factoriel(n: integer): integer;
begin
if n = 1 then
factoriel := 1;
else
factoriel := n * factoriel(n-1);
end;
begin
factorielOfFive := factoriel(5);
end.
حالت زیر را درنظر بگیرید:
کد:
procedure a (x: integer);
begin
...
b(x);
...
end;
procedure b(y: integer);
begin
...
a(y);
...
end;
begin
a(5);
end.
خوب همانطورکه میبینید پروسیجر a پروسیجر b را فراخوانی میکند و باز از درون پروسیجر b نیز پروسیجر a نیز فراخوانی میشود.که کامپایلر پیغام خطا میدهد که برای رفع این مشکل بصورت زیر عمل می کنیم:
کد:
procedure b(y:integer); forward;{ the forward reference tells
compiler that procedure 'b' will
be defined somewhere in the program code }
procedure a (x: integer);
begin
...
b(x);
...
end;
procedure b(y: integer);
begin
...
a(y);
...
end;
begin
a(5);
end.
که این تکنیک و حالت را forward references گویند.