?? unit1.cpp
字號(hào):
case IDNO:
OpenFiled=false;
pf=NULL;
DataFileName=NULL;
Editable=false;
Saveable=false;
Dataable=false;
Measure=0;
Pointable=false;
Coordinate=false;
MeasureKind=false;
CrossCursor=false;
Form1->Image1->Cursor=crDefault;
Form1->suiStatusBar1->Panels->Items[0]->Text="請(qǐng)打開文件";
Form1->N9->Caption="顯示坐標(biāo)系";
Form1->N10->Caption="顯示波形參數(shù)";
Form1->N27->Caption="顯示光標(biāo)";
Image1->Picture=NULL;
data_read();
break;
case IDCANCEL:
break;
}
}
else
data_read();
}
//---------------------------------------------------------------------------
void TForm1::data_read()
{
//FILE *pf;
short int i,cur_num,tmp,num;
long ref,next_ref;
char justify[0x10];
struct comframe stim[8][8];
short int ni;
AnsiString temp_path;
struct trialparam tmpparam;
trial=&trialgroup;
ni=trial_dis.stim_num;
num=trial_dis.trial_num;
memcpy(&tmpparam,trial,sizeof(struct trialparam));
ini_dis_trial();
NewDataType=false;
try{
pf=NULL;
if(OpenDialog1->Execute())
{
if((pf=fopen(OpenDialog1->FileName.c_str(),"r+b"))!=NULL)
{
fseek(pf,0,SEEK_SET);
fgets(justify,0x10,pf);
if(strcmp(justify,"BME HUST DATA")!=0&&strcmp(justify,"NEW HUST DATA")!=0)
{
ShowMessage("不能打開文件!");
pf=NULL;
}
}
else
{
ShowMessage("不能打開文件!");
pf=NULL;
}
DataFileName=OpenDialog1->FileName.c_str();
suiForm1->Caption="波形處理工具 "+AnsiString(DataFileName);
}
}
catch(...)
{
pf=NULL;
}
if(pf!=NULL)
{
Form1->Caption="波形處理工具"+AnsiString(OpenDialog1->FileName);
//Form1->Image1->Picture=NULL;
next_ref=1;
ref=0;
cur_num=0;
while(1){
if(cur_num==1)
break;
fseek(pf,ref+0x10,SEEK_SET);
fread(&tmp,sizeof(short int),1,pf);
fread(&tmp,sizeof(short int),1,pf);
fread(&trial->stim_during,sizeof(short int),1,pf);
fread(&trial->sample_inter,sizeof(short int),1,pf);
fread(&trial->sample_delay,sizeof(short int),1,pf);
fread(&trial->hold_potential,sizeof(short int),1,pf);
fread(&tmp,sizeof(short int),1,pf);
fread(&tmp,sizeof(short int),1,pf);
trial->stim_number=2;
trial->stim_data=trial_time_valuetopoint(trial,trial->stim_during);
next_ref=ref+0x300+trial->stim_number*trial->stim_data*sizeof(short unsigned);
strset(justify,'\0');
fseek(pf,next_ref,SEEK_SET);
fgets(justify,0x10-1,pf);
if(strcmp(justify,"BME HUST DATA"))
break;
ref=next_ref;
cur_num++;
} //End while(1);
if(num>cur_num){
ref=01;
cur_num=0;
}
//fseek(pf,ref+0x10,SEEK_SET);
fseek(pf,ref,SEEK_SET);
fgets(justify,0x10,pf);
fseek(pf,0x10,SEEK_SET);
fread(&tmp,sizeof(short int),1,pf);
fread(&tmp,sizeof(short int),1,pf);
fread(&trial->stim_during,sizeof(short int),1,pf);
fread(&trial->sample_inter,sizeof(short int),1,pf);
fread(&trial->sample_delay,sizeof(short int),1,pf);
fread(&trial->hold_potential,sizeof(short int),1,pf);
fread(&tmp,sizeof(short int),1,pf);
fread(&tmp,sizeof(short int),1,pf);
fread(&trial->stim_number,sizeof(short int),1,pf);
fread(&tmp,sizeof(short int),1,pf);
fread(&trial->out_t,sizeof(short int),1,pf);
fread(&trial->out_t1,sizeof(short int),1,pf);
fread(&trial->out_l,sizeof(short int),1,pf);
fread(&trial->out_n,sizeof(short int),1,pf);
fread(&trial->out_delay,sizeof(short int),1,pf);
fread(&trial->out_amp,sizeof(short int),1,pf);
trial->stim_data=trial_time_valuetopoint(trial,trial->stim_during);
fseek(pf,ref+0x30,SEEK_SET);
fread(&((trial->inch[0]).num),sizeof(short int),1,pf);
fread(&((trial->inch[0]).gain),sizeof(float),1,pf);
fread(&((trial->inch[1]).num),sizeof(short int),1,pf);
fread(&((trial->inch[1]).gain),sizeof(float),1,pf);
fseek(pf,ref+0x60,SEEK_SET);
fread(&((trial->outch).gain),sizeof(float),1,pf);
fseek(pf,ref+0x80,SEEK_SET);
fread(&((trial->inch[0]).unit),sizeof(char),4,pf);
fread(&((trial->inch[1]).unit),sizeof(char),4,pf);
fseek(pf,0xa0,SEEK_SET);
fread((trial->outch).unit,sizeof(char),4,pf);
fseek(pf,ref+0xb0,SEEK_SET);
fread(&record_clock,sizeof(REALTIME_T),1,pf);
fread(&count_clock,sizeof(REALTIME_T),1,pf);
//fread(&sys_date,sizeof(struct date),1,pf);
fread(&sys_date.da_mon,sizeof(char),1,pf);
fread(&sys_date.da_day,sizeof(char),1,pf);
fread(&sys_date.da_year,sizeof(short int),1,pf);
fseek(pf,ref+0x100,SEEK_SET);
fread(&(stim[0][0]),sizeof(struct comframe),8*8,pf);
trial->out_amp=stim[0][0].value;
trial->out_t1=stim[0][0].time;
trial->hold_potential=stim[1][0].value;
trial->out_t=trial->out_t1+stim[1][0].time;
trial->stim_number=tmpparam.stim_number;
fseek(pf,ref+0x200,SEEK_SET);
if(strcmp(justify,"NEW HUST DATA")==0)
//讀取試驗(yàn)參數(shù)
{
NewDataType=true;
fseek(pf,ref+0x200,SEEK_SET);
for(i=0;i<=trial_dis.trial_num;i++)
{
fread(&(trial->ap_param[i].vmax),sizeof(int),1,pf);
fread(&(trial->ap_param[i].rp),sizeof(int),1,pf);
fread(&(trial->ap_param[i].apa),sizeof(int),1,pf);
fread(&(trial->ap_param[i].apd20),sizeof(int),1,pf);
fread(&(trial->ap_param[i].apd50),sizeof(int),1,pf);
fread(&(trial->ap_param[i].apd90),sizeof(int),1,pf);
fread(&(trial->ap_param[i].fc),sizeof(int),1,pf);
}
}
else
{
trial->ap_param[0].vmax=0;
trial->ap_param[0].rp=0;
trial->ap_param[0].apa=0;
trial->ap_param[0].apd20=0;
trial->ap_param[0].apd50=0;
trial->ap_param[0].apd90=0;
trial->ap_param[0].fc=0;
}
fseek(pf,ref+0x300,SEEK_SET);
if(ni>=0&&ni<trial->stim_number){
trial->in_data_buff[ni]=new short unsigned[trial->stim_data];
trial->fc_data_buff[ni]=new short unsigned[trial->stim_data];
fread(trial->in_data_buff[ni],sizeof(short unsigned),(size_t)trial->stim_data,\
pf);
fread(trial->fc_data_buff[ni],sizeof(short unsigned),(size_t)trial->stim_data,\
pf);
}
fclose(pf);
if(MultiImage==false)
{
Form1->Button1->Enabled=true;
Form1->Button2->Enabled=true;
Form1->ToolButton3->Enabled=true;
Form1->ToolButton4->Enabled=true;
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->S1->Enabled=true;
Form1->I1->Enabled=true;
Form1->N3->Enabled=true;
Form1->N28->Enabled=true;
//編輯下
Form1->N7->Enabled=true;
Form1->N8->Enabled=true;
Form1->N9->Enabled=true;
Form1->N10->Enabled=true;
Form1->N13->Enabled=true;
//測(cè)量下
Form1->N17->Enabled=true;
Form1->N22->Enabled=true;
Form1->N24->Enabled=true;
Form1->N27->Enabled=true;
//幫助下
Form1->N15->Enabled=true;
}
else
{
temp_path="c:\\MyTempImage.bmp";
Form1->Image1->Picture->SaveToFile(temp_path);
}
OpenFiled=true;
Form1->Button1->Click();
Form1->suiStatusBar1->Panels->Items[0]->Text="顯示狀態(tài)";
}
}
//---------------------------------------------------------------------------
/****************************************************************************
Edit part of the data
****************************************************************************/
void __fastcall TForm1::N7Click(TObject *Sender)
{
if(Application->MessageBox("開始編輯", "Message", MB_YESNO)==IDYES)
{
Editable=true;
Saveable=true;
imageclick=2;
Form1->suiStatusBar1->Panels->Items[0]->Text="編輯狀態(tài)_局部編輯 請(qǐng)確定起始點(diǎn)";
if(Pointable==true)
Pointable=false;
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;
}
}
//---------------------------------------------------------------------------
/****************************************************************************
Edit Point of the data
****************************************************************************/
void __fastcall TForm1::N8Click(TObject *Sender)
{
if((Application->MessageBox("開始逐點(diǎn)編輯", "Message", MB_YESNO))==IDYES)
{
Editable=true;
Saveable=true;
if(Pointable==false)
Pointable=true;
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="編輯狀態(tài)_點(diǎn)編輯";
}
}
//---------------------------------------------------------------------------
/***********************************************************************
切換是否顯示坐標(biāo)系
***********************************************************************/
void __fastcall TForm1::N9Click(TObject *Sender)
{
if(Coordinate==true)
{
Coordinate=false;
//ShowMessage("不顯示坐標(biāo)系");
Form1->N9->Caption="顯示坐標(biāo)系";
}
else
{
Coordinate=true;
//ShowMessage("顯示坐標(biāo)系");
Form1->N9->Caption="不顯示坐標(biāo)系";
}
Form1->Button1->Click();
}
//---------------------------------------------------------------------------
/***********************************************************************
切換是否顯示波形參數(shù)
***********************************************************************/
void __fastcall TForm1::N10Click(TObject *Sender)
{
if(Dataable==false)
{
Dataable=true;
//ShowMessage("顯示波形參數(shù)");
Form1->N10->Caption="不顯示波形參數(shù)";
}
else
{
Dataable=false;
//ShowMessage("不顯示波形參數(shù)");
Form1->N10->Caption="顯示波形參數(shù)";
}
Form1->Button1->Click();
Form1->Button3->Click();
}
//---------------------------------------------------------------------------
/***********************************************************************
刷新顯示
***********************************************************************/
//---------------------------------------------------------------------------
/***********************************************************************
切換多圖和單圖狀態(tài)
***********************************************************************/
void __fastcall TForm1::N13Click(TObject *Sender)
{
AnsiString temp_path;
if(MultiImage==true)
{
if(Application->MessageBox("進(jìn)入單波顯示狀態(tài)", "Message", MB_YESNO)==IDYES)
{
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -