Giáo trình hình thành phân mạch ứng dụng điều chế thiết bị bán dẫn chứa các mạch logic điện tử p7

7 10 0
Giáo trình hình thành phân mạch ứng dụng điều chế thiết bị bán dẫn chứa các mạch logic điện tử p7

Đang tải... (xem toàn văn)

Thông tin tài liệu

[r]

(1)

LUÂÄN VĂN TỐT NGHIỆP 67 if ((buf = farmalloc(size)) == NULL)

{

OutMessage("Error: not enough heap space in save_screen()."); getch();

closegraph(); exit(1); }

else {

getimage(x1,y,x,y1,buf);

OutMessage("Click a drive name in the list"); }

setfillstyle(SOLID_FILL,WHITE); bar(x1,y,x,y1);

setcolor(BLACK); rectangle(x,y,x1,y1); setcolor(LIGHTGRAY); line(x-1,y+1,x-1,y1-1); line(x1+1,y1-1,x-1,y1-1); setcolor(BLACK);

char Temp[3];

for(int i=0;i<NumDisk;i++) {

sprintf(Temp,"%c:",DiskName[i]); outtextxy(x1+10,y+10+i*14,Temp); }

for(i=0;i<NumDisk;i++) if(*DName==DiskName[i])

break;

setfillstyle(SOLID_FILL,BLUE); bar(x1+1,y+7+14*i,x-1,y+7+14+14*i); setcolor(YELLOW);

sprintf(Temp,"%c:",DiskName[i]); outtextxy(x1+10,y+10+i*14,Temp);

LPEVENT LpEvent;

{

ShowMouse(); delay(50);

LpEvent=GetEvent(); HideMouse();

if(LpEvent->Msg==1) for(i=0;i<NumDisk;i++)

if(LpEvent->Posx>=x1+1&&LpEvent->Posx<=x-1&&LpEvent->Posy>=y+7+i*14&&LpEvent->Posy<=y+7+14+i*14)

{

bar(x1+1,y+7+14*i,x-1,y+7+14+14*i); *DName=DiskName[i];

setdisk((int)*DName-65); }

}while(LpEvent->Msg!=1); putimage(x1,y,buf,COPY_PUT); farfree(buf);

return LpEvent; }

// - char *FileType(TEXTBOX *b)

{

(2)

b->Path();

b->OutTextBox(); b->GetS(s); return s; }

VI.CLASS LIST.HPP #include "textbox.hpp" #include "disklist.hpp" #if !defined LIST #define LIST class LIST

{

private:

int l,t,r,b; int Color; public:

void InitList(int x1,int y1,int x2,int y2,int Color); void Show();

int Press(char s[],TEXTBOX *Box,unsigned *attrib,char *DiskName,char *DName,char *ftype);

int GetList(char s[],TEXTBOX *Box,unsigned *attrib,char *DiskName,char *DName,TEXTBOX *Box2,char *ftype);

int Left(){return l;}; int Right(){return r;}; int Top(){return t;}; int Bottom(){return b;}; };

#endif

VII.MODULE LIST.CPP

#include <graphics.h> #include <dir.h> #include <dos.h> #include <stdlib.h> #include <string.h> #include <alloc.h> #include <stdio.h> #include <conio.h> #include <ctype.h> #include "mouse.h" #include "list.hpp"

// - void LIST::InitList(int x1,int y1,int x2,int y2,int col) {

Color=col;

l=x1;t=y1;r=x2;b=y2; }

// - void LIST::Show()

{

setfillstyle(SOLID_FILL,Color); bar(l,t,r,b);

int hor=(r-l)/3,ver=(b-t)/3;

int x1=l+hor,x2=r-hor,x3=l+(r-l)/2,y1=t+ver,y2=t+ver,y3=b-ver; setcolor(WHITE);

line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x1,y1,x3,y3);

setfillstyle(SOLID_FILL,WHITE);

(3)

LUÂÄN VĂN TỐT NGHIỆP 69 setfillstyle(SOLID_FILL,Color);

setcolor(BLACK); line(l,b,r,b); line(r,t,r,b); setcolor(WHITE); line(l,t,r,t); line(l,t,l,b); }

// - int LIST::Press(char s[],TEXTBOX *Box,unsigned *attrib,char *DiskName,char *DName,char *ftype)

//tra ve 0:nhan Cancel //tra ve 1:nhan OK {

TEXTBOX Box2;

HideMouse();

int hor=(r-l)/3,ver=(b-t)/3;

int x1=l+hor,x2=r-hor,x3=l+(r-l)/2,y1=t+ver,y2=t+ver,y3=b-ver;

setcolor(BLACK); line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x1,y1,x3,y3);

setfillstyle(SOLID_FILL,BLACK);

floodfill(x1+(x2-x1)/2,y1+(y3-y2)/2,BLACK); setfillstyle(SOLID_FILL,Color);

