⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 一个医学的软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//---------------------------------------------------------------------------


#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SUIForm"
#pragma link "SUIMainMenu"
#pragma link "SUIStatusBar"
#pragma link "SUIToolBar"
#pragma link "SUIImagePanel"
#pragma link "SUIImagePanel"
#pragma link "SUIComboBox"
#pragma link "SUIColorBox"
#pragma resource "*.dfm"
TForm1 *Form1;
bool Editable=false;//是否开始编辑,false是不测量,true是测量
bool Saveable=false;//是否有修改,false是没有,true是有过修改
bool Dataable=false;//是否显示波形参数,false是不显示,true是显示
bool Pointable=false;//是否进行点编辑,false是进行
bool Coordinate=false;//是否显示
bool MultiImage=false;
bool MeasureKind=false;//测量的方式,false是手动,true是自动
bool CrossCursor=false;
bool NewDataType=false;//是否是新的文件类型,
bool OpenFiled=false;//是否已经打开了文件
bool LineColorful=true;//是否彩色显示叠加波形
int HEIGHT,WIDTH; //整个窗口的大小
int Standandx,Standandy;  //标准的图像的比例尺
int StandXoff,StandYoff;//标准图像的偏移
//int ForStand=1;//只有第一次才记录为标准
int Measure=0; //测量的不同项目
String DataFileName=NULL;
int aheadx=0;
int aheady=0;
int yrp,xtop,ytop,xbottom,ybottom;//取得图像的最低最高点
int imageclick=2;//在局部修改时,记录当前是第几次点
int ximagefirst,yimagefirst,ximagelast,yimagelast,imagedelta;
TColor CurColor=clBlack;//默认的当前颜色是黑色
//在局部修改时,记录第一次和第二次的点
FILE *pf=NULL;

//---------------------------------------------------------------------------
/****************************************************************************
Initialize the system
****************************************************************************/

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    //Form1->destr
    Form1->suiImagePanel1->DoubleBuffered=true;
    Form1->ShowHint=true;
    
    TForm4 *Form4 = new TForm4(this);
    Form4->ShowHint=true;

    MyPath=GetCurrentDir();

    Form1->ToolButton3->Enabled=false;
    Form1->ToolButton4->Enabled=false;
    Form1->ToolButton6->Enabled=false;
    Form1->ToolButton7->Enabled=false;
    Form1->ToolButton9->Enabled=false;
    Form1->ToolButton10->Enabled=false;
    Form1->ToolButton12->Enabled=false;
    Form1->ToolButton13->Enabled=false;
    Form1->ToolButton15->Enabled=false;
    Form1->ToolButton16->Enabled=false;
    //文件下
    Form1->S1->Enabled=false;
    Form1->I1->Enabled=false;
    Form1->N3->Enabled=false;
    Form1->N28->Enabled=false;
    Form1->N13->Enabled=false;
    //编辑下
    Form1->N7->Enabled=false;
    Form1->N8->Enabled=false;
    Form1->N26->Enabled=false;
    Form1->N9->Enabled=false;
    Form1->N10->Enabled=false;
    Form1->N31->Enabled=false;
    Form1->N32->Enabled=false;

    //测量下
    Form1->N17->Enabled=false;
    Form1->N19->Enabled=false;
    Form1->N22->Enabled=false;
    Form1->N24->Enabled=false;
    Form1->N27->Enabled=false;
    Form1->N20->Enabled=false;
    Form1->APD201->Enabled=false;
    Form1->APD501->Enabled=false;
    Form1->APD1->Enabled=false;
    //帮助下
    Form1->N15->Enabled=false;
    Form1->N30->Enabled=false;

    //Form1->N20->Enabled=false;
    //Form1->APD201->Enabled=false;
    //Form1->APD501->Enabled=false;
    //Form1->APD1->Enabled=false;



    HEIGHT=this->Height;
    WIDTH=this->Width;
    //Form1->Image1->Picture = NULL;
    Form1->suiStatusBar1->Panels->Items[0]->Text="请打开文件";
}
//---------------------------------------------------------------------------
/****************************************************************************
Exchange Edit model
****************************************************************************/

