Для создания новвого приложения выбираем File > New > bada C++/Flash Application Project
Напишите имя вашего проекта, выберите тип проекта (bada form Based Application) нажмите Next или Finish.
Мы получили проект приложения Hello bada с одной формой.
Добавим на форму из панели инструментов элемент TextBox, два элемента EditField и один Button простым перетаскиванием указанных элементов, как показано ниже.
В окне свойств
изменим имена полей и кнопки на следующие:
IDC_TEXTBOX_REZ,
IDC_EDITFIELD_A,
IDC_EDITFIELD_B,
IDC_BUTTON_CLEAR.
Также установим свойство Text для кнопки установим “Clear”.
Далее добавим обработчик события для кнопки IDC_BUTTON_CLEAR. Для этого необходимо в дизайнере правой кнопкой мыши вызвать контекстное меню и выбрать Add event handler.
В появившемся окне выбираем IActionEventListener и указываем в поле Action ID идентификатор.
После этого мы переходим к обработчику OnActionPerformed
Void
Form1::OnActionPerformed (const Osp::Ui::Control& source, int actionId)
{
switch (actionId)
{
case ID_BUTTON_OK:
{
AppLog("OK Button is clicked! \n");
}
break;
default:
break;
}
}
Как мы видим, здесь уже присутствует код для кнопки, которая была добавлена в приложение по умолчанию. Сюда же нам необходимо добавить код который будет выполняться при нажатии на кнопку которую мы добавили.
Добавим в заголовочный файл формы переменные для добавленных элементов, а также идентификатора действия для кнопки IDC_BUTTON_CLEAR:
static const int ID_BUTTON_CLEAR = 200;
Osp::Ui::Controls::Button *__pButtonOk;
Osp::Ui::Controls::Button *__pButtonClear;
Osp::Ui::Controls::EditField *__pEditBoxA;
Osp::Ui::Controls::EditField *__pEditBoxB;
Osp::Ui::Controls::TextBox *__pTextBoxRez;
Также изменим метод инициализации формы и обработчик события следующим образом:
Form1::OnInitializing (void)
{
result r = E_SUCCESS;
// TODO: Add your initialization code here
// Get a button via resource ID
__pButtonOk = static_cast <Button *>(GetControl (L"IDC_BUTTON_OK"));
if (__pButtonOk!= null)
{
__pButtonOk-> SetActionId (ID_BUTTON_OK);
__pButtonOk-> AddActionEventListener (* this);
}
__pButtonClear = static_cast <Button *>(GetControl ("IDC_BUTTON_CLEAR"));
if (__pButtonClear!= null)
{
__pButtonClear-> SetActionId (ID_BUTTON_CLEAR);
__pButtonClear-> AddActionEventListener (* this);
}
__pEditBoxA = static_cast <EditField *>(GetControl ("IDC_EDITFIELD_A"));
__pEditBoxB = static_cast <EditField *>(GetControl ("IDC_EDITFIELD_B"));
__pTextBoxRez = static_cast <TextBox *>(GetControl ("IDC_TEXTBOX_REZ"));
__pEditBoxA-> AddTextEventListener (* this);
return r;
}
Void
Form1::OnActionPerformed (const Osp::Ui::Control& source, int actionId)
{
const int MAX_BUFF_SIZE = 512;
switch (actionId)
{
case ID_BUTTON_OK:
{
AppLog("OK Button is clicked! \n");
// получаемстроковоепредставление
String a_str(__pEditBoxA-> GetText ());
String b_str(__pEditBoxB-> GetText ());
double a,b;
// преобразованиестроковыхпредставленийчисел в вещественнуюформудлявычислений
Double:: Parse (a_str,a);
Double:: Parse (b_str,b);
double rez=a+b;
String strRez;
// преобразованиечисловыхзначений в строковоепредставление
strRez. Format (MAX_BUFF_SIZE,L"%f",rez);
// выводполученногочисела в TextBox
__pTextBoxRez-> SetText (L"X="+strRez);
__pTextBoxRez-> Draw ();
__pTextBoxRez-> Show ();
}
break;
case ID_BUTTON_CLEAR:
{
AppLog("OK Button is clicked! \n");
__pTextBoxRez-> Clear ();
__pTextBoxRez-> Draw ();
__pTextBoxRez-> Show ();
}
break;
default:
break;
}
}
В результате мы получим приложение выполняющее суммирование двух чисел введенных в поля EditField и вывод в TextBox по нажатию на кнопку Ok. По нажатию Clear осуществляется очистка TextBox с результатом.