📄 bfdell.cpp
字号:
x=orig_x; y=orig_y;
hilight(x,y);
chip[0]='\0';
left[0]='\0';
right[0]='\0';
trim_right(string);
trim_left(string);
strcpy(right,string);
i=strlen(right);
if(start>i) chip_left(left,right,i);
else chip_left(left,right,start);
outtextxy(x,y,left);
start:moveto(x,y);
for(;;)
{
ext2=1;
ch=0;
letter=0;
len_left=strlen(left);
len_right=strlen(right);
moveto(x,y);
if(mouse_test_sign==1){
BOY_MOUSE_VIEW();
while(!kbhit()){
BOY_MOUSE_GETALL(&p1,&p2,&p3);
for(i=0;i<nx;i++){
if(p3!=1) break;
if((p2>=y)&&(p2<=y+8)) break;
if((p1-orig_x>=0)&&(p1-orig_x<=inlength*8)&&(p2+16*bx>y+16*i)&&(p2+16*bx<y+16*(i+1))){
while(BOY_MOUSE_BUTTON());
BOY_MOUSE_HIDE();
hilight(x,y);//dimlight(x,y);
if(len_right>0) trim_right(right);
if(len_left>0) trim_left(left);
len_left=strlen(left);
len_right=strlen(right);
ext2=(-1)*i;
break;
}
}
if(ext2<=0) break;
if((p3==1)&&(p1-orig_x>=0)&&(p1-orig_x<=inlength*8)&&(p2>=y)&&(p2<=y+8)){
judge=floor((p1-x)/8);
while(BOY_MOUSE_BUTTON());
if(judge<=0){
chip_right(chip,left,1-judge);
strcat(chip,right);
strcpy(right,chip);
}
else{
chip_left(chip,right,judge);
strcat(left,chip);
}
BOY_MOUSE_HIDE();
hilight(x,y);//dim
len_left+=judge;
len_right-=judge;
x=orig_x+textwidth("8")*len_left;
moveto(x,y);
break;
}
if(p3==2){
BOY_MOUSE_HIDE();
return_code=ESCAPE;
return(return_code);
}
if(p3==1){
if(BOY_MOUSE_INBOX(M_right-17,M_top+6,M_right-6,M_top+19)==1){
while(BOY_MOUSE_BUTTON()==1);
BOY_MOUSE_HIDE();
return_code=ESCAPE;
return(return_code);
}
if(BOY_MOUSE_INBOX(M_left+6,M_top+6,M_left+17,M_top+19)==1){
while(BOY_MOUSE_BUTTON()==1);
BOY_MOUSE_HIDE();
ext2=PGDN;
return_code=PGDN;
break;
}
if(BOY_MOUSE_INBOX(30,5,62,21)==1){
while(BOY_MOUSE_BUTTON());
BOY_MOUSE_HIDE();
setfillstyle(1,9);
bar(30,5,62,21);
if(!insert) disp_hz_str(30,5,"插入",15);
else disp_hz_str(30,5,"覆盖",15);
insert=!insert;
BOY_MOUSE_VIEW();
}
}
}
if(kbhit()){
BOY_MOUSE_HIDE();
get_key(&ch,&ext2);
}
}
else get_key(&ch,&ext2);
if(ch>=32) letter=TRUE;
if(ext2==INSERT){
setfillstyle(1,9);
bar(30,5,62,21);
if(!insert) disp_hz_str(30,5,"插入",15);
else disp_hz_str(30,5,"覆盖",15);
insert=!insert;
}
if(len_right>0) trim_right(right);
if(len_left>0) trim_left(left);
len_left=strlen(left);
len_right=strlen(right);
if(!letter)
{
if(ext2==HOME&&len_left>0)
{
strcat(left,right);
strcpy(right,left);
len_right=len_left+len_right;
len_left=0;
left[0]='\0';
hilight(x,y);//dim
x=orig_x;
}
if(ext2==END)
{
strcat(left,right);
len_left=len_left+len_right;
len_right=0;
right[0]='\0';
hilight(x,y);//dim
x=orig_x+textwidth("8")*len_left;
}
if(ext2==LEFT&&len_left>0)
{
chip_right(chip,left,1);
strcat(chip,right);
strcpy(right,chip);
hilight(x,y);//dim
x=x-textwidth("8");
len_left--;
len_right++;
}
if(ext2==RIGHT&&len_right>0)
{
chip_left(chip,right,1);
strcat(left,chip);
hilight(x,y);//dim
x=x+textwidth("8");
len_right--;
len_left++;
}
if(ext2==DELETE&&len_right>0)
{
chip_left(chip,right,1);
len_right--;
}
}
if(ch==BACKSPACE&&len_left>0)
{
chip_right(chip,left,1);
hilight(x,y);//dim
x=x-textwidth("8");
len_left--;
}
if(letter)
{
hilight(x,y);//dim
if(insert&&(len_left+len_right>=inlength))
{
putchar(BELL); letter=0;
}
else
{
if(insert)
{
x=x+textwidth("8");
left[len_left++]=ch;
left[len_left]='\0';
}
if(!insert)
{
if(len_left==inlength)
{
putchar(BELL);
letter=0;
}
else
{
chip_left(chip,right,1);
left[len_left++]=ch;
left[len_left]='\0';
len_right--;
x=x+textwidth("8");
}
}
}
}
moveto(x,y);
if(x<orig_x) x=orig_x;
if(x>orig_x+textwidth("8")*inlength) x=orig_x;
if(len_left<0) len_left=0;
if(len_right<0) len_right=0;
size=imagesize(orig_x,orig_y,orig_x+textwidth("8")*(inlength+1),
orig_y+textheight("8")+2);
bk_erase=(char *)(malloc(size));
if(bk_erase==NULL) return(0);
getimage(orig_x,orig_y,orig_x+textwidth("8")*(inlength+1),
orig_y+textheight("8")+2,bk_erase);
putimage(orig_x,orig_y,bk_erase,XOR_PUT);
free(bk_erase);
bk_erase=NULL;
moveto(orig_x,orig_y);
outtext(left);
wherexy(&x,&y);
hilight(x,y);
outtext(right);
if(ch==RETURN||ext2==UP||ext2==DOWN||ext2<=0)
{
hilight(x,y);//dim
break;
}
if(ext2==PGUP||ext2==PGDN) break;
if(ch==ESCAPE) break;
}
switch(ext2)
{
case UP: return_code=UP; break;
case DOWN: return_code=DOWN; break;
case PGUP: return_code=PGUP; break;
case PGDN: return_code=PGDN; break;
}
if(ch==RETURN) return_code=RETURN;
if(ch==ESCAPE) return_code=ESCAPE;
if(ext2<=0) return_code=ext2;
strcat(left,right);
strcpy(string,left);
if(ret_code==0)
{
putchar(BELL);
goto start;
}
return(return_code);
}
void WriteMode(int mode)
{
outportb(0x3CE,5);
outportb(0x3CF,mode);
}
void closescr()
{
unsigned char byt;
outportb(0x3c4,1);
byt=inportb(0x3c5);
byt|=0x20;
outportb(0x3c5,byt);
return;
}
void openscr()
{
unsigned char byt;
outportb(0x3c4,1);
byt=inportb(0x3c5);
byt&=0xdf;
outportb(0x3c5,byt);
return;
}
void board(int left,int top,int right,int bottom,int leavel,int color)
{
win_board(left*8,top*18,right*8,bottom*18,leavel,6,color);
}
void cssz_ch(int cs[13])
{
int exxt,kk;
struct in_struc in_scrn[13]={
Scrn_x,Scrn_y,"富集电位mv:",NULL,5,-1400,200,
Scrn_x,Scrn_y+16,"富集时间s :",NULL,5,0,9999,
Scrn_x,Scrn_y+32,"起始电位mv:",NULL,5,-1400,200,
Scrn_x,Scrn_y+48,"终止电位mv:",NULL,5,-1400,200,
Scrn_x,Scrn_y+64,"脉冲增量mv:",NULL,5,10,100,
Scrn_x,Scrn_y+80,"脉冲宽度ms:",NULL,5,10,100,
Scrn_x,Scrn_y+96,"间隔时间s :",NULL,5,1,32,
Scrn_x,Scrn_y+112,"斜率增量mv:",NULL,5,1,16,
Scrn_x,Scrn_y+128,"清洗电压mv:",NULL,5,-1400,200,
Scrn_x,Scrn_y+144,"清洗时间s :",NULL,5,0,9999,
Scrn_x,Scrn_y+160,"静止时间s :",NULL,5,0,9999,
Scrn_x,Scrn_y+176,"扫描档位 :",NULL,5,1,12,
Scrn_x,Scrn_y+192,"档位倍率 :",NULL,5,1,5,
};
for(kk=0;kk<13;kk++){
in_scrn[kk].ptr=(char *)malloc(sizeof(" "));
itoa(cs[kk],in_scrn[kk].ptr,10);
}
saveimage("text.img",10,68,201,324);
win_board(10,68,200,322,30,6,0);
disp_hz_str(68,73,"参数设置",15);
exxt=miti_fld1(in_scrn,13,200,10,68);
loadimage("text.img",10,68,201,324);
for(kk=0;kk<13;kk++){
if(exxt!=27) cs[kk]=atoi(in_scrn[kk].ptr);
if(in_scrn[kk].ptr!=NULL) free(in_scrn[kk].ptr);
}
if(exxt==27) bell(400,0);
else bell(400,1);
}
int auto_sz(char *in_str1,char *in_str2,int s_flag)
{
int exxt,i;
char *sign_str[4]={"差示脉冲溶出","差示脉冲伏安","线性扫描伏安","循环扫描伏安"};
struct in_struc in_scrn4[2]={
20,112,"间隔时间s:",NULL,2,15,15,
20,132,"测试次数 :",NULL,2,15,15,
};
in_scrn4[0].ptr=(char *)malloc(sizeof("0"));
in_scrn4[1].ptr=(char *)malloc(sizeof("0 "));
strcpy(in_scrn4[0].ptr,in_str1);
strcpy(in_scrn4[1].ptr,in_str2);
saveimage("filename.img",8,80,182,160);
win_board(8,80,180,158,20,6,0);
disp_hz_str(44,85,sign_str[s_flag],15);
exxt=miti_fld(in_scrn4,2,180,8,80);
loadimage("filename.img",8,80,182,160);
if(exxt!=27){
strcpy(in_str1,in_scrn4[0].ptr);
strcpy(in_str2,in_scrn4[1].ptr);
}
free(in_scrn4[0].ptr);
free(in_scrn4[1].ptr);
return exxt;
}
int get_str(char *in_str[1],int flag,int type)
{
int exxt;
char *type_str[4]={"保存曲线文件","打开曲线文件","保存数据文件","打开数据文件"};
struct in_struc in_scrn[1]={
12,100,"请输入文件名:",NULL,16,15,15,
};
in_scrn[0].ptr=(char *)malloc(sizeof(" "));
if(flag==1) in_str[0]="*.dat ";
strcpy(in_scrn[0].ptr,in_str[0]);
saveimage("filename.img",2,60,278,122);
win_board(2,60,276,120,20,6,0);
disp_hz_str(84,65,type_str[type],15);
exxt=miti_fld(in_scrn,1,276,2,60);
loadimage("filename.img",2,60,278,122);
if(exxt!=27) in_str[0]=strdup(in_scrn[0].ptr);
free(in_scrn[0].ptr);
return exxt;
}
void spara_cun(void)
{
char *filename[1];
char *pf;
FILE *fp;
int number,handle;
int press_key=0;
int i=0;
int s_flag=0;
for(i=0;i<l_number-1;i++){
if(l_data[i]!=l_data[i+1]){
s_flag=1;
break;
}
else s_flag=0;
}
if(s_flag==0){
button("没有校准数据!",0,0,1,0);
return;
}
if(get_str(filename,1,2)==27) return;
_fmode=O_BINARY;
pf=searchpath(filename[0]);
if(pf!=NULL){
press_key=file_warn(2);
if((press_key==5497)||(press_key==5465)){
fp=fopen(filename[0],"wb");
fprintf(fp,"%d\n",1);
fprintf(fp,"%d\n",l_number);
for(i=0;i<2*l_number;i++) fprintf(fp,"%f\n",l_data[i]);
bell(400,1);
fclose(fp);
}
}
else{
handle=creat(filename[0],S_IWRITE|S_IREAD);
fp=fdopen(handle,"wb");
if(fp==NULL){
file_warn(3);
return;
}
fprintf(fp,"%d\n",1);
fprintf(fp,"%d\n",l_number);
for(i=0;i<2*l_number;i++) fprintf(fp,"%f\n",l_data[i]);
fclose(fp);
}
bell(400,1);
return;
}
void spara_diao(void)
{
char *filename[1];
FILE *fp;
int exxt,number;
int i=0;
exxt=get_str(filename,1,3);
if(exxt==ESCAPE) return;
fp=fopen(filename[0],"r");
if(fp==NULL){
file_warn(0);
return;
}
fscanf(fp,"%d\n",&number);
fscanf(fp,"%d\n",&l_number);
if(number!=1){
file_warn(1);
return;
}
else{
for(i=0;i<2*l_number;i++) fscanf(fp,"%f\n",&l_data[i]);
}
fclose(fp);
bell(400,1);
return;
}
void point_line()
{
int x0,y0;
int i;
char *buf[10]={"1","2","3","4","5","6","7","8","9","10"};
x0=270;y0=420;
setcolor(15);
line(200,421,600,421);
line(274,120,274,421);
setcolor(0);
line(200,420,600,420);
line(273,120,273,421);
for(i=-2;i<=10;i++){
line(x0+30*i+3,421,x0+30*i+3,425);
itoa_test(x0+30*i,427,i,0,8);
};
for(i=1;i<=10;i++){
outtextxy(x0-2,y0-30*i,"-");
outtextxy(x0-2-8*strlen(buf[i-1]),y0-30*i,buf[i-1]);
};
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -