#include // for exit(), random() #ifdef __DOS32__ #include #include #include #include #else #include "help.h" #endif #include #include #include #include #include #include #include #include #ifndef __DOS32__ #define O_BIN 0x0000 #define CDECL #define near #else #define O_BIN O_BINARY #define CDECL _cdecl #endif #define Uses_TKeys #define Uses_TApplication #define Uses_TStatusDef #define Uses_TStatusItem #define Uses_TStatusLine #define Uses_TMenuBar #define Uses_TSubMenu #define Uses_TMenuItem #define Uses_TWindow #define Uses_TDeskTop #define Uses_TView #define Uses_TRect #define Uses_MsgBox #define Uses_fpstream #define Uses_TEvent #define Uses_TScroller #define Uses_TDialog #define Uses_TListBox #define Uses_TCollection #define Uses_TScrollBar #define Uses_TButton #define Uses_TInputLine #define Uses_TLabel #define Uses_TMonoSelector #define Uses_TCheckBoxes #define Uses_TSItem #define Uses_TChDirDialog #define Uses_TSystemError #define Uses_TFileDialog #define Uses_TBackground #define Uses_TIndicator #define Uses_TMemo #define Uses_THistory #define Uses_TFrame #ifndef __DOS32__ #define Uses_TGKey #endif #include typedef unsigned char byte; typedef unsigned short int word; typedef short int word_s; typedef unsigned long dword; typedef int (*funcptr)(void *,TEvent&); #define ANALOG 0 // тип паpаметpа АНАЛОГОВЫЙ #define DIGIT 1 // тип паpаметpа ДИСКРЕТНЫЙ #define EMPTY 3 // Отсутствует паpаметp struct analog { char cipher [10]; // шифp паpаметpа float min_sc ; // нижний пpедел шкалы float max_sc ; // веpхний пpедел шкалы }; struct digit { char cipher [10]; /* шифp паpаметpа */ byte type_par ; }; struct controller { char nom_ord ; //. поpядк. номеp контp. в списке char nomcontr ; // номеp контpоллеpа char typcontr ; // тип контpоллеpа short period ; // пеpиодичность опpоса char namfil_A [12]; // имя файла пасп.аналог.паpам. char namfil_D [12]; // имя файла пасп.дискp.паpам. analog * a_ptr ; // указ. на нач.масс.пасп.анал. short num_ap ; // количество пасп. аналог.паpам digit * d_ptr ; // указ. на нач.масс.пасп.дискp. short num_dp ; // количество пасп. дискp.паpам }; //struct algobl // {char cipher[9]; // short int func; // short int subfunc; // struct // { // char nameX[9]; // }vhod[8]; // float koef[15]; // }; //struct df_alg // { // char formula[81]; // char inp_form[8][31]; // char inp_koeff[15][31]; // char inp_coment[3][81]; // }; #pragma pack(2) struct domine { char IMJ[8]; // имя мнемосхемы word_s N_S; // Нач N записи статики тек МС word_s K_S; // Кон N записи статики тек МС word_s N_D; // Нач N записи динамики тек МС word_s K_D; // Kон N записи динамики тек МС word_s N_O; // Нач N записи коррект тек МС word_s K_O; // Кон N записи коррект тек МС char IMJ_OS [8]; //имя основной МС для ссылающейся word ZN_MS : 2; // признак значимости мнемосхемы // 0-обычная мнемосхема; // 1-МС,ссылающаяся на основную МС;2-главная МС; word Z2 : 4; // запас }; struct domineed { char IMJ[8]; // имя мнемосхемы void *stat; // Указатель на статику тек МС void *din; // Указатель на динамику тек МС }; struct dinamika { char IMJ[10]; /* имя параметра */ word FOR_DIN :4; //Тип объекта динамики word FOR_RAS :4; word PR_AVAR :1; //Не используется word PR_SIFR :1; word PR_ZN :1; word PR_OK :1; //Признак залива, перекраски текущего цвета word PR_UP :1; //Признак управляемости word T_S_P :2; word_s Y_MIN; //Координата для залива word_s Y_MAX; word_s X_MIN; //Координата для залива word_s X_MAX; word_s X_PRED; word C_ZAP :5; //Цвет заполнения word C_BOR :5; //Цвет бордюра word O_ZAP :5; // word P_P_Z :1; //Не используется word N_KO :5; //Номер контроллера word P_E :1; //Тип параметра word NOM_PAR :10; //Номер записи в паспорте контроллера word_s X_SIFR;word_s Y_SIFR; word_s X_ZN ;word_s Y_ZN ; word_s X_KUR ;word_s Y_KUR ; }; struct statika { word TIP :5; word STIL :3; word COL :4; word OBRA :4; word_s s2,s3,s4,s5,s6,s7,s8,s9,s10; }; struct statikaed { char NameStat[12]; word TIP :5; word STIL :3; word COL :4; word OBRA :4; word_s s2,s3,s4,s5,s6,s7,s8,s9,s10; }; struct db_head { char ver; //Версия DBF (def = 3) char data[3]; //Дата модификации long numb_rec; //Количество записей short len_head; //Длина заголовка short len_rec; //Длина записи char res[20]; }; struct db_str_rec { char name[11]; //Имя поля char tip_fild; //Тип поля (C - ASCII; N - номер; L - логический; M - Memo; D - Data) long adr_in_mem; char len_fild; //Длина поля char dec_field; //Знаков после "." char res[14]; }; struct str8 { char name[8]; }; struct str9 { char name[9]; }; struct object // стpуктуpа описателя объекта упpавления { char cipher [10]; // шифp объекта char ciph_ds [10]; // шифp дискpетного сигнала byte n_ms ; // количество мнемосхем str8 *ciph_ms; // шифpы мнемосхем byte n_gr_c ; // кол. гpупп контуpов str9 *ciph_gr_c; // шифpы гpупп контуpов byte n_gr_g ; // кол. гpупп гpафиков str9 *ciph_gr_g; // шифpы гpупп гpафиков }; class TComboBox; class TEdit; class TMyLabel; struct str20 { char name[20]; char index; }; struct LabelEl { char activ; // номер EDIT или COMBO от кого активен char *NameEl; TMyLabel *Labelptr; }; struct EditEl { int lenEntr; char NameField[11]; char *EntMsk; char *znach; float def; char option; //бит 0-1: 1 - Не редактировать; 2 - Маск. ввод; 3 - Полный ввод TEdit *Editptr; //бит 2: Имя файла аналоговых паспартов }; //бит 3: Имя файла дискретных паспартов //бит 4: float struct ComboEl { int lenEntr; char NameField[11]; char NumbElem; str20 *StrElem; TEdit *Editptr; TComboBox *Comboptr; }; struct strelem { char tipElem; char ax_n; char ay_n; char n_el_comb; char st_el_comb[10]; union { LabelEl Label1; EditEl Edit1; ComboEl Combo1; }; }; struct tip_contr { char Name[11]; char NameAn[6]; char NameDig[6]; int NumbElem; strelem *Elem; int NumbElemAn; strelem *ElemAn; int NumbElemDig; strelem *ElemDig; }; class TCompCollect; struct frm_str { char name[257]; char tip; TCompCollect *inp; TCompCollect *koef; char *formul; }; struct alg_str { char name[10]; char *disript; word form; TCompCollect *inp; TCompCollect *koef; }; #pragma pack() extern char *Text_msg[]; extern char AlgConf[]; extern char NameDfal[]; extern char NameAlgFrm[]; extern char NameDescrCnt[]; extern char NameCntTip[]; extern char NameErr[]; extern char DomineMs[]; extern char StatikaMs[]; extern char DinamikaMs[]; extern char NameGrc[]; extern char NameGrg[]; extern char NameSign[]; extern char NameSign1[]; extern char NameView[]; extern char NameComt[]; extern char NamePCXLib[]; extern char NameWAVLib[]; extern char NameSpk[]; extern char NameFont[]; extern char NameHelp[]; const int cmProtocol = 200; const int cmAlgobls1 = 201; const int cmFindProtocol = 202; const int cmDelAlg = 203; const int cmFormuls1 = 204; const int cmTestDialog = 205; //const int cmMyChangeDir = 206; const int cmMsh = 207; const int cmGrc = 208; const int cmGrg = 209; const int cmSignal = 210; const int cmView = 211; const int cmCmpt = 212; const int cmLib = 213; const int cmSpeak = 214; const int cmContr = 215; const int cmPaspA = 216; const int cmPaspD = 217; const int cmAllCntr = 218; const int cmFill = 219; const int cmClustChange = 231; const int cmChange = 232; const int cmSearch = 233; const int cmSearchNext = 234; const int cmInsert = 235; const int cmDelete = 236; const int cmRename = 237; const int cmAdd = 238; const int cmReLoad = 239; const int cmSave1 = 240; const int cmMove = 241; const int cmRes1 = 250; const int cmRes2 = 251; const int hlChangeDir = cmChangeDir; class TMyApp; extern void DelSpace(char *str,char len); extern void CDECL DispFixErr(int op,char *fmt, ...); extern int chkbound(char *mask,float znach); extern int NoEdit(void* source,TEvent& event); extern long filelength_(int hd); extern int copyfile(int fh, int fh1, int size); extern ushort inputBoxN( const char *Title, const char *aLabel, char *s, int limit, int hist_id ); extern TMyApp *myApp; extern const int maxLineLength; extern const int maxLines; extern const int cmProtocol; extern const int cmAlgoblok; extern const int cmFindProtocol; extern const int cmDelAlg;