home *** CD-ROM | disk | FTP | other *** search
-
- { I've seen a LOT of programs which Say they are doing something like
- Reading/Writing to files, and you wonder if they have crashed or what,
- I think it would be nice to have a nice Status Bar to show the progress
- of what is going on! so here's my contribution to everyone:
- Statbar: Highly Accurate Status Bar.. }
-
- Uses crt;
- Procedure HideCursor; Assembler; Asm {I forget where I got}
- MOV ax,$0100; MOV cx,$2607; INT $10 end; { these two }
-
- Procedure ShowCursor; Assembler; Asm
- MOV ax,$0100; MOV cx,$0506; INT $10 end;
-
-
-
- Procedure Dupeit(Str: String; Num: Integer); {Just a little Helper, dupes}
- var Cnt: integer; { lines }
- begin
- For Cnt := 1 to Num do begin
- write(Str);
- end;
- end;
-
- Procedure Statbar(cnum,enum,xspot,yspot,fullcolor,emptycolor: Integer);
- var percentage: Integer; {Uh-Oh, here comes the Mathematical}
- begin { Crap!! }
- Hidecursor; {Kill That Damned Cursor!}
- percentage := round(cnum / enum * 100 / 2); {/2 can be changed for}
- Gotoxy(xspot,yspot); { Shorter Stat Bars }
- Textcolor(fullcolor);
- dupeit(#219,Percentage); {Can change the Char to whatever}
- Textcolor(emptycolor);
- dupeit(#177,50 - Percentage); {same as above}
-
- write(' ',percentage * 2,'%'); {this is not needed, just an extra}
- Showcursor;
- end;
-
- Procedure WriteXy(x,y: Integer; dstr: String; tcolor: integer);
- Begin
- Hidecursor;
- Gotoxy(x,y); { Yeah, I now it's Cheap and cheezy}
- Textcolor(tcolor); { but it gets the job done well! }
- write(dstr);
- Showcursor;
- end;
-
- var B1,B2,B3: integer;
-
- Begin
-
- Clrscr;
- WriteXy(30,3,'Statbar By CJ Cliffe..',yellow);
-
- Repeat
-
- Inc(B1,1);
- Inc(B2,1);
- Inc(B3,1);
-
- { The Statbar procedure works like so:
-
- Statbar(Current Number, Final Number, x location, y location,
- Color of completed bars, color of empty bars);
-
- Will process (as far as I know) Any pairs of numbers, as long as the Current
- Number does not exceed the Final Number, everything should look fine.. }
-
-
- Statbar(B1,800,15,5,Lightcyan,Cyan); {800 Just makes em go nice 'n}
- Statbar(B2,800,15,7,LightRed,Red); {slow because they are FAST }
- Statbar(B3,800,15,9,LightGreen,Green);
-
- Until B1 = 800;
-
- WriteXy(30,15,'Press any key to quit...',Lightblue);
- Readkey;
-
- end.