۱۷-بهمن-۱۳۹۱, ۱۵:۳۵:۵۶
توابع کار با 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;
کد:
Procedure 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.
کد:
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.