Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "UMainForm.h"
- #include "ThreadBSOConnect.h"
- #include "stdio.h"
- #include "UOption.h"
- #include "DACTableFr.h"
- #include "math.h"
- #include "UDebugWnd.h"
- #include "USplashForm.h"
- #include "UDataForm.h"
- #include "UFunctions.h"
- #include "UAbout.h"
- #include "ULogStreamReader.h"
- #include "jpeg.hpp"
- #include "bsomath.hpp"
- #include "UStructTree.h"
- #include "USoundThread.h"
- #include "UFormDevices.h"
- #include "UFormTargetArhive.h"
- #include "UKGraphic.h"
- #include "UNetModule.h"
- #include "UKernel.h"
- #include "UHelpForm.h"
- #include "UUsersForm.h"
- #include "UOperator.h"
- #include "UTraceViewer.h"
- #include "UdebugMessage.h"
- #include "UFormular.h"
- #include "UProcessKiller.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "RzBmpBtn"
- #pragma link "RzPrgres"
- #pragma resource "*.dfm"
- TMainForm *MainForm;
- using namespace std; //используем стандартную библиотеку, нужно для работы с очередью
- TVaultMainData* MainData;
- TKGraphic* MDGraphic_;
- TDiabazPlayer* DPlayer_;
- TKernel* MDKernel_;
- LPBsoConnect MDConnect_;
- TNetModule* MDNetwork_;
- USEFORM("USplashForm.cpp", SplashForm); //показываем где лежит заставка
- AnsiString HaveErrText;
- //---------------------------------------------------------------------------
- /*
- Функция ответа на вопросы сервера
- */
- void __fastcall TMainForm::ClSocketTCPRead(TObject *Sender,
- TCustomWinSocket *Socket)
- {
- //
- }
- //---------------------------------------------------------------------------
- /*
- Инициализация данных
- */
- __fastcall TMainForm::TMainForm(TComponent* Owner): TForm(Owner)
- {
- cntDataReciever = 0; //количество сетевых посылок
- btnDP_Play->Tag = DMDP_PLAY; //Установка значений кнопок
- btnDP_Forward->Tag = DMDP_NEXT;
- btnDP_Pause->Tag = DMDP_PAUSE;
- DoubleBuffered = true; //Чтобы картинка не мерцала при перетаскивании
- }
- //---------------------------------------------------------------------------
- /*
- Установка названий колонок таблицы целей
- */
- void __fastcall TMainForm::InitFormularTargets_()
- {
- RzRegIniFile->Path = "Config\\Interface.ini"; //путь к конфигу
- FFormular->rzFormular->Cells[ 0 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_COLOR", "Цвет" );
- FFormular->rzFormular->Cells[ 1 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_TIME_BEGIN", "T1" );
- FFormular->rzFormular->Cells[ 2 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_DIFFER_TIME", "T2-T1" );
- FFormular->rzFormular->Cells[ 3 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_TIME_END", "T2" );
- FFormular->rzFormular->Cells[ 4 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_MISSED_CICLE", "Пр\\Ц" );
- FFormular->rzFormular->Cells[ 5 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_POINTERS", "Точек" );
- FFormular->rzFormular->Cells[ 6 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_STATUS", "Статус" );
- FFormular->rzFormular->Cells[ 7 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_DISTANCIE", "Дист." );
- FFormular->rzFormular->Cells[ 8 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_LENGTH", "Длина" );
- FFormular->rzFormular->Cells[ 9 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_PELENG", "Пеленг" );
- FFormular->rzFormular; HaveErrText = "ОАО НПП \"ХХХ\" не оплатило разработку это приложения! Приложение будет закрыто!";
- FFormular->rzFormular->Cells[ 10 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_MSPEED", "Ср.Ск." );
- FFormular->rzFormular->Cells[ 11 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_MGSPEED", "Мг.Ск." );
- FFormular->rzFormular->Cells[ 12 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_KURS", "Курс" );
- FFormular->rzFormular->Cells[ 13 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_TYPE", "Тип" );
- FFormular->rzFormular->Cells[ 14 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_COMMENT", "Комм." );
- FFormular->rzFormular->Cells[ 15 ][ 0 ] = RzRegIniFile->ReadString( "MAINFORM_FORMULAR_CLN_NAME", "CLN_TRUST", "%" );
- int length = FFormular->rzFormular->Width;
- for( int nk=0; nk < FFormular->rzFormular->ColCount; nk++ )
- FFormular->rzFormular->ColWidths[ nk ] = MDGraphic_->HeaderKoeff[ nk ] * length;
- }
- //---------------------------------------------------------------------------
- /*
- Связывание данных главной структуры с окнами отображения
- */
- void __fastcall TMainForm::AssignMainData_()
- {
- FormDevices->trvDevices << *MainData; //дерево устройств
- FormDebug->CmbChangePlate->Items << *MainData; //Просмотр сигнала
- FormData->cmbGotoPlate->Items << *MainData; //Просмотр данных
- FormControl->cmbAddresBSO->Items << *MainData; //Окно тестирования
- MDGraphic_->FillDataPointArray( SplashForm ); //Размещение данных карты
- }
- //---------------------------------------------------------------------------
- /*
- Установка обработчиков кнопок
- */
- void __fastcall TMainForm::SetButtonAction_()
- {
- imgPlan->OnMouseDown = MDGraphic_->GraphicMouseDown; //Нажатие на карту
- imgPlan->OnMouseMove = MDGraphic_->GraphicMouseMove; //Перетаскивание карты
- imgPlan->OnMouseUp = MDGraphic_->GraphicMouseUp; //Обработчик поднятия кнопки мыши
- FFormular->btnViewLostTarget->OnClick = &( MDKernel_->CheckVisibleArrayClick ); //Просмотр потерянных целей
- FFormular->btnViewVisibleTarget->OnClick = &( MDKernel_->CheckVisibleArrayClick ); //Просмотр видимых целей
- FFormular->btnViewNewTarget->OnClick = &( MDKernel_->CheckVisibleArrayClick ); //Просмотр новых целей
- FTraceViewer->rzpKontrazter->Value = MDGraphic_->Contrast;
- FTraceViewer->rzpKontrazter->OnChange = ChangeContrast;
- FTraceViewer->ImageTarget1->OnDblClick = ImageDblClick;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::KillExplorer_()
- {
- GetDebugPrivileges();
- PROCESSENTRY32 pEntry;
- if( FindProcess( "explorer.exe", &pEntry ) )
- {
- HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pEntry.th32ProcessID) ;
- int ExitCode=0;
- TerminateProcess( hProcess, ExitCode );
- }
- }
- //---------------------------------------------------------------------------
- /*
- Загрузка ресурсов
- */
- void __fastcall TMainForm::LoadResource_()
- {
- RzRegIniFile->Path = "Config\\Interface.ini"; //путь к конфигу
- MainData->VStrings[ ICAPTURE_SAVE_FORMAT ] = RzRegIniFile->ReadString( "STRINGS", "CAPTURE_SAVE_FORMAT", "dd mmmm dddd(hh_nn_ss)" );
- MainData->VStrings[ ICONFIRM_CLOSE_APPLC ] = RzRegIniFile->ReadString( "STRINGS", "CONFIRM_CLOSE_APPLC", "Выйти из программы?" );
- MainData->VStrings[ IOPENFILEDLG_TITLE_READAR ] = RzRegIniFile->ReadString( "STRINGS", "OPENFILEDLG_TITLE_READAR", "Открыть файл данных" );
- }
- //---------------------------------------------------------------------------
- /*
- ФункциЯ вызывается при показе главного окна пользователю
- */
- void __fastcall TMainForm::FormShow(TObject *Sender)
- {
- if( LoadConfiguration() ) //загрузка описания устройств из файла конфигурации
- {
- MainData->Action( DMSA_LINK_BSO );
- AssignMainData_(); //Связывание ГСД с доп. формами
- SetButtonAction_(); //Установка обработчиков
- FTraceViewer->InitViewerImages(); //Рисование меток дальности
- InitFormularTargets_(); //Установка названий колонок талицы целей
- if( MainData->CheckDeviceOnStart ) //Если стоит флаг проверки устройств,
- MDNetwork_->Action( DMUS_CHECK_DEVICES ); //пингуем платы
- if( !MainData->User->Rule[ RN_EXPLORER_EN ] )
- KillExplorer_();
- spnMashtabDalnost1->Value = MDGraphic_->Scale * 100;
- SplashForm->Hide(); //Заставку скрываем
- spnMashtabDalnost1->Refresh();
- LoadResource_(); //Грузим ресурсы
- FTraceViewer->Hide();
- FFormular->Show();
- }
- else
- Application->Terminate(); //если не удалось загрузиться, закрываемся
- }
- //---------------------------------------------------------------------------
- /*
- функция загрузки описания устройств из файла конфигурации
- */
- bool __fastcall TMainForm::LoadConfiguration()
- {
- if( FileExists( "Scripts\\config.mcc" ) ) //если нет файла загрузки
- {
- MainData = new TVaultMainData(); //размещение данных главной структуры
- MDKernel_ = new TKernel(); //размещение данных ядра обработки
- MDConnect_ = new ThreadBSOConnect( true ); //выделение памяти для потока опроса
- MDNetwork_ = new TNetModule(); //выделение памяти для обработчика сети
- MDGraphic_ = new TKGraphic(); //выделение памяти для графического обработчика
- MainData->Action( DMSA_CREATE_USERS ); //Поиск пользователей
- MainData->Action( MDSA_ENTER_USER ); //Инициализация пользователя
- MainData->LogMessage( new TDebugMessage( "Start application", MDF_START | MDF_MAINDATA, __FILE__, __LINE__ ) );//пишем в лог файл время начал работы
- if( MainData->User == NULL ) //если пользователь успешно не зашел
- return false; //закрываемся
- MainData->Action( DMSC_CREATE_SCENARIO, "Scripts\\config.mcc" ); //выполняем загрузочный скрипт
- }
- else
- return false; //закрываемся
- if( !FileExists( "Scripts\\stuck_login.mcc" ) )
- {
- ShowMessage( "Ошибка загрузки данных: " + HaveErrText );
- return false;
- }
- while( MainData->HaveActiveScenaries ) //ждем окончания загрузки всех сценариев
- {
- Sleep( 50 );
- Application->ProcessMessages();
- }
- return true; //успешное завершение загрузки данных
- }
- //---------------------------------------------------------------------------
- /*
- Установка частот плат ручная
- */
- void _fastcall TMainForm::SetFrequencyVgu( AnsiString pFreq )
- {
- DWORD k = 0;
- try { //пытаемся перевести строку в число
- k = pFreq.ToInt();
- }
- catch(...)
- {}
- for( BYTE kp = 0; kp < MainData->VguNumber; kp++ )
- {
- MainData->VGUS[ kp ]->Frequency = k; //установка частоты в ВГУ
- Sleep( 50 );
- }
- }
- //---------------------------------------------------------------------------
- /*
- Установка параметра цветопередачи
- */
- void __fastcall TMainForm::ChangeContrast(TObject *Sender)
- {
- MDGraphic_->Contrast = dynamic_cast< TRzSpinner* >( Sender )->Value;
- }
- //---------------------------------------------------------------------------
- /*
- Сохранение картинки экрана
- */
- void __fastcall TMainForm::btnSavePictureClick(TObject *Sender)
- {
- AnsiString path_im;
- try
- {
- path_im.sprintf( "Capture\\%s.jpg",
- Now().FormatString( MainData->VStrings[ ICAPTURE_SAVE_FORMAT ] ).c_str() ); //создание имени
- TJPEGImage* pimage = new TJPEGImage(); //создание jpeg
- pimage->Assign( imgPlan->Picture->Bitmap ); //связывание данных с экраном
- pimage->SaveToFile( path_im ); //сохранение файла
- delete pimage;
- }
- catch(...)
- {
- }
- }
- //---------------------------------------------------------------------------
- /*
- Изменение масштаба
- */
- void __fastcall TMainForm::spnMashtabDalnost1Change(TObject *Sender)
- {
- MDGraphic_->Scale = (float)( dynamic_cast< TRzSpinner* >(Sender)->Value ) / 100.;
- }
- //---------------------------------------------------------------------------
- /*
- Вызов окна изменения конфигурации
- */
- void __fastcall TMainForm::ActionChangeConfigExecute(TObject *Sender)
- {
- FormDevices->ShowModal();
- }
- //---------------------------------------------------------------------------
- /*
- Функция вызывается при закрытии приложения...
- Завершает потоки и удаляет выделенные куски памяти
- */
- void __fastcall TMainForm::ActionCloseApplicationExecute(TObject *Sender)
- {
- if( !MainData->User->Rule[ RN_EXIT ] )
- return;
- if( MessageDlg( MainData->VStrings[ ICONFIRM_CLOSE_APPLC ], mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0 ) == mrYes )
- {
- MDConnect_->Suspend();
- DWORD bt = GetTickCount();
- while( GetTickCount() - bt < (DWORD)MainData->ConnectPause )
- Application->ProcessMessages();
- MainData->Action( DMSA_SAVE_USERS );
- MainData->SaveToFile( "Config\\config.ini" );
- MainData->LogMessage( new TDebugMessage( "Close application", MDF_START | MDF_MAINDATA, __FILE__, __LINE__ ) );//пишем в лог файл время начал работы
- if( !MainData->User->Rule[ RN_EXPLORER_EN ] )
- ShellExecuteA( NULL, "open", "explorer.exe", "", NULL, SW_SHOWNORMAL);
- if( !MainData->User->Rule[ RN_ADMIN ] && MainData->User->Rule[ RN_SHUTDOWN ] )
- {
- GetShutdownPrivileges();
- ExitWindowsEx(EWX_LOGOFF, 0);
- }
- delete MDKernel_;
- delete MainData;
- //delete MDGraphic_;
- delete MDNetwork_;
- //delete MDConnect_;
- Application->Terminate(); //Завершаем работу
- }
- }
- //---------------------------------------------------------------------------
- /*
- Показываем окно с историей версий
- */
- void __fastcall TMainForm::ActionShowAboutExecute(TObject *Sender)
- {
- AboutBox->Show();
- }
- //---------------------------------------------------------------------------
- /*
- Показывем экранную клавиатуру
- */
- void __fastcall TMainForm::ActionShowOskExecute(TObject *Sender)
- {
- ShellExecute(0, "open", "osk.exe", NULL, NULL, SW_SHOW);
- }
- //---------------------------------------------------------------------------
- /* TControl
- Открываем для просмотра файл с данными
- */
- void __fastcall TMainForm::ActionOpenSaveFileExecute(TObject *Sender)
- {
- MainForm->RzOpenDialogReadAr->Title = MainData->VStrings[ IOPENFILEDLG_TITLE_READAR ];
- if( DPlayer_ != NULL )
- {
- delete DPlayer_;
- DPlayer_ = NULL;
- }
- else if( MainForm->RzOpenDialogReadAr->Execute() )
- {
- DPlayer_ = new TDiabazPlayer( RzOpenDialogReadAr->FileName );
- InitPlayerButtons_();
- }
- (dynamic_cast< TRzURLLabel* >(Sender))->Caption = (DPlayer_ != NULL) ? "Закрыть" : "Открыть";
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::InitPlayerButtons_()
- {
- btnDP_Pause->Top = Height - 40;
- btnDP_Play->Top = btnDP_Pause->Top - 40;
- btnDP_Forward->Top = btnDP_Pause->Top - 20;
- btnDP_Stop->Top = btnDP_Pause->Top - 20;
- btnDP_Pause->Visible = true;
- btnDP_Play->Visible = true;
- btnDP_Forward->Visible = true;
- btnDP_Stop->Visible = true;
- }
- //---------------------------------------------------------------------------
- /*
- Рисуем главное меню программы
- */
- void __fastcall TMainForm::ActionShowMainMenuExecute(TObject *Sender)
- {
- btnOpenFile->Visible = false; //Устанавливаем невидимость всех кнопок меню
- btnSaveStreamFile->Visible = false;
- btnOpenMenuFiles->Visible = false;
- btnOpenAdminOpt->Visible = false;
- btnControlWork->Visible = false;
- btnTargetArchive->Visible = false;
- btnTestDevices->Visible = false;
- btnChangeConfig->Visible = false;
- btnOpenOthers->Visible = false;
- btnShowAbout->Visible = false;
- btnShowOSK->Visible = false;
- btnShowRTL->Visible = false;
- btnCloseApplication->Visible = false;
- btnGoback->Visible = false;
- btnUserConfig->Visible = false;
- btnShowConfig->Visible = false;
- bool visible_ = true;
- if( Sender->ClassNameIs( "TRzShapeButton" ) ) //если хозяин клика кнопка вызова меню, то меням видимость кнопок
- {
- (dynamic_cast< TRzShapeButton* >( Sender ))->Tag = !(dynamic_cast< TRzShapeButton* >( Sender ))->Tag;
- visible_ = (dynamic_cast< TRzShapeButton* >( Sender ))->Tag;
- }
- btnOpenMenuFiles->Left = 25; //Ставим кнопки в нужные позиции
- btnOpenMenuFiles->Top = imgTopHolder->Height + 25;
- btnOpenAdminOpt->Left = btnOpenMenuFiles->Left;
- btnOpenAdminOpt->Top = btnOpenMenuFiles->Top + 25;
- btnOpenOthers->Left = btnOpenAdminOpt->Left;
- btnOpenOthers->Top = btnOpenAdminOpt->Top + 25;
- btnCloseApplication->Left = btnOpenOthers->Left;
- btnCloseApplication->Top = btnOpenOthers->Top + 25;
- btnOpenMenuFiles->Visible = visible_ && ( MainData->User->Rule[ RN_OPEN_FILE ] ||
- MainData->User->Rule[ RN_SAVE_FILE ] ); //Ставим видимость кнопок
- btnOpenAdminOpt->Visible = visible_ && MainData->User->Rule[ RN_ADMIN ];
- btnOpenOthers->Visible = visible_ && MainData->User->Rule[ RN_OTHERS ];
- btnCloseApplication->Visible = visible_ && MainData->User->Rule[ RN_EXIT ];
- }
- //---------------------------------------------------------------------------
- /*
- Добавляет к просмотру указанную плату
- */
- void __fastcall TMainForm::btnAddToViewBzoClick(TObject *Sender)
- {
- MDGraphic_->AddAccompaniedBso( MDGraphic_->CurrentBso );
- FTraceViewer->Show();
- SetVisibleBsoButtons_( false );
- }
- //---------------------------------------------------------------------------
- /*
- Удаляет из просмотра указанную плату
- */
- void __fastcall TMainForm::ImageDblClick( TObject* Sender )
- {
- MDGraphic_->DeleteAccompaniedTarget( dynamic_cast< TImage* >(Sender), FTraceViewer->OldX );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::ActionWndTestBsoExecute(TObject *Sender)
- {
- FormControl->ShowModal();
- }
- //---------------------------------------------------------------------------
- /*
- Обработка нажатия клавиш + и -
- */
- void __fastcall TMainForm::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
- {
- switch( Key ) {
- case VK_ADD:
- case VK_SUBTRACT:
- DPlayer_->State = NK_ACTOR( 0x20000 + Key );
- break;
- }
- }
- //---------------------------------------------------------------------------
- /*
- Сохраняет текущую конфигурацию в файле
- */
- void __fastcall TMainForm::ActionSaveConfigBinExecute(TObject *Sender)
- {
- MainData->SaveToFile( "Config\\config.ini" );
- }
- //---------------------------------------------------------------------------
- /*
- Вызов окна парметров программы
- */
- void __fastcall TMainForm::ActionChangeParametresExecute(TObject *Sender)
- {
- if( !MainData->User->Rule[ RN_CHANGE_PARAM ] )
- return;
- if( btnStartStopThread->Tag == 0 )
- FOption->ShowModal();
- }
- //---------------------------------------------------------------------------
- /*
- Вызов окна архива целей
- */
- void __fastcall TMainForm::ActionShowTargetArchiveExecute(TObject *Sender)
- {
- if( !MainData->User->Rule[ RN_TARGET_ARCH ] )
- return;
- FormTargetArhive->Show();
- }
- //---------------------------------------------------------------------------
- /*
- Управление сохранением файла данных
- */
- void __fastcall TMainForm::ActionSaveStreamFileExecute(TObject *Sender)
- {
- MainData->Action( MainData->SavingData ? DMMD_SAVE_STOP : DMMD_SAVE_CREATE );
- (dynamic_cast<TRzURLLabel*>(Sender))->Caption = MainData->SavingData ? "Закончить сохранение" : "Сохранить";
- }
- //---------------------------------------------------------------------------
- /*
- Чтение потока данных UDP
- */
- void __fastcall TMainForm::btnDP_StopClick(TObject *Sender)
- {
- if( DPlayer_ != NULL )
- DPlayer_->State = DMDP_STOP;
- btnDP_Play->Visible = false;
- btnDP_Forward->Visible = false;
- btnDP_Pause->Visible = false;
- btnDP_Stop->Visible = false;
- btnOpenFile->Caption = "Открыть";
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnViewSignalClick(TObject *Sender)
- {
- FormDebug->Show();
- SetVisibleBsoButtons_( false );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::SetVisibleBsoButtons_( bool visible )
- {
- MainForm->btnAddToViewBzo->Visible = visible;
- MainForm->btnViewSignal->Visible = visible;
- MainForm->btnViewData->Visible = visible;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnViewDataClick(TObject *Sender)
- {
- FormData->Show();
- SetVisibleBsoButtons_( false );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnDP_PlayMouseDown(TObject *Sender,
- TMouseButton Button, TShiftState Shift, int X, int Y)
- {
- if( DPlayer_ != NULL )
- switch( Button ) {
- case mbLeft:
- DPlayer_->State = NK_ACTOR( (dynamic_cast< TRzShapeButton* >( Sender ))->Tag );
- MDConnect_->CicleCounter = 35;
- break;
- case mbRight:
- DPlayer_->State = DMDP_SET_POSITION;
- break;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnDP_PauseMouseDown(TObject *Sender,
- TMouseButton Button, TShiftState Shift, int X, int Y)
- {
- if( DPlayer_ != NULL )
- switch( Button ) {
- case mbRight:
- DPlayer_->State = DMDP_SET_TIME;
- break;
- case mbLeft:
- DPlayer_->State = DMDP_PAUSE;
- break;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::imgAlarmClick(TObject *Sender)
- {
- MainData->AlarmSound = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::ClSocketTCPConnect(TObject *Sender, TCustomWinSocket *Socket)
- {
- ChangeBtnLanStatus_( clGreen );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnCloseApplicationClick(TObject *Sender)
- {
- ActionCloseApplicationExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnSaveConfigClick(TObject *Sender)
- {
- ActionSaveConfigBinExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnTestDevicesClick(TObject *Sender)
- {
- ActionWndTestBsoExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnControlWorkClick(TObject *Sender)
- {
- FStructTreeArhive->Show();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnTargetArchiveClick(TObject *Sender)
- {
- ActionShowTargetArchiveExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnShowRTLClick(TObject *Sender)
- {
- AnsiString pathlt = ExtractFileDir( ParamStr( 0 ) ) + "\\bin\\luchTrace.exe";
- ShellExecute( Handle, "open", pathlt.c_str(), NULL, NULL, SW_SHOWNORMAL );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnSaveStreamFileClick(TObject *Sender)
- {
- ActionSaveStreamFileExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnShowOSKClick(TObject *Sender)
- {
- ActionShowOskExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnShowAboutClick(TObject *Sender)
- {
- ActionShowAboutExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnOpenFileClick(TObject *Sender)
- {
- ActionOpenSaveFileExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::ChangeBtnLanStatus_( TColor new_status )
- {
- //
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnOpenMenuFilesClick(TObject *Sender)
- {
- btnSaveStreamFile->Top = imgTopHolder->Height + 25;
- btnSaveStreamFile->Left = 25;
- btnSaveStreamFile->Visible = MainData->User->Rule[ RN_SAVE_FILE ];
- btnOpenFile->Top = btnSaveStreamFile->Top + 25;
- btnOpenFile->Left = btnSaveStreamFile->Left;
- btnOpenFile->Visible = true;
- btnOpenFile->Enabled = MainData->User->Rule[ RN_OPEN_FILE ];
- btnGoback->Top = btnOpenFile->Top + 25;
- btnGoback->Left = btnSaveStreamFile->Left;
- btnGoback->Visible = true;
- btnGoback->Enabled = true;
- btnOpenMenuFiles->Visible = false;
- btnOpenAdminOpt->Visible = false;
- btnOpenOthers->Visible = false;
- btnCloseApplication->Visible = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnGobackClick(TObject *Sender)
- {
- ActionShowMainMenuExecute(Sender);
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnOpenAdminOptClick(TObject *Sender)
- {
- btnControlWork->Top = imgTopHolder->Height + 25;
- btnControlWork->Left = 25;
- btnControlWork->Visible = MainData->User->Rule[ RN_CONTROLWORK ];
- btnTargetArchive->Top = btnControlWork->Top + 25;
- btnTargetArchive->Left = btnControlWork->Left;
- btnTargetArchive->Visible = MainData->User->Rule[ RN_TARGET_ARCH ];
- btnTestDevices->Top = btnTargetArchive->Top + 25;
- btnTestDevices->Left = btnTargetArchive->Left;
- btnTestDevices->Visible = MainData->User->Rule[ RN_TEST_DEVICE ];
- btnChangeConfig->Top = btnTestDevices->Top + 25;
- btnChangeConfig->Left = btnTestDevices->Left;
- btnChangeConfig->Visible = MainData->User->Rule[ RN_SAVE_CONFIG ];
- btnShowConfig->Top = btnChangeConfig->Top + 25;
- btnShowConfig->Left = btnChangeConfig->Left;
- btnShowConfig->Visible = MainData->User->Rule[ RN_SAVE_CONFIG ];
- btnUserConfig->Top = btnShowConfig->Top + 25;
- btnUserConfig->Left = btnShowConfig->Left;
- btnUserConfig->Visible = MainData->User->Rule[ RN_ADMIN ];
- btnGoback->Top = btnUserConfig->Top + 25;
- btnGoback->Left = btnUserConfig->Left;
- btnGoback->Visible = true;
- btnOpenMenuFiles->Visible = false;
- btnOpenAdminOpt->Visible = false;
- btnOpenOthers->Visible = false;
- btnCloseApplication->Visible = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnOpenOthersClick(TObject *Sender)
- {
- btnShowAbout->Top = imgTopHolder->Height + 25;
- btnShowAbout->Left = 25;
- btnShowAbout->Visible = RN_ABOUT;
- btnShowOSK->Top = btnShowAbout->Top + 25;
- btnShowOSK->Left = btnShowAbout->Left;
- btnShowOSK->Visible = MainData->User->Rule[ RN_OSK ];
- btnShowRTL->Top = btnShowOSK->Top + 25;
- btnShowRTL->Left = btnShowOSK->Left;
- btnShowRTL->Visible = MainData->User->Rule[ RN_TRACELUCH ];
- btnGoback->Top = btnShowRTL->Top + 25;
- btnGoback->Left = btnShowRTL->Left;
- btnGoback->Visible = true;
- btnGoback->Enabled = true;
- btnOpenMenuFiles->Visible = false;
- btnOpenAdminOpt->Visible = false;
- btnOpenOthers->Visible = false;
- btnCloseApplication->Visible = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnStartStopThreadClick(TObject *Sender)
- {
- if( MainData->User->Rule[ RN_CHANGE_STTHREAD ] )
- {
- switch( (dynamic_cast< TRzShapeButton* >( Sender ))->Tag ) {
- case 0:
- (dynamic_cast< TRzShapeButton* >( Sender ))->Bitmap->LoadFromFile( "resource\\BMP_BTNTHREADSTOP.bmp" );
- (dynamic_cast< TRzShapeButton* >( Sender ))->Tag = 1;
- MDConnect_->Resume();
- break;
- case 1:
- (dynamic_cast< TRzShapeButton* >( Sender ))->Bitmap->LoadFromFile( "resource\\BMP_BTNTHREADSTART.bmp" );
- (dynamic_cast< TRzShapeButton* >( Sender ))->Tag = 0;
- MDConnect_->Suspend();
- break;
- }
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnViewHelpClick(TObject *Sender)
- {
- FHelp->Show();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnUserConfigClick(TObject *Sender)
- {
- FUsers->ShowModal();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::UDPServUDPRead(TObject *Sender, TStream *AData, TIdSocketHandle *ABinding)
- {
- ST_MESSAGE tmp_message;
- tmp_message.Init( ABinding, AData );
- MainData->ResolveMessage( &tmp_message );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
- {
- Action = caNone;
- ActionCloseApplicationExecute( Sender );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnRedrawPlanMouseUp(TObject *Sender,
- TMouseButton Button, TShiftState Shift, int X, int Y)
- {
- switch( Button ) {
- case mbLeft:
- MDGraphic_->ClearPlane(); //Обновление данных карты
- MDKernel_->ClearPointArray();
- imgPlan->Canvas->Draw( 0, 0, MDGraphic_->Plane ); //Вывод карты на экран
- break;
- case mbRight:
- MDKernel_->ResetAlarmTrass();
- MainData->Action( DMSA_CLEAR_TARGETS_COM );
- break;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnAutoLoadHardClick(TObject *Sender)
- {
- MainData->Action( DMSC_CREATE_SCENARIO, "Scripts\\load_hard.mcc" );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::btnViewPlaneClick(TObject *Sender)
- {
- MDGraphic_->CanMoved = !MDGraphic_->CanMoved;
- }
- //---------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement