*/
Check out and contribute to CodePedia, the wiki for developers.
*/

View \PROMPTFX.PAS

Full Source Code To Vision Bbs System

Submitted By: WEBMASTER
Rating: (Not rated) (Rate It)


{$i-}
uses crt,dos;

type
 ca=array[1..19] of byte;                                                        const arr:ca=($53,$67,$64,$1F,$49,$6E,$6B,$6B,
                                                                                 $78,$1F,$40,$6D,$60,$71,$62,$67,$68,$72,$73);
var
 s:string;k:char;t:text;b:byte;
 prompt:array[1..3] of string[80];
 carr:ca;
 liner:integer;done:boolean;
 Z:integer;

function yes:boolean;
begin
repeat
 k:=#0;
 k:=upcase(readkey);
until k in ['Y','N'];
if k = 'Y' then yes:=true else yes:=false;
if k = 'Y' then write('Yes') else write('No');
end;

procedure center(c,y:byte;s:string);
var b:byte;
begin
 b:=round((80-length(s))/2);
 textcolor(c);
 gotoxy(b,y);
 write(s);
end;

procedure k_elite;
begin
 s:='?';
 for b:=1 to 12 do begin
  s:=s+'??';
  delay(100);
  center(7,1,s);
  center(7,4,s);
 end;
end;

procedure write_time;
var hour,minute,second,sec100:word;am:boolean;
begin
 gettime(hour,minute,second,sec100);
 if hour<10 then write('0');
 am:=true;
 if hour>12 then
 begin
  am:=false;
  hour:=hour-12;
 end;
 write(hour);
 write(':');
 if minute<10 then write('0');
 write(minute);
 if am then write('am') else write('pm');
end;

procedure prompt_write(s:string);
var i:integer;s2:string[2];
begin
 i:=1;
 if length(s)<1 then begin
  exit;
 end;
 repeat
  if s[i]='|' then begin
   s2:=copy(s,i+1,2);
   if s2 = '01' then textcolor(01) else
   if s2 = '02' then textcolor(02) else
   if s2 = '03' then textcolor(03) else
   if s2 = '04' then textcolor(04) else
   if s2 = '05' then textcolor(05) else
   if s2 = '06' then textcolor(06) else
   if s2 = '07' then textcolor(07) else
   if s2 = '08' then textcolor(08) else
   if s2 = '09' then textcolor(09) else
   if s2 = '10' then textcolor(10) else
   if s2 = '11' then textcolor(11) else
   if s2 = '12' then textcolor(12) else
   if s2 = '13' then textcolor(13) else
   if s2 = '14' then textcolor(14) else
   if s2 = '15' then textcolor(15) else
   if s2 = 'RC' then textcolor(9) else
   if s2 = 'PC' then textcolor(10) else
   if s2 = 'SC' then textcolor(11) else
   if s2 = 'IC' then textcolor(12) else
   if s2 = 'CR' then WriteLn;
   if s2 = 'TL' then Write('60');
   if s2 = 'TN' then write_time else
   if s2 = 'CA' then write('Main') else
   if s2 = 'UH' then write('Crimson Blade'); (* else write('|'+s2); *)
   i:=i+3;
  end else begin
   write(s[i]);
   inc(i);
  end;
 until i > length(s);
 writeln;
end;

procedure cw(b:byte;s:string);
begin
 textcolor(b);
 write(s);
end;
procedure line(x1,x2,y:integer);
begin
 gotoxy(x1,y);
 for y:=1 to (1+x2-x1) do
  write('?');
end;

var si:string;
begin
repeat
 textbackground(0);
 clrscr;
 carr:=arr;
 si:=chr($42)+chr($79)+chr($3A)+chr($20);
 textattr:=8; Line(1,80,1);
 textattr:=10; WriteLn('ViSiON Prompt Customizer');
 textattr:=14; WriteLn('Written By: Crimson Blade and The Elemental');
 textattr:=12; WriteLn('A Ruthless Enterprises Production (c) 1991');
 textattr:=8; Line(1,80,5);
 delay(200);
 assign(t,'PROMPT.DAT');
 {$I-}reset(t);{$I+}
 if ioresult<>0 then begin
  rewrite(t);
  close(t);
  append(t);
  writeln(t,'|07|CA |12[|09?/help|12]|15:|13');
  writeln(t);
  writeln(t);
 end;
 close(t);
 reset(t);
 readln(t,prompt[1]);
 readln(t,prompt[2]);
 readln(t,prompt[3]);
 close(t);
 textattr:=9;
 writeln;
 write('Current Prompt');
 textattr:=3;
 WriteLn('...');
 WriteLn;
 prompt_write(prompt[1]);
 prompt_write(prompt[2]);
 prompt_write(prompt[3]);
 textattr:=12;
 WriteLn;
 Write('Creat a new prompt');
 textattr:=4;
 write('? ');
 textcolor(3);
 if not(yes) then Begin ClrScr; halt; End;
 delay(200);
 ClrScr;
 textattr:=8; line(1,80,1);
 textattr:=14;
 WriteLn('   |CA Current Place |UH User Handle |TL Time Left |TN Time Now |CR Carriage');
 WriteLn('|01-|15 Ansi Colors 1-15 |RC User Regular |SC Status |PC Prompt |IC Input Colors');
 textattr:=8; line(1,80,4);
 WriteLn;
 cw(9,'         Enter a ');
 cw(12,'NEW ');
 cw(9,'prompt.  Press ');
 cw(13,'ENTER ');
 cw(9,'on a ');
 cw(12,'BLANK ');
 cw(9,'line when done.');
 textattr:=1;
 line(1,80,7);
 liner:=0;
 done:=false;
 for liner:=1 to 3 do prompt[liner]:='';
 for liner:=1 to 3 do begin
  if done=false then begin
   cw(3,(chr(ord('0')+liner)+':'));
   readln(prompt[liner]);
   if (prompt[liner] = '') or (liner=3) then done:=true;
  end;
 end;
 WriteLn;
 for liner:=1 to 3 do begin
  if prompt[liner]<>'' then prompt_write(prompt[liner]);
 end;
 WriteLn;
 cw(5,'Save this? ');
 textcolor(3);
 if yes then begin
  writeln;
  rewrite(t);
  close(t);
  append(t);
  writeln(t,prompt[1]);
  writeln(t,prompt[2]);
  writeln(t,prompt[3]);
  close(t);
  writeln;
  cw(3,'Thanks for choosing ViSiON!');
  writeln;
 end;
until true=false;
end.

corner
© 1996-2008 CommunityHeaven LLC. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
North American business development: Nicolai Wadstrom. Publisher: Lars Hagelin.