void __fastcall TForm1::ToolButton4Click(TObject *Sender)
{
    if(Editable==false)
    {
        if(Application->MessageBox("开始编辑", "Message", MB_YESNO)==IDYES)
        {
            Editable=true;
            Saveable=true;
            imageclick=2;
            Measure=0;
            Form1->N19->Enabled=false;
            Form1->N20->Enabled=false;
            Form1->APD201->Enabled=false;
            Form1->APD501->Enabled=false;
            Form1->APD1->Enabled=false;
            Form1->ToolButton6->Enabled=false;
            Form1->ToolButton7->Enabled=false;
            Form1->ToolButton9->Enabled=false;
            Form1->ToolButton10->Enabled=false;
            Form1->ToolButton12->Enabled=false;
            Form1->ToolButton13->Enabled=false;
            Form1->ToolButton15->Enabled=false;
            Form1->ToolButton16->Enabled=false;
            Form1->suiStatusBar1->Panels->Items[0]->Text="编辑状态_局部编辑 请确定起始点";
        }
    }
    else
    {
        if(Application->MessageBox("停止编辑", "Message", MB_YESNO)==IDYES)
        {
            Editable=false;
            imageclick=2;
            Form1->ToolButton6->Enabled=true;
            Form1->ToolButton7->Enabled=true;
            Form1->ToolButton9->Enabled=true;
            Form1->ToolButton10->Enabled=true;
            Form1->ToolButton12->Enabled=true;
            Form1->ToolButton13->Enabled=true;
            Form1->ToolButton15->Enabled=true;
            Form1->ToolButton16->Enabled=true;
            Form1->suiStatusBar1->Panels->Items[0]->Text="显示状态";
        }
    }
}
//---------------------------------------------------------------------------
/****************************************************************************
Quit system
****************************************************************************/
void __fastcall TForm1::X1Click(TObject *Sender)
{
    if(Saveable==true)
    {
        switch(Application->MessageBox("是否保存文件修改","Message",MB_YESNOCANCEL))
        {
            case IDYES:
                Form1->S1->Click();
            case IDNO:
                Saveable=false;
                this->Close();
                break;
            case IDCANCEL:
                break;
        }

    }
    else
        this->Close();
}
//---------------------------------------------------------------------------
/***********************************************************************
Setup the Setting of the Print
***********************************************************************/

void __fastcall TForm1::N4Click(TObject *Sender)
{
    Form1->PrinterSetupDialog1->Execute();
}
//---------------------------------------------------------------------------
/***********************************************************************
Print the Image
***********************************************************************/
void __fastcall TForm1::N3Click(TObject *Sender)
{
    TRect strect;
    int temhi,temwd;

    TPrinter *Prntr=Printers::Printer();
    //TPrinter Prntr=Printer();
    if(Form1->PrintDialog1->Execute())
    {

        temhi=Form1->Image1->Height*4;
        temwd=Form1->Image1->Width*4;
        strect.Top=(Prntr->PageHeight-temhi)/2;
        strect.Left=(Prntr->PageWidth-temwd)/2;
        strect.Bottom=strect.Top+temhi;
        strect.Right=strect.Left+temwd;


        Prntr->BeginDoc();
        Prntr->Canvas->StretchDraw(strect,Image1->Picture->Graphic);
        Prntr->EndDoc();
    }

}
//---------------------------------------------------------------------------
/***********************************************************************
Save the Image in BMP model
***********************************************************************/

