Взаимодействие с пользователем
Итак, понятность для конченого пользователя, что это значит? Интерфейс на русском языке? Хорошая контрастность? Ну, в принципе, да.
Но в рамках данной статьи я хотел бы напомнить про методы взаимодействия, которые бы давали понять пользователю, что всё тлен происходит и/или произошло при выполнении каких-либо действий. Давайте же расчехлим RAD Studio (эта статья, помимо прочего, призвана познакомить всех тех кто незнаком с этим инструментом, чтобы они с ним были знакомы, с этим инструментом, а то вдруг вы не знаете, что это такое и вам очень страшно...) и пробежимся по основным методам информирования и взаимодействия.
1. Прогресс-бары. Если какой-то процесс занимает какое-то время, то логично дать понять пользователю, что что-то в данный момент происходит, что скайнет не восстал и не забил на работу. Можно просто в определенные места работы алгоритма или обработчика добавить:
ProgressBar1->Position = 5;
как и любое другое значение прогресс-бара в процентах.
Или инкрементировать значение по ходу выполнения, например в цикле, возьмём что-нибудь бессмысленное, но работающее:
int pbi = 0;
while (pbi<=100)
{
ProgressBar1->Position = pbi;
Sleep(100);
pbi++;
}
почему бы и нет...
2. Текст, а именно — метки. Расставленные в разных местах и грамотно настроенные они могут давать подсказки пользователю. Например так:
Есть у нас Label1, поставленный в угол за плохое поведение нужное место, через него мы доносим до пользователя какую-либо информацию:
Label1->Caption = "нажал";
3. Окна с сообщениями. Тут всё просто:
ShowMessage("пример");
Я для примера набросал формочку, используя VCL и добавил соответствующие элементы:
И, да, я уже не стал делать бочку упоминать об этом, но Button тут — TButton, это вполне логично.
Пример кода и результат (комментировать не буду, тут всё очевидно):
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "aboutpbar.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ProgressBar1->Position = 5;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ProgressBar1->Position = 50;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ProgressBar1->Position = 85;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
int pbi = 0;
while (pbi<=100)
{
ProgressBar1->Position = pbi;
Sleep(100);
pbi++;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Label1->Caption = "нажал";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
ShowMessage("пример");
}
//---------------------------------------------------------------------------

Не забывайте о смерти о взаимодействии с пользователями и мойте руки перед кодингом.

