Смекни!
smekni.com

Програмний комплекс для роботи розробки візитних карток (стр. 4 из 4)

buttonon(305,120+((a/2)*30),400,120+25+((a/2)*30),"Imager",2);

ba(305,120+((a/2)*30),400,120+25+((a/2)*30),37+a+1);

}

int lb=0;char *t[]={"1","2","3","4","5","6","7","8","9","10"};

settextstyle(2,0,4);

for(a=205;a<=355;a+=16)

{

/*t='9'-(char)lb;

outtextxy(a+12,330,t);*/

buttonon(a,330,a+15,345,t[lb],2);

ba(a,330,a+15,345,48+lb+1);

lb++;

}

m.showmouseptr();

loop(37,58);

loopmain=1;

fontwc=0;

m.hidemouseptr();

back(200,100,405,350,1);

m.showmouseptr();

}

void aboutwindow()

{ m.hidemouseptr();

back(200,100,450,200,0);

openwindow(200,100,450,200,title,1,4,0,7,0);

settextstyle(2,HORIZ_DIR,4);

setcolor(14);

outtextxy(205,115,"Imager 3.1");

outtextxy(205,130," Made by Ankit Rohatgi");

outtextxy(205,145," www.ankitrohatgi.com");

m.showmouseptr();

m.getmousepos(button,x,y);

while(button==0)

{ m.getmousepos(button,x,y);

}

m.hidemouseptr();

back(200,100,450,200,1);

m.showmouseptr();

}

void toolset(int no)

{ m.hidemouseptr();

for(int cnt=50;cnt<=300;cnt+=20)

{ buttoneffect(5,cnt,45,cnt+15);

buttoneffect(50,cnt,95,cnt+15);

}

buttoneffect(5,20,35,35);

buttoneffect(40,20,70,35);

buttoneffect(75,20,105,35);

buttoneffect(110,20,145,35);

buttonclick(buttons[no][0],buttons[no][1],buttons[no][2],buttons[no][3]);

m.showmouseptr();

}

void lift(int no)

{ m.hidemouseptr();

buttoneffect(buttons[no][0],buttons[no][1],buttons[no][2],buttons[no][3]);

m.showmouseptr();

}

void invertcolors()

{ int cl;

for(int a=100;a<=635;a++)

{ for(int b=50;b<=450;b++)

{ cl=getpixel(a,b);

putpixel(a,b,15-cl);

}

}

}

void fliphorizontal()

{ int c1,c2;

for(int a=0;a<=267;a++)

{ for(int b=50;b<=450;b++)

{ c1=getpixel(101+a,b);

c2=getpixel(634-a,b);

putpixel(101+a,b,c2);

putpixel(634-a,b,c1);

}

}

}

void flipvertical()

{ int c1,c2;

for(int b=0;b<=200;b++)

{ for(int a=100;a<=635;a++)

{ c1=getpixel(a,50+b);

c2=getpixel(a,450-b);

putpixel(a,50+b,c2);

putpixel(a,450-b,c1);

}

}

}

void filemenu()

{ char *filem[]={"New","Open","Save","Save As","Exit"};

m.hidemouseptr();

back(5,40,70,140,0);

menu(5,40,filem,5,7);

m.showmouseptr();

m.getmousepos(button,x,y);

int lc=1,mc=0;

while((x>5)&&(y>20)&&(x<60)&&(y<140)&&(lc==1))

{ m.getmousepos(button,x,y);

if(button==1)

{ if((y>40)&&(y<55)) { setfillstyle(1,15);bar(100,50,635,450);lc=0;

savename="tempo.dat";}

else if((y>55)&&(y<75))

{lc=0;mc=1;

m.hidemouseptr();

back(5,40,70,140,1);lift(1);

m.showmouseptr();

textgetter("Open-filename");

if(yotext[0]=='&bsol;0') {goto bop;}

loadimage(100,50,yotext);

/*BMPload(100,50,yotext);*/

savename=yotext;

bop:

}

else if((y>75)&&(y<90))

{ lc=0;mc=1;

m.hidemouseptr();

back(5,40,70,140,1);lift(1);

m.showmouseptr();

saveimage(100,50,635,450,savename);

/*BMPsave(100,50,635,450,savename);*/

}

else if((y>90)&&(y<105))

{ lc=0;mc=1;

m.hidemouseptr();

back(5,40,70,140,1);lift(1);

m.showmouseptr();

textgetter("Save As-filename");

if(yotext[0]=='&bsol;0') {goto bosa;}

saveimage(100,50,635,450,yotext);

/*BMPsave(100,50,635,450,yotext);*/

savename=yotext;

bosa:

}

else if((y>105)&&(y<120)) {closegraph();exit(1);}

}

}

if(mc==0) {

m.hidemouseptr();

back(5,40,70,140,1);lift(1);

m.showmouseptr();}

}

void editmenu()

{ char *editm[]={"Cut","Copy","Paste"};

m.hidemouseptr();

back(40,35,85,90,0);

menu(40,35,editm,3,5);

m.showmouseptr();

m.getmousepos(button,x,y);

int lc=1;

delay(50);

while((x>40)&&(y>20)&&(x<85)&&(y<90)&&(lc==1))

{ m.getmousepos(button,x,y);

if(button==1)

{ if((y>40)&&(y<55)) {cut();lc=0;}

else if((y>55)&&(y<70)) {copy();lc=0;}

else if((y>70)&&(y<85)) {paste();lc=0;}

}

}

m.hidemouseptr();

back(40,35,85,90,1);

lift(2);

m.showmouseptr();

}