void __fastcall TForm1::I1Click(TObject *Sender)
{
    int i=0;
    SaveDialog1->Filter="BMP FILE(*.bmp)|*.bmp";
    if(SaveDialog1->Execute())
    {
        if(SaveDialog1->FileName==NULL)
        {
            /*
            creat(SaveDialog1->FileName.c_str(),S_IREAD | S_IWRITE );
            if(SaveDialog1->FileName==NULL)
            {
                ShowMessage("保存文件失败");
                i=1;
            }
            */
            ShowMessage("保存文件失败");

        }
        else
        {
            Image1->Picture->SaveToFile(SaveDialog1->FileName+".bmp");
        }
    }



}
//---------------------------------------------------------------------------
/***********************************************************************
Save the Data in dat file
***********************************************************************/
void __fastcall TForm1::S1Click(TObject *Sender)
{
    FILE *pf=NULL;
	struct comframe stim[8][8]={0,};
	short int ni,temp3=3,temp2=2,temp0=0,num;
	char justify[0x10];
    ni=trial_dis.stim_num;

	stim[0][0].value=trial->out_amp;
	stim[0][0].time=trial->out_t1;
	stim[1][0].value=trial->hold_potential;
	stim[1][0].time=trial->out_t-trial->out_t1;
	stim[0][1].value=trial->out_amp;
	stim[0][1].time=trial->out_t1;
	stim[1][1].value=trial->hold_potential;
	stim[1][1].time=trial->out_t-trial->out_t1;

    SaveDialog1->Filter="数据文件(*.dat)|*.DAT";
    if(SaveDialog1->Execute())
    {
        if((pf=fopen(SaveDialog1->FileName.c_str(),"r+b"))==NULL)
        {
            creat(SaveDialog1->FileName.c_str(),S_IREAD | S_IWRITE );
            if((pf=fopen(SaveDialog1->FileName.c_str(),"r+b"))==NULL)
            {
                ShowMessage("保存文件失败");
                pf=NULL;
            }
        }
    }
    if(pf!=NULL)
    {
        DataFileName=SaveDialog1->FileName.c_str();
		fputs("NEW HUST DATA",pf);
		ffill('\0',0x10-ftell(pf),pf);
        fwrite(&temp3,sizeof(short unsigned),1,pf);
		fwrite(&temp2,sizeof(short unsigned),1,pf);
		fwrite(&(trial->stim_during),sizeof(short unsigned),1,pf);
		fwrite(&(trial->sample_inter),sizeof(short unsigned),1,pf);
		fwrite(&(trial->sample_delay),sizeof(short unsigned),1,pf);
		fwrite(&(trial->hold_potential),sizeof(short unsigned),1,pf);
		fwrite(&temp0,sizeof(short unsigned),1,pf);
		fwrite(&temp0,sizeof(short unsigned),1,pf);
		fwrite(&(trial->stim_number),sizeof(short unsigned),1,pf);
		fwrite(&temp0,sizeof(short unsigned),1,pf);
		fwrite(&(trial->out_t),sizeof(short int),1,pf);
		fwrite(&(trial->out_t1),sizeof(short int),1,pf);
		fwrite(&(trial->out_l),sizeof(short int),1,pf);
		fwrite(&(trial->out_n),sizeof(short int),1,pf);
		fwrite(&(trial->out_delay),sizeof(short int),1,pf);
		fwrite(&(trial->out_amp),sizeof(short int),1,pf);

		ffill('\0',0x30-ftell(pf),pf);
		fwrite(&((trial->inch[0]).num),sizeof(short int),1,pf);
		fwrite(&((trial->inch[0]).gain),sizeof(float),1,pf);
		fwrite(&((trial->inch[1]).num),sizeof(short int),1,pf);
		fwrite(&((trial->inch[1]).gain),sizeof(float),1,pf);

		ffill('\0',0x60-ftell(pf),pf);
		fwrite(&((trial->outch).gain),sizeof(float),1,pf);

		ffill('\0',0x80-ftell(pf),pf);
		fwrite(&((trial->inch[0]).unit),sizeof(char),4,pf);
		fwrite(&((trial->inch[1]).unit),sizeof(char),4,pf);
		ffill('\0',0xa0-ftell(pf),pf);
		fwrite(&((trial->outch).unit),sizeof(char),4,pf);


        ffill('\0',0xb0-ftell(pf),pf);
		fwrite(&record_clock,sizeof(REALTIME_T),1,pf);
		fwrite(&count_clock,sizeof(REALTIME_T),1,pf);
        fwrite(&sys_date.da_mon,sizeof(char),1,pf);
        fwrite(&sys_date.da_day,sizeof(char),1,pf);
        fwrite(&sys_date.da_year,sizeof(short int),1,pf);

		ffill('\0',0x100-ftell(pf),pf);
		fwrite(&(stim[0][0]),sizeof(struct comframe)*8*8,1,pf);

		ffill('\0',0x200-ftell(pf),pf);
		//fwrite("",sizeof(char),0x100,pf);
        for(num=0;num<=trial_dis.trial_num;num++)
		{
			fwrite(&(trial->ap_param[num].vmax),sizeof(int),1,pf);
			fwrite(&(trial->ap_param[num].rp),sizeof(int),1,pf);
			fwrite(&(trial->ap_param[num].apa),sizeof(int),1,pf);
			fwrite(&(trial->ap_param[num].apd20),sizeof(int),1,pf);
			fwrite(&(trial->ap_param[num].apd50),sizeof(int),1,pf);
			fwrite(&(trial->ap_param[num].apd90),sizeof(int),1,pf);
			fwrite(&(trial->ap_param[num].fc),sizeof(int),1,pf);
		}

		ffill('\0',0x300-ftell(pf),pf);
		fwrite((trial->in_data_buff)[ni],sizeof(short unsigned),trial->\
			stim_data,pf);
		fwrite((trial->fc_data_buff)[ni],sizeof(short unsigned),trial->\
			stim_data,pf);

		fclose(pf);
    }
    Saveable=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::O1Click(TObject *Sender)
{

    if(OpenFiled==true&&Saveable==true)
    {
        switch(Application->MessageBox("是否保存文件修改","Message",MB_YESNOCANCEL))
        {
            case IDYES:

                Form1->S1->Click();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -