home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 12
/
CD_ASCQ_12_0294.iso
/
news
/
563
/
ocdemo
/
tdemo.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-10-09
|
12KB
|
593 lines
{ Here is a copy of your program }
{ Generated by ObjectCraft }
{ (c) 1989 - 1993 by ObjectCraft Inc. }
{ and Object Oriented Technologies Ltd }
{ For Turbo Pascal }
uses graph,dos,crt;
CONST
YES=1;
NO=0;
MAX_FILES=5;
SZ_LN=80;
SZ_FIELD=256;
MAX_FIELDS=256;
SZ_FLNM=32;
SZ_FNAME=64;
SZ_NAME=40;
type
{ The following code defines your objects: }
top=object
x1pos: integer;
y1pos: integer;
x2pos: integer;
y2pos: integer;
visible: integer;
picnum: integer;
procedure erase;
procedure setx(newx: integer);
procedure sety(newy: integer);
end;
dbrec= object (top)
fbreed: char;
finm: array [0..SZ_FLNM] of char;
fp: File;
fn: array[0..MAX_FIELDS] of string[20];
fs: array[0..MAX_FIELDS] of integer;
nf: integer;
ft: array[0..MAX_FIELDS] of char;
rs: integer;
last: longint;
latest: longint;
off: integer;
rend: longint;
rno: integer;
nre: integer;
procedure reopen0;
end;
slot= object(top)
slotval: integer;
end;
sptr=^slot;
doneitptr = ^doneit;
targetptr = ^target;
orderptr = ^order;
salestodayptr = ^salestoday;
doneit = object (top)
Click: string;
Image: string;
X: integer;
Y: integer;
count: integer;
s_Click: slot;
s_Image: slot;
s_X: slot;
s_Y: slot;
s_count: slot;
{ Here are methods for doneit: }
procedure calc_Click (newval: string); virtual;
procedure calc_Image (newval: string); virtual;
procedure calc_X (newval: integer); virtual;
procedure calc_Y (newval: integer); virtual;
constructor init ( oClick:string; oImage:string; oX:integer;
oY:integer; ocount:integer);
procedure draw;
end;
target = object (top)
count: integer;
y3: integer;
y2: real;
y1: real;
currentv: integer;
Image: string;
Y: integer;
X: integer;
targetv: integer;
s_count: slot;
s_y3: slot;
s_y2: slot;
s_y1: slot;
s_currentv: slot;
s_Image: slot;
s_Y: slot;
s_X: slot;
s_targetv: slot;
{ Here are methods for target: }
procedure calc_currentv (newval: integer); virtual;
procedure calc_Image (newval: string); virtual;
procedure calc_Y (newval: integer); virtual;
procedure calc_X (newval: integer); virtual;
constructor init ( ocount:integer; oy3:integer; oy2:real; oy1:real;
ocurrentv:integer; oImage:string; oY:integer; oX:integer;
otargetv:integer);
procedure draw;
end;
order = object (top)
price: real;
number: integer;
total: integer;
s_price: slot;
s_number: slot;
s_total: slot;
{ Here are methods for order: }
procedure calc_price (newval: real); virtual;
procedure calc_number (newval: integer); virtual;
function ftot: integer; virtual;
constructor init ( oprice:real; onumber:integer; ototal:integer);
procedure draw;
end;
salestoday = object (top)
salesq: integer;
salesv: integer;
s_salesq: slot;
s_salesv: slot;
{ Here are methods for salestoday: }
constructor init ( osalesq:integer; osalesv:integer);
procedure draw;
end;
{ Here are the definitions for the global variables and constants,
}
{ as well as the code that implements the methods and re-calcs
attatched }
{ to objects. }
tptr=^top;
CONST
MAX=100;
OB=0;
VAL=1;
MAX_CHARS=124;
VAR
olink: array[0..MAX] of tptr;
p: array[0..MAX] of pointer;
stype: array[0..MAX] of integer;
currobject,latestobject: integer;
filenm: string;
numcar: integer;
imname: array[0..MAX] of string;
currcolor,bkcolor: integer;
c1_sizes: array[0..MAX_CHARS] of integer;
c2_sizes: array[0..MAX_CHARS] of integer;
b1: array[0..MAX_CHARS] of array[0..10] of integer;
b2: array[0..MAX_CHARS] of array[0..13] of integer;
currsize: integer;
dummy_int: integer;
dummy_float: real;
{$I ovmouse.pas}
{$I ovdb.pas}
{$I ovfns.pas}
{$I ovfont.pas}
{ Here are the methods for drawing objects on the screen: }
procedure doneit.draw;
begin
mouseoff;
showsslot (s_Click, Click);
showsslot (s_Image, Image);
showislot (s_X, X);
showislot (s_Y, Y);
showislot (s_count, count);
if (visible = YES) then
begin
picnum: = findname (image);
showimage (x1pos, y1pos, picnum, 'doneit');
end;
mouseon;
end;
procedure target.draw;
begin
mouseoff;
showislot (s_count, count);
showislot (s_y3, y3);
showrslot (s_y2, 0, y2);
showrslot (s_y1, 0, y1);
showislot (s_currentv, currentv);
showsslot (s_Image, Image);
showislot (s_Y, Y);
showislot (s_X, X);
showislot (s_targetv, targetv);
if (visible = YES) then
begin
picnum: = findname (image);
showimage (x1pos, y1pos, picnum, 'target');
end;
mouseon;
end;
procedure order.draw;
begin
mouseoff;
showrslot (s_price, 2, price);
showislot (s_number, number);
showislot (s_total, total);
mouseon;
end;
procedure salestoday.draw;
begin
mouseoff;
showislot (s_salesq, salesq);
showislot (s_salesv, salesv);
mouseon;
end;
{ The following procedure is used to access and modify }
{ 'Click' in object 'doneit': }
procedure doneit.calc_Click (newval: string);
begin
if (click = 'YES') then click: = 'NO'
else click: = 'YES';
draw;
if (click='YES') then calc_image ('done');
if (click='NO') then begin
calc_image ('done1');
count: = 0;
draw;
while (count<200) do begin
count: = count+1;
draw;
end;
calc_image ('done');
calc_click ('YES');
salestoday.salesq: = salestoday.salesq+order.number;
salestoday.draw;
salestoday.salesv: = salestoday.salesv+order.total;
salestoday.draw;
target.calc_currentv (salestoday.salesv);
end;
end;
{ The following procedure is used to access and modify }
{ 'Image' in object 'doneit': }
procedure doneit.calc_Image (newval: string);
begin
Image: = newval;
draw;
draw ;
end;
{ The following procedure is used to access and modify }
{ 'X' in object 'doneit': }
procedure doneit.calc_X (newval: integer);
begin
X: = newval;
draw;
erase ;
setx (x);
draw ;
end;
{ The following procedure is used to access and modify }
{ 'Y' in object 'doneit': }
procedure doneit.calc_Y (newval: integer);
begin
Y: = newval;
draw;
erase ;
sety (y);
draw ;
end;
{ The following procedure is used to access and modify }
{ 'currentv' in object 'target': }
procedure target.calc_currentv (newval: integer);
begin
currentv: = newval;
draw;
color(2);
y2: = 130*currentv;
draw;
if (currentv>targetv) then y2: = 130*targetv;
draw;
y1: = y-(y2/targetv);
draw;
y3: = round(y1);
draw;
rectangle(x,y3,x+20,y);
if (currentv>targetv) then begin
color(14);
count: = 0;
draw;
while (count<300) do begin
count: = count+1;
draw;
end;
rectangle(x,y3,x+20,y);
color(2);
count: = 0;
draw;
while (count<150) do begin
count: = count+1;
draw;
end;
rectangle(x,y3,x+20,y);
color(14);
count: = 0;
draw;
while (count<300) do begin
count: = count+1;
draw;
end;
rectangle(x,y3,x+20,y);
color(2);
count: = 0;
draw;
while (count<150) do begin
count: = count+1;
draw;
end;
rectangle(x,y3,x+20,y);
end;
end;
{ The following procedure is used to access and modify }
{ 'Image' in object 'target': }
procedure target.calc_Image (newval: string);
begin
Image: = newval;
draw;
draw ;
end;
{ The following procedure is used to access and modify }
{ 'Y' in object 'target': }
procedure target.calc_Y (newval: integer);
begin
Y: = newval;
draw;
erase ;
sety (y);
draw ;
end;
{ The following procedure is used to access and modify }
{ 'X' in object 'target': }
procedure target.calc_X (newval: integer);
begin
X: = newval;
draw;
erase ;
setx (x);
draw ;
end;
{ The following procedure is used to access and modify }
{ 'price' in object 'order': }
procedure order.calc_price (newval: real);
begin
price: = newval;
draw;
dummy_int: = ftot;
end;
{ The following procedure is used to access and modify }
{ 'number' in object 'order': }
procedure order.calc_number (newval: integer);
begin
number: = newval;
draw;
ftot ;
end;
{ Here is the routine to handle data entry into slotst shown on the
screen: }
procedure vput(n: integer; tword: string);
var
r: real;
i,code: integer;
cword: string;
begin
end;
{ Here is the constructor for the 'doneit' class: }
constructor doneit.init ( oClick:string; oImage:string; oX:integer;
oY:integer; ocount:integer);
begin
Click: = oClick;
s_Click.visible: = 0;
Image: = oImage;
s_Image.visible: = 0;
X: = oX;
s_X.visible: = 0;
Y: = oY;
s_Y.visible: = 0;
count: = ocount;
s_count.visible: = 0;
end;
{ Here is the constructor for the 'target' class: }
constructor target.init ( ocount:integer; oy3:integer; oy2:real;
oy1:real; ocurrentv:integer; oImage:string; oY:integer; oX:integer;
otargetv:integer);
begin
count: = ocount;
s_count.visible: = 0;
y3: = oy3;
s_y3.visible: = 0;
y2: = oy2;
s_y2.visible: = 0;
y1: = oy1;
s_y1.visible: = 0;
currentv: = ocurrentv;
s_currentv.visible: = 0;
Image: = oImage;
s_Image.visible: = 0;
Y: = oY;
s_Y.visible: = 0;
X: = oX;
s_X.visible: = 0;
targetv: = otargetv;
s_targetv.visible: = 0;
end;
{ Here is the constructor for the 'order' class: }
constructor order.init ( oprice:real; onumber:integer;
ototal:integer);
begin
price: = oprice;
s_price.visible: = 0;
number: = onumber;
s_number.visible: = 0;
total: = ototal;
s_total.visible: = 0;
end;
function order.ftot: integer;
begin
total: = price*number;
draw;
end;
{ Here is the constructor for the 'salestoday' class: }
constructor salestoday.init ( osalesq:integer; osalesv:integer);
begin
salesq: = osalesq;
s_salesq.visible: = 0;
salesv: = osalesv;
s_salesv.visible: = 0;
end;
{ Here is the main program which will initalize the system and start
it up }
var
Mode,Driver: integer;
m1,m2,m3,m4,m5: integer;
n1,n: integer;
begin
currcolor:=0;
currobject:=0;
latestobject:=0;
Driver:=VGA;
Mode:=1;
InitGraph(Driver,Mode,'');
mreset;
mouseoff;
filenm: = 'demob';
readim;
read_in_fonts;
setbkcolor (0);
{ Here are the constructor calls to initialize instance objects: }
bkcolor: = 3;
currsize: = 0;
setfillstyle (1, bkcolor);
bar (0, 0, max_x, 349);
setfillstyle (1, 8);
bar (55, 35, 244, 191);
color (14);
setsize (0);
disp_string ('Please enter order information', 76, 47);
color (15);
setsize (0);
disp_string ('Price of part -', 66, 72);
color (15);
setsize (0);
disp_string ('Number of units -', 66, 96);
color (15);
setsize (0);
disp_string ('Total price of order -', 66, 122);
color (15);
setsize (0);
disp_string ('Today's sales so far', 67, 150);
setfillstyle (1, 4);
bar (207, 10, 339, 23);
color (14);
setsize (0);
disp_string ('ObjectCraft parts system', 215, 12);
setfillstyle (1, 4);
bar (60, 144, 235, 184);
color (11);
setsize (0);
disp_string ('Quantity', 66, 169);
color (11);
setsize (0);
disp_string ('Value', 154, 170);
setfillstyle (1, 1);
bar (462, 34, 505, 190);
color (15);
setsize (0);
disp_string ('Today's target ($)', 353, 38);
setfillstyle (1, 8);
bar (349, 34, 517, 190);
setfillstyle (1, 15);
line (500, 174, 504, 174);
setfillstyle (1, 15);
line (500, 86, 505, 86);
setfillstyle (1, 15);
line (500, 40, 504, 40);
setfillstyle (1, 15);
line (500, 131, 505, 131);
color (15);
setsize (0);
disp_string ('So far', 353, 114);
mouseon;
salestoday.salesv: = 0;
salestoday.draw;
salestoday.salesq: = 0;
salestoday.draw;
target.targetv: = 3000;
target.draw;
target.calc_currentv (0);
{ Here is them main event loop: }
while (getclick=1) do;
CloseGraph;
end.