1. Trang chủ
  2. » Cao đẳng - Đại học

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 11 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 170,32 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

[r]

Trang 1

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;

do

{

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)

{

char s[15];

Trang 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);

floodfill(x1+(x2-x1)/2,y1+(y3-y2)/2,WHITE);

Trang 3

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);

do

{

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 do bang ngoai

//600 x 300 la kich thuoc bang ngoai

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

LPEVENT lpEvent;//kiem tra bang thu muc

void far *buf;//con tro chi vung luu tru man hinh

Trang 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 do 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 do 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);

char S3[]="OK",S4[]="Cancel";

Trang 5

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 do 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;

int dem=0;//cho vong while tim file, la so files + thu muc tim duoc

Trang 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 ngay ben duoi vet tro

{

lpEvent->Posx=x11;

lpEvent->Posy=y11;

delay(50);

goto MouseDown;

}

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

lpEvent- >Posx&&tempx2>=lpEvent->Posx&&(tempy1-14)<=lpEvent->Posy&&(tempy2-14)>=lpEvent->Posy)

Trang 7

//truong hop vet tro file o dau bang list va nhap chuot ngay 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 1 ;//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

#include <dos.h>

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w