Прерывание выполнения длительных процессов ac_process_window
Для информирования пользователя о ходе выполняемой длительной операции и возможности ее прервать - используется специальное окно.
На следующем примере показано как вызвать такое окно, чтобы показать сколько обработано элементов полов (25), сколько осталось обработать (76), и скольким элементам плинтусов назначена тип пола (24).
Так выглядит окно процесса с информацией по его состоянию.
При наведении курсора мыши окно сообщает что если на него кликнуть - процесс будет остановлен.
bool bStop = false;
ac_process_window("Init", "LABPP"); // иницииновать окно процесса
string sPhase = "полов (запис.плинтусов=";
int iAssigned = 0;
for (i = 0; i < icount; i++)
{
bStop = ac_process_window("SetPhase", sPhase+itoa(iAssigned)+")", icount-i);
if (bStop == true)
{
cout << "\nПроцесс остановлен пользователем\n";
ac_process_window("Close");
return -1;
}
ac_request("set_current_element_from_list", 1, i);
ac_request("elem_user_property", "set", "Тип отделки пола", "");
}
ac_process_window("Close");