setcolor(WHITE);//vien cho nut bi nhan line(l,b,r,b);

line(r,t,r,b);

setcolor(BLACK);//vien cho nut bi nhan line(l,t,r,t);

line(l,t,l,b);

int k=0;

*DName=Disk(DiskName);

{

char buffer[MAXPATH];

k=GetList(s,Box,attrib,DiskName,DName,&Box2,ftype); getcwd(buffer, MAXPATH);

Box->GetS_in(buffer); Box->OutTextBox(); }while(k==2);

ShowMouse();

return k;//k=0: nhan Cancel, k=1:nhan OK }

// - int LIST::GetList(char s[],TEXTBOX *Box,unsigned *attrib,char *DiskName,char *DName,TEXTBOX *Box2,char *ftype)

{

int x11=l-300,y11=b,x12=r+100,y12=b+300;//toa bang ngoai //600 x 300 la kich thuoc bang ngoai

int Kiemtra=0;//bien de kiem tra truong hop chon OK truoc chon file

LPEVENT lpEvent;//kiem tra bang thu muc

(4)

unsigned int size = imagesize(x11,y11,x12,y12); if ((buf = farmalloc(size)) == NULL)

{

OutMessage("Error: not enough heap space in save_screen()."); getch();

closegraph(); exit(1); }

else {

getimage(x11,y11,x12,y12, buf);

OutMessage("Choose a file name then click OK to accept or click Cancel to ignore");

}

setfillstyle(SOLID_FILL,LIGHTGRAY);//GREEN); bar(x11,y11,x12,y12);//ve bang ngoai

int x21=x11+5,y21=y11+5,x22=x12-120,y22=y12-77;//75;//toa bang liet ke

setfillstyle(SOLID_FILL,WHITE);//MAGENTA); bar(x21,y21,x22,y22);//ve bang liet ke

int x31=x22+30,y31=y21+50,x32=x31+60,y32=y31+20;//toa nut OK

int x41=x31,y41=y31+100,x42=x32,y42=y32+100;

setcolor(WHITE);

line(x11,y11,x12,y11); line(x11,y11,x11,y12);

line(x22+2,y21-2,x22+2,y22+2);//vien cho bang liet ke line(x21-1,y22+2,x22+2,y22+2);//vien cho bang liet ke

line(x31,y31,x32,y31);//vien cho nut OK line(x31,y31,x31,y32);//vien cho nut OK

line(x41,y41,x42,y41);//vien nut Cancel line(x41,y41,x41,y42);//vien nut Cancel

setcolor(BLACK);

line(x12,y11,x12,y12); line(x11,y12,x12,y12);

line(x21,y21,x22,y21);//vien cho bang liet ke line(x21,y21,x21,y22);//vien cho bang liet ke

line(x32,y31,x32,y32);//vien cho nut OK line(x31,y32,x32,y32);//vien cho nut OK

line(x42,y41,x42,y42);//vien nut Cancel line(x41,y42,x42,y42);//vien nut Cancel

setcolor(DARKGRAY);

line(x21-1,y21-1,x22+1,y21-1);//vien cho bang liet ke line(x21-1,y21-1,x21-1,y22+1);//vien cho bang liet ke

setcolor(BLUE);

(5)

LUÂÄN VĂN TỐT NGHIỆP 71 int x33=x31+(x32-x31-textwidth(S3))/2;

int y33=y31+(y32-y31-textheight(S3))/2; outtextxy(x33,y33,S3);

int x44=x41+(x42-x41-textwidth(S4))/2; int y44=y41+(y42-y41-textheight(S4))/2; outtextxy(x44,y44,S4);

struct ffblk FF;

struct ffblk Lis[200];

char path[100]; getcurdir(0, path); int done;

int x51=x21,x52=x51+130,y51=y22+28,y52=y51+20; int x61=x21,x62=x12-5,y61=y12-25,y62=y12-5;

Box2->InitTextBox(x51,y51,x52,y52,WHITE,LIGHTBLUE,"Type of file"); Box2->GetS_in(ftype);

Box2->OutTextBox(); setcolor(BLACK);

line(x51+1,y51+1,x52-1,y51+1); line(x51+1,y51+1,x51+1,y52-1); setcolor(LIGHTGRAY);

line(x51+1,y52-1,x52-1,y52-1); line(x52-1,y51+1,x52-1,y52-1);

setfillstyle(SOLID_FILL,WHITE); bar(x61,y61,x62,y62);

setcolor(BLACK);

line(x61,y61,x62,y61); line(x61,y61,x61,y62);

line(x61+1,y61+1,x62-1,y61+1); line(x61+1,y61+1,x61+1,y62-1); setcolor(LIGHTGRAY);

line(x62-1,y61+1,x62-1,y62-1); line(x61+1,y62-1,x62-1,y62-1);

//DiskBox

int x71=x52+30,x72=x22,y71=y51,y72=y52;//toa DiskBox char DNameTemp[4];

sprintf(DNameTemp,"%c:",*DName); TEXTBOX DiskBox;

DiskBox.InitTextBox(x71,y71,x72,y72,WHITE,LIGHTBLUE,"Driver name"); DiskBox.GetS_in(DNameTemp);

DiskBox.OutTextBox(); setcolor(BLACK);

line(x71+1,y71+1,x72-1,y71+1); line(x71+1,y71+1,x71+1,y72-1); setcolor(LIGHTGRAY);

line(x71+1,y72-1,x72-1,y72-1); line(x72-1,y71+1,x72-1,y72-1);

LIST DriList;//nut nhan chon o dia

int x81=x72-19,y81=y71+2,x82=x72-2,y82=y72-2; DriList.InitList(x81,y81,x82,y82,LIGHTGRAY); DriList.Show();

done=findfirst("*",&FF,FA_DIREC); Lis[0]=FF;

(6)

{//choose disk HideMouse(); setcolor(BLACK); line(x81,y81,x82,y81); line(x81,y81,x81,y82);

line(x81+1,y81-1,x81+1,y82-1); char OldDName=*DName;

CheckChooseDisk(DiskName,DName,lpEvent,x82,y82); if(OldDName!=*DName)

{

putimage(x11,y11,buf,COPY_PUT); farfree(buf);

return 2; }

setcolor(WHITE); line(x81,y81,x82,y81); line(x81,y81,x81,y82);

line(x81+1,y81-1,x81+1,y82-1); ShowMouse();

}

for(j=0;j<15&&j<dem&&lpEvent->Msg==1;j++)//kiem tra file chon neu co chon

if(tempx1<= lpEvent->Posx&&tempx2>=lpEvent->Posx)

if((tempy1+j*14)<=lpEvent->Posy&&(tempy2+j*14)>=lpEvent->Posy)

{

Arrowkey: HideMouse();

setfillstyle(SOLID_FILL,WHITE);//MAGENTA); bar(oldx1,oldy1,oldx2,oldy2);

setcolor(BLACK);//LIGHTGREEN);

outtextxy(x21+8,oldy1+3,Lis[Dem+over].ff_name); setfillstyle(SOLID_FILL,BLUE);

oldx1=tempx1,

oldy1=tempy1+j*14,oldx2=tempx2,oldy2=tempy2+j*14; bar(oldx1,oldy1,oldx2,oldy2); setcolor(YELLOW);

outtextxy(x21+8,oldy1+3,Lis[j+over].ff_name);

_dos_getfileattr(Lis[j+over].ff_name,attrib);

strcpy(s,Lis[j+over].ff_name); if(strcmp(s,".")==0) strcpy(s,"\\"); Dem=j;

End:

Kiemtra=1;//bao hieu co nhan vao list }

if(>Msg==1&&(j==15)&&tempx1<= lpEvent- >Posx&&tempx2>=lpEvent->Posx&&(tempy1+j*14)<=lpEvent->Posy&&(tempy2+j*14)>=lpEvent->Posy)

//truong hop vet tro file o cuoi bang list va nhap chuot ben duoi vet tro

{

lpEvent->Posx=x11; lpEvent->Posy=y11; delay(50);

goto MouseDown; }

if(>Msg==1&&(j==15)&&tempx1<=

(7)

LUÂÄN VĂN TỐT NGHIỆP 76 //truong hop vet tro file o dau bang list va nhap chuot ben tren vet tro

{

lpEvent->Posx=x11; lpEvent->Posy=y11; delay(50);

goto MouseUp; }

if(lpEvent->Msg==1&&x31<= lpEvent->Posx&&y31<=lpEvent->Posy&&x32>=lpEvent->Posx&&y32>=lpEvent->Posy)

nutOK: {

HideMouse();

putimage(x11,y11,buf,COPY_PUT); farfree(buf);

if(Kiemtra!=1)

strcpy(s,Lis[0].ff_name); if(strcmp(s,".")==0)

{

strcpy(s,"\\"); *attrib=16; }

if(*attrib==16) {

chdir(s); return 2; }

Show(); ShowMouse();

OutMessage("Click OK to send file."); return ;//bao da co chon file

}

if(lpEvent->Msg==1&&x41<= lpEvent->Posx&&y41<=lpEvent->Posy&&x42>=lpEvent->Posx&&y42>=lpEvent->Posy)

nutCancel: {

HideMouse();

putimage(x11,y11,buf,COPY_PUT); farfree(buf);

Cancel: Show(); ShowMouse();

OutMessage("Click mouse to chose action"); return 0;

} }

if(lpEvent->Msg==2) {

delay(100); goto nutOK; }

}while(1); }

// -

VIII CLASS MOUSE.H

#if !defined( MOUSE_H ) #define MOUSE_H

Ngày đăng: 01/04/2021, 02:13

Tài liệu cùng người dùng

Tài liệu liên quan