unit ConstUnit; interface uses SysUtils, MyAccess, Classes, ComCtrls, ToolPanels, Dialogs, MainUnit; const report_error = 1; //1 - ошибки sql не показываются //2 - ошибки sql показываются Begin_conn_login_prompt = false; Begin_conn_username_root = 'root'; Begin_conn_server = 'localhost'; Begin_conn_pass_root = ''; database_name = 'rd'; user_name = 'rd'; user_pass = 'rd_pass'; priv_y_count = 8; //количество привелегий у пользователя базы table_izm_name = 'rd_izmerenia'; table_patient_name = 'rd_patient'; table_param_name = 'rd_param'; table_znacheniya_name = 'rd_znacheniya'; table_points_name = 'rd_points'; izm_form_name = 'Проведение измрения'; izm_device_ready = 'Прибор готов к измерению'; izm_get_data = 'Получаем данные...'; izm_mes_decode = 'Декодирование посылки...'; begin_caption_error = 'Ошибка при инициализации программы'; Begin_mes_check_first = 'Проверка на первый запуск программы....'; Begin_mes_root_connected = 'Соединение с сервером баз данных установлено!'; begin_mes_fail_connect = 'Невозможно найти сервер базы данных или подключиться к нему.'+#13+ 'Проверьте параметры подключения и запущен ли сервер'; begin_mes_terminate = 'Программа прекращает свою работу...'; begin_mes_second_connect_false = 'Подключение не установлено. Программа завершает свою работу...'; Begin_mes_check_database = '1. Проверяем наличие базы данных...'; Begin_mes_exist_database = ' База данных "'+database_name+'" существует'; Begin_mes_notexist_database = ' База данных "'+database_name+'" не существует!!!'; Begin_mes_create_database = ' Попытка создать базу данных "'+database_name+'"...'; Begin_mes_create_database_sucsess = ' База данных "'+database_name+'" успешно создана!'; Begin_mes_check_user = '2. Проверяем наличие пользователя...'; Begin_mes_check_user_sucsess = ' Пользователь "'+user_name+'" обнаружен'; Begin_mes_check_user_notsucsess = ' Пользователь "'+user_name+'"не обнаружен!!!'; Begin_mes_user_create = ' Попытка создать пользователя "'+user_name+'"...'; Begin_mes_user_create_suc = ' Пользователь "'+user_name+'" успешно добавлен!'; Begin_mes_check_user_priv = '3. Проверяем пользователя "'+user_name+'" на предмет достаточности прав для работы с программой'; Begin_mes_check_user_priv_suc = ' Права пользователя подтверждены!'; Begin_mes_check_user_priv_notsuc = ' Права пользователя не соответствуют заданным. Попытка изменить права...'; Begin_mes_check_user_priv_change = ' Права пользователя успешно изменены!'; Begin_mes_first_stage_complete = 'Первый этап проверки успешно завершен!!!'; Begin_mes_reconnect = 'Устанавливаем повторное соединение с базой данных...'; Begin_mes_reconnect_sucsess = 'Соединение успешно установлено'; Begin_mes_table_pat_exist = ' Таблица '''+table_patient_name+''' для пациентов существует'; Begin_mes_table_izm_exist = ' Таблица '''+table_izm_name+''' для измерений существует'; Begin_mes_table_param_exist = ' Таблица '''+table_param_name+''' для параметров существует'; Begin_mes_table_znach_exist = ' Таблица '''+table_znacheniya_name+''' для значений измерений существует'; Begin_mes_table_points_exist = ' Таблица '''+table_points_name+''' для описания точек существует'; Begin_mes_table_not_pat_exist = ' Таблица '''+table_patient_name+''' для пациентов не существует'; Begin_mes_table_not_izm_exist = ' Таблица '''+table_izm_name+''' для измерений не существует'; Begin_mes_table_not_param_exist = ' Таблица '''+table_param_name+''' для параметров не существует'; Begin_mes_table_not_znach_exist = ' Таблица '''+table_znacheniya_name+''' для значений измерений не существует'; Begin_mes_table_not_points_exist = ' Таблица '''+table_points_name+''' для описания точек не существует'; Begin_mes_table_pat_create = ' Попытка создать таблицу '''+table_patient_name+''' для пациентов... '; Begin_mes_table_izm_create = ' Попытка создать таблицу '''+table_izm_name+''' для измерений...'; Begin_mes_table_param_create = ' Попытка создать таблицу '''+table_param_name+''' для параметров...'; Begin_mes_table_znach_create = ' Попытка создать таблицу '''+table_znacheniya_name+''' для значений измерений...'; Begin_mes_table_points_create = ' Попытка создать таблицу '''+table_points_name+''' для описания точек...'; Begin_mes_table_pat_create_sucsess = ' Таблица '''+table_patient_name+''' для пациентов успешно создана'; Begin_mes_table_izm_create_sucsess = ' Таблица '''+table_izm_name+''' для измерений успешно создана'; Begin_mes_table_param_create_sucsess= ' Таблица '''+table_param_name+''' для параметров успешно создана'; Begin_mes_table_znach_create_sucsess= ' Таблица '''+table_znacheniya_name+''' для значений измерений успешно создана'; Begin_mes_table_points_create_sucsess= ' Таблица '''+table_points_name+''' для описания точек успешно создана'; Begin_mes_keys_create = ' Попытка создания внешних ключей...'; Begin_mes_table_sucsess = 'Второй этап проверки пройден!'; Begin_mes_check_passed = 'ПРОВЕРКА НА КОРРЕКТНОСТЬ ПАРМЕТРОВ СОЕДИНЕНИЯ С БАЗОЙ ДАННЫХ ПРОЙДЕНА!!!'; Begin_mes_program_start = 'Запуск программы...'; ///////////////////////////////////////////////////////////////// /// Сообщения программы /// ///////////////////////////////////////////////////////////////// mess_caption = 'RD Project. БМТ1'; image_size_label = 'Текущий размер: '; add_point_to_database_mes = 'Точка успешно записана в базу данных!'; add_param_to_database_mes = 'Параметр успешно записан в базу данных!'; red_point_in_database_mes = 'Точка успешно отредактирована!'; red_param_in_database_mes = 'Параметр успешно отредактирован!'; del_param_from_database_mes = 'Параметр успешно удален из базы данных.'+#13+ 'Также удалены все измерения этого параметра'; del_point_from_database_mes = 'Точка успешно удалена из базы данных'+#13+ 'Также удалены все измерения, связанные с этой точкой'; add_pat_to_database_mes = 'Информация о новом пациенте успешно записана!'; del_pat_from_database_mes = 'Информация о пациенте удалена из базы данных!'+#13+ 'Также удалена информация о всех измерениях с участием этого пациента'; red_pat_in_database_mes = 'Информация о пациенте успешно отредактирована!'; izm_data_lost = 'После закрытия формы все данные об измерении будут потеряны!!!'+ #13+'Вы уверены, что хотите закрыть окно измерений?'; izm_izm_end = 'Измерение закончилось. Все точки замерены. Загрузить информацию в базу данных?'; izm_caption_message = 'RD_project. Измерение сопротивления БАТ'; ///////////////////////////////////////////////////////////////// /// Названия колонок в таблицах // ///////////////////////////////////////////////////////////////// /// Таблицы точек и параметров point_param_num_name = ' Номер'; point_param_name_name = ' Название'; point_param_opis_name_param = ' Описание параметра'; point_param_opis_name_point = ' Описание точки'; /// Таблица пациентов new_izm_num_name = ' №'; new_izm_fam_name = ' Фамилия'; new_izm_name_name = ' Имя'; new_izm_otch_name = ' Отчество'; new_izm_day_name = ' Число'; new_izm_mon_name = ' Месяц'; new_izm_year_name = ' Год'; new_izm_opis_name = ' Примечание'; ///////////////////////////////////////////////////////////////// /// Константы доступных действий. // ///////////////////////////////////////////////////////////////// //general_razdelitel = '======================='; //Панель Администрирование. Раздел точки и параметры admin_points_params_show_title = '----------Таблицы--------------------'; admin_points_params_show_points = 'Показать таблицу точек'; admin_points_params_show_params = 'Показать таблицу параметров'; admin_points_params_point_title = '----------Точки-----------------------'; admin_points_params_add_point = 'Добавить точку'; admin_points_params_red_point = 'Редактировать точку'; admin_points_params_del_point = 'Удалить точку'; admin_points_params_param_title = '----------Параметры----------------'; admin_points_params_add_param = 'Добавить параметр'; admin_points_params_red_param = 'Редактировать параметр'; admin_points_params_del_param = 'Удалить параметр'; //Панель Новое измерение. Раздел Измерение new_izm_izm_show_title = '----------Измерение-----------------'; //new_izm_new_izm_str = 'Новое измерение'; new_izm_begin_izm = 'Начать измерение'; //new_izm_end_izm = 'Закончить измерение'; new_izm_settings_title = '----------Пациент--------------------'; new_izm_show_all_pat = 'Показать данные о всех пациентах'; new_izm_new_pat = 'Новый пациент'; new_izm_red_pat = 'Редактировать данные пациента'; new_izm_del_pat = 'Удалить данные о пациенте'; //Панель Просмотр результатов. Раздел Выбор информации look_res_sec1_capt = '----------Выбор информации----'; look_res_show_pat = 'Показать данные о всех пациентах'; look_res_goto_def = 'Вернуться к настройкам по умолчанию'; look_res_izm_info = '----------Данные измерения----'; look_res_load_data = 'Загрузить данные'; //Панель Графики. Раздел Выбор информации look_res_graph_work = '----------Работа с графиками----'; look_res_show_r = 'Показать график R'; look_res_show_g0 = 'Показать график G0'; look_res_show_g1 = 'Показать график G1'; look_res_show_g2 = 'Показать график G2'; look_res_show_g3 = 'Показать график G3'; look_res_show_c = 'Показать график C'; look_res_points_work = '----------Точки-------------'; look_res_points_prev = 'Предыдущая'; look_res_points_next = 'Следующая'; look_res_graph_show = '----------Отображение-------'; look_res_graph_show_15 = 'Показать/убрать +-15% '; look_res_graph_show_max = 'Показать/убрать максимум'; look_res_graph_show_min = 'Показать/убрать минимум'; look_res_graph_show_mean = 'Показать/убрать среднее'; function mysql_query(used_query:TMyQuery; zapros:String; mode:byte):boolean; function tp_change(tp:TAdvToolPanel; panel_num,sect_num,item_num:integer; enabled:boolean):boolean; procedure tp_admin_init_load; function BytesToStr(const i64Size: Int64): string; function GetFileSize(namefile: string): string; var list_item:TListItems; implementation uses DataUnit; function mysql_query(used_query:TMyQuery; zapros:String; mode:byte):boolean; begin used_query.Connection:=SQL_DM.mysql_con; used_query.Active:=false; used_query.SQL.Clear; used_query.SQL.Append(zapros); try if mode=1 then used_query.Active:=true else if mode=2 then used_query.Execute; except // end; if (used_query.Active) or (not used_query.Executing) then result:=true else result:=false; end; ///Функция изменения списка активных действий function tp_change(tp:TAdvToolPanel; panel_num,sect_num,item_num:integer; enabled:boolean):boolean; begin try if item_num=-1 then //режим отключения и включения секций begin //showmessage(tp.Name); if tp.Name='Admin_TP' then begin case panel_num of 0: begin //активная панель точек и параметров. Номера секций 0..2 with tp.Sections[0] do begin Caption:=admin_points_params_show_title; SectionItems.Clear; SectionItems.Add; SectionItems[0].Caption:=admin_points_params_show_points; SectionItems[0].Enabled:=true; SectionItems.Add; SectionItems[1].Caption:=admin_points_params_show_params; SectionItems[1].Enabled:=true; end; with tp.Sections[1] do begin Caption:=admin_points_params_point_title; SectionItems.Clear; SectionItems.Add; SectionItems[0].Caption:=admin_points_params_add_point; SectionItems[0].Enabled:=true; SectionItems.Add; SectionItems[1].Caption:=admin_points_params_red_point; SectionItems[1].Enabled:=false; SectionItems.Add; SectionItems[2].Caption:=admin_points_params_del_point; SectionItems[2].Enabled:=false; end; with tp.Sections[2] do begin Caption:=admin_points_params_param_title; SectionItems.Clear; SectionItems.Add; SectionItems[0].Caption:=admin_points_params_add_param; SectionItems[0].Enabled:=true; SectionItems.Add; SectionItems[1].Caption:=admin_points_params_red_param; SectionItems[1].Enabled:=false; SectionItems.Add; SectionItems[2].Caption:=admin_points_params_del_param; SectionItems[2].Enabled:=false; end; end; 1: begin with tp.Sections[0] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[1] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[2] do begin Caption:=''; SectionItems.Clear; end; end; 2: begin with tp.Sections[0] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[1] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[2] do begin Caption:=''; SectionItems.Clear; end; end; 3: begin with tp.Sections[0] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[1] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[2] do begin Caption:=''; SectionItems.Clear; end; end; 4: begin with tp.Sections[0] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[1] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[2] do begin Caption:=''; SectionItems.Clear; end; end; end; end; if tp.Name='new_izm_TP' then begin//панель новое измерение case panel_num of 0: begin //вкладка измерение //showmessage('chage'); with tp.Sections[0] do begin Caption:=new_izm_izm_show_title; SectionItems.Clear; //SectionItems.Add; //SectionItems[0].Caption:=new_izm_new_izm_str; //SectionItems[0].Enabled:=true; SectionItems.Add; SectionItems[0].Caption:=new_izm_begin_izm; SectionItems[0].Enabled:=false; //SectionItems.Add; //SectionItems[2].Caption:=new_izm_end_izm; //SectionItems[2].Enabled:=false; Autosize:=false; Autosize:=true; end; with tp.Sections[1] do begin Caption:=new_izm_settings_title; SectionItems.Clear; SectionItems.Add; SectionItems[0].Caption:=new_izm_show_all_pat; SectionItems[0].Enabled:=true; SectionItems.Add; SectionItems[1].Caption:=new_izm_new_pat; SectionItems[1].Enabled:=true; SectionItems.Add; SectionItems[2].Caption:=new_izm_red_pat; SectionItems[2].Enabled:=false; SectionItems.Add; SectionItems[3].Caption:=new_izm_del_pat; SectionItems[3].Enabled:=false; Autosize:=false; Autosize:=true; end; with tp.Sections[2] do begin Caption:=''; SectionItems.Clear; end; end; 1: begin with tp.Sections[0] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[1] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[2] do begin Caption:=''; SectionItems.Clear; end; end; end; end; if tp.Name='look_results_TP' then begin//панель просмотр результатов case panel_num of 0: begin //вкладка выбор информации MainForm.lock_pc_look:=true; MainForm.look_results_DB_Grid.Enabled:=true; with tp.Sections[0] do begin Caption:=look_res_sec1_capt; SectionItems.Clear; SectionItems.Add; SectionItems[0].Caption:=look_res_show_pat; SectionItems[0].Enabled:=true; SectionItems.Add; SectionItems[1].Caption:=look_res_goto_def; SectionItems[1].Enabled:=true; //SectionItems.Add; //SectionItems[2].Caption:=new_izm_end_izm; //SectionItems[2].Enabled:=false; Autosize:=false; Autosize:=true; end; with tp.Sections[1] do begin Caption:='';//look_res_izm_info; SectionItems.Clear; //SectionItems.Add; //SectionItems[0].Caption:=look_res_load_data; //SectionItems[0].Enabled:=false; //SectionItems.Add; //SectionItems[1].Caption:=new_izm_new_pat; //SectionItems[1].Enabled:=true; //SectionItems.Add; //SectionItems[2].Caption:=new_izm_red_pat; //SectionItems[2].Enabled:=false; //SectionItems.Add; ///SectionItems[3].Caption:=new_izm_del_pat; //SectionItems[3].Enabled:=false; Autosize:=false; Autosize:=true; end; with tp.Sections[2] do begin Caption:=''; SectionItems.Clear; end; end; 1: begin // with tp.Sections[0] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[1] do begin Caption:=''; SectionItems.Clear; end; with tp.Sections[2] do begin Caption:=''; SectionItems.Clear; end; end; 2: begin // Вкладка графики with tp.Sections[0] do begin Caption:=look_res_graph_work; SectionItems.Clear; SectionItems.Add; SectionItems[0].Caption:=look_res_show_r; SectionItems[0].Enabled:=false; SectionItems.Add; SectionItems[1].Caption:=look_res_show_g0; SectionItems[1].Enabled:=false; SectionItems.Add; SectionItems[2].Caption:=look_res_show_g1; SectionItems[2].Enabled:=false; SectionItems.Add; SectionItems[3].Caption:=look_res_show_g2; SectionItems[3].Enabled:=false; SectionItems.Add; SectionItems[4].Caption:=look_res_show_g3; SectionItems[4].Enabled:=false; SectionItems.Add; SectionItems[5].Caption:=look_res_show_c; SectionItems[5].Enabled:=false; Autosize:=false; Autosize:=true; end; with tp.Sections[1] do begin Caption:=look_res_points_work; SectionItems.Clear; SectionItems.Add; SectionItems[0].Caption:=look_res_points_prev; SectionItems[0].Enabled:=false; SectionItems.Add; SectionItems[1].Caption:=look_res_points_next; SectionItems[1].Enabled:=false; Autosize:=false; Autosize:=true; end; with tp.Sections[2] do begin Caption:=look_res_graph_show; SectionItems.Clear; SectionItems.Add; SectionItems[0].Caption:=look_res_graph_show_15; SectionItems[0].Enabled:=false; SectionItems.Add; SectionItems[1].Caption:=look_res_graph_show_max; SectionItems[1].Enabled:=false; SectionItems.Add; SectionItems[2].Caption:=look_res_graph_show_min; SectionItems[2].Enabled:=false; SectionItems.Add; SectionItems[3].Caption:=look_res_graph_show_mean; SectionItems[3].Enabled:=false; Autosize:=false; Autosize:=true; end; end; end; end; end else //режим отображения отдельных элементов begin if enabled then tp.Sections[sect_num].SectionItems[item_num].Enabled:=true else tp.Sections[sect_num].SectionItems[item_num].Enabled:=false; end; finally result:=true; end; end; //создание секций procedure tp_admin_init_load; var sec:TAdvToolPanelSection; begin with MainForm.Admin_TP.Sections do begin Clear; Sec:=Add; with sec do begin Caption:=''; Autosize:=true; Draw:=true; end; Sec:=Add; with sec do begin Caption:=''; Autosize:=true; Draw:=true; end; Sec:=Add; with sec do begin Caption:=''; Autosize:=true; Draw:=true; end; end; end; function BytesToStr(const i64Size: Int64): string; const i64GB = 1024 * 1024 * 1024; i64MB = 1024 * 1024; i64KB = 1024; begin if i64Size div i64GB > 0 then Result := Format('%.2f GB', [i64Size / i64GB]) else if i64Size div i64MB > 0 then Result := Format('%.2f MB', [i64Size / i64MB]) else if i64Size div i64KB > 0 then Result := Format('%.2f KB', [i64Size / i64KB]) else Result := IntToStr(i64Size) + ' Byte(s)'; end; function GetFileSize(namefile: string): string; var InfoFile: TSearchRec; AttrFile: Integer; ErrorReturn: Integer; begin AttrFile := $0000003F; {Any file} ErrorReturn := FindFirst(namefile, AttrFile, InfoFile); if ErrorReturn <> 0 then Result := '' {в случае, если файл не найден} else Result := BytesToStr(InfoFile.Size); {Размер файла в байтах} FindClose(InfoFile); end; end.