توابع فورم
کد:
procedure addCommand(cmd: command);
این تابع برای اضافه کردن یک کامند به صفحه نمایش دستگاه استفاده میشود
توجه داشته باشبد بعضی از موبایلها مانند موتورلا بدون فراخوانی تابع repaintبعد از این تابع کامند را ایجاد نمیکنند پس بعد از استفاده از تابع addCommand حتما از تابع repaint استفاده کنید
کد:
function choiceAppendString(choiceID: integer; itemText:string):integer;
اضافه کردن متن به یک choice group با استفاده از id آن
کد:
var choiceGroupID: integer;
NY, LA: integer;
begin
showForm;
choiceGroupID := formAddChoice('Where do you live?', CH_EXCLUSIVE);
NY := choiceAppendString(choiceGroupID, 'New York');
LA := choiceAppendString(choiceGroupID, 'Los Angeles');
end.
کد:
function choiceAppendStringImage(choiceID: integer; itemText:string; img:image):integer;
اضافه کردن یک متن و عکس به یک choice group با استفاده از id آن
کد:
var choiceGroupID: integer;
NY, LA: integer;
begin
showForm;
choiceGroupID := formAddChoice('Where do you live?', CH_EXCLUSIVE);
NY := choiceAppendStringImage(choiceGroupID, 'New York', loadImage('/NY.png'));
LA := choiceAppendStringImage(choiceGroupID, 'Los Angeles', loadImage('/LA.png'));
end.
کد:
function choiceGetSelectedIndex(choiceID: integer):integer;
ایندکس ایتم انتخاب شده در choice group را برمیگرداند اگر ایتمی انتخاب نشده باشد مقدار 1- را برمیگرداند
کد:
function choiceIsSelected(choiceID: integer; itemIndex:integer):boolean;
اگر ایتم مورد نظر در choice group انتخاب شده باشد مقدار درستی در غیر این صورت مقدار نادرستی برمیگرداند
کد:
var choiceGroupID: integer;
NY, LA: integer;
begin
showForm;
choiceGroupID := formAddChoice('Where do you live?', CH_EXCLUSIVE);
NY := choiceAppendStringImage(choiceGroupID, 'New York', loadImage('/NY.png'));
LA := choiceAppendStringImage(choiceGroupID, 'Los Angeles', loadImage('/LA.png'));
if choiceIsSelected(choiceGroupID, NY) then
formAddString('New York');
else
formAddString('Los Angeles');
end.
تمام المانها و کامندهای روی یک فورم را حذف میکند
کد:
var label_id, textField_id: integer;
begin
label_id := formAddString('Hello world');
textField_id := formAddTextField('Enter your name', 'Mr.Smith', 20, TF_ANY);
showForm;
delay(2000);
clearForm;
delay(2000);
end.
کد:
function createCommand(label:string; commandType:integer; priority:integer): command;
از این تابع برای ایجاد یک کامند استفاده میشود
توجه داشته باشید label کامند باید کوتاه باشد حق تقدم کامند بر اساس priority مشخص میشود عدد پایینتر یعنی تقدم بالا و عدد بالاتر یعنی تقدم پایینتر و مقدار commandType نوع کامند را مشخص میکند که میتواند مقادیر زیر باشد
کد:
CM_SCREEN - any command type
CM_BACK
CM_CANCEL
CM_OK
CM_HELP
CM_STOP
CM_EXIT
CM_ITEM
var exitCmd, pauseCmd: command
کد:
;
begin
exitCmd := createCommand('Exit', CM_EXIT, 1);
pauseCmd := createCommand('Pause', CM_SCREEN, 1);
addCommand(exitCmd);
addCommand(pauseCmd);
end.
کد:
function emptyCommand: command;
این تابع مقدار nonclicked را برمیگرداند واز این تابع معمولا برای چک کردن کلیک شدن یک کامند مورد استفاده قرار میگیرد
کد:
var ok, clicked: command;
begin
ok := createCommand('OK', CM_OK, 1);
addCommand(ok);
repeat
clicked := getClickedCommand;
until clicked <> emptyCommand;
if clicked = ok then halt else doSomething...
end.
کد:
function formAddChoice(label:string; choiceType:integer):integer;
این تابع یک choice group به فورم اضافه میکند و id ان choice group را برمیگرداند .مقدار choiceType میتواند 2 مقدار زیر را داشته باشد
کد:
CH_EXCLUSIVE:1 ایتم فقط انتخاب شود
CH_MULTIPLE: تعداد دلخواه ایتم میتواند انتخاب شود
کد:
function formAddDateField(label: string; type:integer): integer;
اضافه کردن فیلد تاریخ و زمان به فورم مقدار type میتواند مقادیر زیر را داشته باشد
کد:
DF_DATE – فقط تاریخ
DF_TIME – فقط زمان
DF_DATE_TIME – نمایش تاریخ و زمان با هم
کد:
function formAddGauge(label:string; isInteractive:boolean; maxValue, initialValue:integer): integer;
اضافه کردن یک Gauge به فورم و مقدار id آن Gauge را برمیگرداند.توجه داشته باشید اگر مقدار isInteractive را برابر False قرار دهید دریگر مقدار Gauge را نمیتوانید تغییر دهید
کد:
function formAddImage(i:image):integer;
اضافه کردن یک کنترل عکس به فورم و id کنترل را برمیگرداند
کد:
var image_id: integer;
begin
image_id := formAddImage(loadImage('/logo.png'));
showForm;
delay(2000);
end.
کد:
function formAddSpace:integer;
برای ایجاد فاصله بین کنترلهای روی فورم مورد استفاده قرار میگیرد و id کنترل را برمیگرداند
کد:
var label_id, space_id, textField_id: integer;
begin
label_id := formAddString('Hello world');
space_id := formAddSpace();
textField_id := formAddTextField('Enter your name', 'Mr.Smith', 20, TF_ANY);
showForm;
delay(2000);
end.
کد:
function formAddString(s:string):integer;
برای ایجاد یک label (متن غیر قابل تغییر)روی فورم بکار میرود و id انرا برمیگرداند
کد:
var label_id: integer;
begin
label_id := formAddString('Hello world');
showForm;
delay(2000);
end.
کد:
function formAddTextField(prompt, defaultValue: string; maxSize: integer; constraints:integer): integer;
این تابع یک text field روی فورم ایجاد کرده و id انرا برمیگرداند. Promptمقداری که بعدا در تکست فیلد نمایش داده میشود defaultValue مقدار پیش فرض maxSize حداکثر طول کاراکترها که در تکست فیلد قرار میگیرد constraints که میتواند دارای مقادیر زیر باشد
کد:
TF_ANY – هر کاراکتری را قبول میکند
TF_EMAIL – فقط ادرس ایمیل میتوان در ان وارد کرد
TF_NUMERIC – فقط میتوان عدد در ان وارد کرد
TF_PHONENUMBER – فقط میتوان شماره تماس در آن وارد کرد
TF_URL – فقط میتوان ادرس اینترنتی در آن وارد کرد
کد:
var textField_id: integer;
begin
textField_id := formAddTextField('Enter your name', 'Mr.Smith', 20, TF_ANY);
showForm;
delay(2000);
end.
کد:
function formGetDate(index: integer): integer;
مقدار ساعت و تاریخ را در یک date filed قرار میدهد که یک مقدار عددی بر حسب ثانیه از 1 ژانویه 1970 میباشد که باید id آن date filed را به این تابع ارسال کنید
کد:
function formGetText(textFieldID:integer):string;
متن درون یک تکست فیلد را برمیگرداند.توجه داشته باشید که id تکست فیلد مورد نظر را باید به این تابع ارسال کنید
کد:
function formGetValue(gaugeID:integer):integer;
مقدار یک gauge را برمیگرداند . توجه داشته باشید که id آن gauge مورد نظر را باید به این تابع ارسال کنید
کد:
procedure formRemove(item:integer);
کنترل مورد نظر را از فورم حذف میکند. توجه داشته باشید که id کنترل مورد نظر را باید به این تابع ارسال کنید
کد:
procedure formSetDate(index: integer; dateTime: integer);
مقدار درون یک date filed را میتوان با این تابع تغییر داد.توجه داشته باشید اگر نوع date filed برابر با DF_TIME باشد باید مقدار dateاز DateTime آن برابر با 0 باشد
کد:
procedure formSetText(textFieldID:integer; text:string);
تغییر متن یک تکست فیلد با استفاده از ایدی آن
p
کد:
rocedure formSetValue(gaugeID:integer; value:integer);
تغییر مقدار یک gauge با استفاده از ایدی آن
کد:
function getClickedCommand: command;
اخرین کامندی که کلیک شده را برمیگرداند
کد:
var exitCmd, clicked: command;
begin
exitCmd := createCommand('Exit', CM_EXIT, 1);
addCommand(exitCmd);
repeat
clicked := getClickedCommand;
until clicked <> emptyCommand;
end.
کد:
function getFormTitle: string;
عنوان فورم جاری را برمیگرداند
کد:
function getTextBoxString:string;
متن درون تکست باکس را برمیگرداند
کد:
var cont : command;
quote : string;
begin
showTextBox('Enter your favorite quote', 'To be or not to be', 200, TF_ANY);
cont := createCommand('Continue', CM_SCREEN, 1);
addCommand(cont);
repeat
delay(100);
until getClickedCommand <> emptyCommand;
quote := getTextBoxString;
...
end.
کد:
function menuAppendString(text: string): integer;
پیوست یک ایتم به منو و برگرداندن ایدی ایتم جدید
کد:
var tetris, minesweeper, snake : integer;
play, clicked : command;
begin
showMenu('Select a game', CH_IMPLICIT);
tetris := menuAppendString('Tetris');
minesweeper := menuAppendString('Minesweeper');
snake := menuAppendString('Snake');
play := createCommand('Play', CM_SCREEN, 1);
addCommand(play);
repeat
delay(100);
clicked := getClickedCommand;
until clicked = play;
showCanvas; // show canvas and remove menu from the screen
if menuGetSelectedIndex = tetris then playTetris;
if menuGetSelectedIndex = minesweeper then playMinesweeper;
if menuGetSelectedIndex = snake then playSnake;
...
end.
کد:
function menuAppendStringImage(text: string; img:image): integer;
پیوست کردن یک ایتم با عنوان و عکس به منو و برگرداندن ایدی ایتم جدید
کد:
var tetris, minesweeper, snake : integer;
play, clicked : command;
begin
showMenu('Select a game', CH_IMPLICIT);
tetris := menuAppendStringImage('Tetris', loadImage('/tetris.png'));
minesweeper := menuAppendStringImage('Minesweeper', loadImage('/mine.png'));
snake := menuAppendStringImage('Snake', loadImage('/snake.png'));
play := createCommand('Play', CM_SCREEN, 1);
addCommand(play);
repeat
delay(100);
clicked := getClickedCommand;
until clicked = play;
showCanvas; // show canvas and remove menu from the screen
if menuGetSelectedIndex = tetris then playTetris;
if menuGetSelectedIndex = minesweeper then playMinesweeper;
if menuGetSelectedIndex = snake then playSnake;
...
end.
کد:
function menuGetSelectedIndex: integer;
ایدی منوی انتخاب شده را برمیگرداند اگر منویی انتخاب نشده باشد مقدار 1- را برمیگرداند
کد:
var tetris, minesweeper, snake : integer;
play, clicked : command;
begin
showMenu('Select a game', CH_IMPLICIT);
tetris := menuAppendStringImage('Tetris', loadImage('/tetris.png'));
minesweeper := menuAppendStringImage('Minesweeper', loadImage('/mine.png'));
snake := menuAppendStringImage('Snake', loadImage('/snake.png'));
play := createCommand('Play', CM_SCREEN, 1);
addCommand(play);
repeat
delay(100);
clicked := getClickedCommand;
until clicked = play;
showCanvas; // show canvas and remove menu from the screen
if menuGetSelectedIndex = tetris then playTetris;
if menuGetSelectedIndex = minesweeper then playMinesweeper;
if menuGetSelectedIndex = snake then playSnake;
...
end.
کد:
function menuIsSelected(index: integer): boolean;
اگر اندیس مورد نظر در منو انتخاب شده باشد مقدار درستی در غیر این صورت مقدار نادرستی برمیگرداند
کد:
var tetris, minesweeper, snake : integer;
play, clicked : command;
begin
showMenu('Select a game', CH_IMPLICIT);
tetris := menuAppendStringImage('Tetris', loadImage('/tetris.png'));
minesweeper := menuAppendStringImage('Minesweeper', loadImage('/mine.png'));
snake := menuAppendStringImage('Snake', loadImage('/snake.png'));
play := createCommand('Play', CM_SCREEN, 1);
addCommand(play);
repeat
delay(100);
clicked := getClickedCommand;
until clicked = play;
showCanvas; // show canvas and remove menu from the screen
if menuIsSelected(tetris) then playTetris;
if menuIsSelected(minesweeper) then playMinesweeper;
if menuIsSelected(snake) then playSnake;
...
end.
کد:
procedure playAlertSound;
اجرای یک صدا وابسته به اخطار
کد:
var cm : command;
begin
showAlert('Message', 'New message arrived', loadImage('/img1.png'), ALERT_INFO);
playAlertSound;
cm := createCommand('OK', CM_OK, 1);
addCommand(cm);
repeat
delay(100);
until getClickedCommand <> emptyCommand;
showForm; // this will clear alert from the screen
...
end.
کد:
procedure removeCommand(cmd: command);
حذف یک کامند از صفحه نمایش دستگاه
کد:
procedure removeFormTitle;
حذف عنوان فورم
کد:
procedure setFormTitle(title: string);
تغییر عنوان فورم
کد:
procedure showAlert(title: string; message:string; img:image; alertType:alert);
نمایش پیغام بر روی صفحه title عنوان پیغام message متن پیغام alertType میتواند یکی از مقادیر زیر را دارا باشد
کد:
ALERT_INFOاطلاعات
ALERT_WARNINGاخطار
ALERT_ERRORخطا
ALERT_ALARMپیغام
ALERT_CONFIRMATION تایید
کد:
var cm : command;
begin
showAlert('New message', 'You have just received a message from MrSmith', loadImage('/img1.png'), ALERT_INFO);
playAlertSound;
cm := createCommand('Read', CM_OK, 1);
addCommand(cm);
repeat
delay(100);
until getClickedCommand <> emptyCommand;
showForm; // this will clear alert from the screen
...
end.
کد:
procedure showCanvas;
ترسیم بر روی صفحه نمایش دستگاه.دستگاه میتواند یک فورم با کلیه اجرا یا یک ترسیم با کلیه اجزا را نمایش دهد
کد:
var label_id, textField_id: integer;
begin
label_id := formAddString('Hello world');
textField_id := formAddTextField('Enter your name', 'Mr.Smith', 20, TF_ANY);
showForm;
delay(2000);
showCanvas;
drawText('Hello world', 0, 0);
repaint;
delay(2000);
end.
از این تابع برای نمایش یک فورم روی صفحه نمایش دستگاه استفاده میشود.یک فورم میتواند دارای المانها و رابطهای کاربری مانند تکست فیلد و دیتا فیلد و ... باشد
کد:
var label_id, textField_id: integer;
begin
label_id := formAddString('Hello world');
textField_id := formAddTextField('Enter your name', 'Mr.Smith', 20, TF_ANY);
showForm;
delay(2000);
end.
کد:
procedure showMenu(title:string; menuType:integer);
یک منو را در صفحه نمایش دستگاه نشان میدهد. menuType میتواند یکی از مقادیر زیر باشد
کد:
CH_IMPLICIT – انتخاب دلخواه
CH_EXCLUSIVE – به هر ایتم یک رادیو باتن اضافه میشود
CH_MULTIPLE – شما میتوانید چند ایتم انتخاب کنید
کد:
var tetris, minesweeper, snake : integer;
play, clicked : command;
begin
showMenu('Select a game', CH_IMPLICIT);
tetris := menuAppendString('Tetris');
minesweeper := menuAppendString('Minesweeper');
snake := menuAppendString('Snake');
play := createCommand('Play', CM_SCREEN, 1);
addCommand(play);
repeat
delay(100);
clicked := getClickedCommand;
until clicked = play;
showCanvas; // show canvas and remove menu from the screen
if menuGetSelectedIndex = tetris then playTetris;
if menuGetSelectedIndex = minesweeper then playMinesweeper;
if menuGetSelectedIndex = snake then playSnake;
...
end.
procedure showTextBox(title: string; initialContents: string; maxSize: integer; constraints: integer);
نمایش تکست باکس در صفحه.تکست باکس کل صفحه نمایش دستگاه را اشغال کرده و به جز کامند چیزی روی آن قرار نمیگیرد.مقدار constraints میتواند یکی از مقادیر زیر را دارا باشد
کد:
TF_ANY – هر کاراکتری مجاز است
TF_EMAIL – فقط آدرس ایمیل در آن قرار گیرد
TF_NUMERIC – فقط عدد در آن قرار گیرد
TF_PHONENUMBER – فقط شماره تماس در آن قرار گیرد
TF_URL – فقط آدرس وب URL در آن قرار گیرد
مثال:
کد:
var cont : command;
quote : string;
begin
showTextBox('Enter message, '', 200, TF_ANY);
cont := createCommand('Send', CM_SCREEN, 1);
addCommand(cont);
repeat
delay(100);
until getClickedCommand <> emptyCommand;
quote := getTextBoxString;
...
end.