void cut()

{ setfillstyle(1,15);bar(select[0],select[1],select[2],select[3]);lift(13);

}

void copy()

{

backtotal(select[0],select[1],select[2],select[3],0);lift(14);

}

void paste()

{ backtotal(select[0],select[1],select[2],select[3],1);lift(15);

}

void backtotal(int x1,int y1,int x2,int y2,int mode)

{ int ch,width,height;char c2;

if(mode==0)

{

ofstream outfile("ccp.dat");

outfile<<x2-x1<<endl<<y2-y1<<endl;

for(int a=x1;a<=x2;a++)

{ for(int b=y1;b<=y2;b++)

{ ch=getpixel(a,b);

outfile<<(char)(ch+28);

}

}

outfile.close();

}

else if(mode==1)

{

setviewport(100,50,635,450,1);

ifstream infile("ccp.dat");

infile>>width>>height;

for(int a=0;a<=width;a++)

{ for(int b=0;b<=height;b++)

{ infile.get(c2);ch=(int)c2;

putpixel(a+x1-100,b+y1-50,ch-28);

}

}

infile.close();

setviewport(0,0,639,479,1);

}

}

void textgetter(char quest[])

{

m.hidemouseptr();

back(150,100,400,150,0);

openwindow(150,100,400,150,quest,1);

textfield(155,118,30);

m.showmouseptr();

setcolor(0);

settextstyle(2,0,4);

int xcn=0;int in2=0;

char in[2];

in[1]='&bsol;0'; /*textcolor(4);gotoxy(23,9);gets(yotext);*/

while(*in!=(char)13)

{ st:

in[0]=getch();

if(in[0]==(char)13)

{ break;

}

else if(in[0]==(char)8) {in2-=6;xcn--;sound(900);nosound();setfillstyle(1,15);bar(158+in2,120,158+in2+textwidth("W"),120+textheight("Wg"));goto st;}

setfillstyle(1,15);bar(158+in2,120,158+in2+textwidth(in),120+textheight(in));

if(in2<=0) {in2=0;}

if(in2>=240) {in2=240;}

outtextxy(158+in2,120,in);

in2+=6;

yotext[xcn]=in[0];

xcn++;

}

yotext[xcn]='&bsol;0';

/*cout<<yotext;*/

m.hidemouseptr();

back(150,100,400,150,1);

m.showmouseptr();

}

void saveimage(int x1,int y1,int x2,int y2,char filename[])

{ int ch,width,height;char c2;

ofstream outfile(filename);

outfile<<x2-x1<<endl<<y2-y1<<endl;

for(int a=x1;a<=x2;a++)

{ for(int b=y1;b<=y2;b++)

{ ch=getpixel(a,b);

outfile<<(char)(ch+28);

}

}

outfile.close();

}

void loadimage(int x1,int y1,char filename[])

{

char c2;int width,height,ch;

ifstream infile(filename);

if(infile)

{

setviewport(100,50,635,450,1);

infile>>width>>height;

for(int a=0;a<=width;a++)

{ for(int b=0;b<=height;b++)

{ infile.get(c2);ch=(int)c2;

putpixel(a+x1-100,b+y1-50,ch-28);

}

}

setviewport(0,0,639,479,1);

}

else { say("file not found");}

infile.close();

}

void changer(int col)

{ for(int a=100;a<=635;a++)

{ for(int b=50;b<=450;b++)

{ if(col==getpixel(a,b))

{ putpixel(a,b,icolor);

}

}

}

}

void say(char text[])

{ m.hidemouseptr();

settextstyle(2,0,4);

int width=textwidth(text)+20;

int height=60;

back(150,100,150+width,100+height,0);

openwindow(150,100,150+width,100+height,title);

setcolor(0);

buttonon(160,100+height-17,180,100+height-2,"OK",3);

setcolor(0);

outtextxy(160,120,text);

m.showmouseptr();

int lc=1;

while(lc==1)

{ m.getmousepos(button,x,y);

if((x>160)&&(x<180)&&(y>100+height-17)&&(y<100+height-2)&&(button==1))

{ lc=0;

}

}

m.hidemouseptr();

back(150,100,150+width,100+height,1);

m.showmouseptr();

delay(90);

}


Висновки

В роботі були проаналізовані питання відносно теоретичної основи побудови програм з простим інтерфейсом користувача а також проблеми, які виникають при цьому. Результатом цього є розроблений програмний комплекс для роботи з візитними картками (розробка, та адміністрування). Зауважимо лише, що при цьому використовувалися готові функції для роботи з графікою.

Програма відрізняється від існуючих на ринку простотою інтерфейсу і настроювань.


Література

[1]Касаткин А.И., Вальвачев А.Н. Профессиональное прогрпммирование на языке Си. Мн., 1992. 240 С.

[2]Нейбауэр А. Моя первая программа на С/С++. П., 1995. 368 С.

[3]Бруно Бабэ. Просто и ясно о Borland C++. М., 1996. 400 С.

[4]Шамас Н.К. Основы С++ и обьектно-ориентированного программирования. К., 1996. 448 С.

[5]Справочник по классам Borland C++ 4.0. К., 1994. 256 С.

[6]ObjectWindows для C++. К., 1993., 208 С.

[7]Том Сван. Программирование для Windows в Borland C++. М., 480 С.

[8]Н. Барканати. Программирование игр для Windows на Borland C++. М., 1994. 512 С.