home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Inside Multimedia 1995 August
/
IMM0895.BIN
/
magazin
/
optix
/
disk1
/
optxppac.set
/
LISTBOX.OPT
< prev
next >
Wrap
Text File
|
1995-05-08
|
6KB
|
215 lines
def(i)
def(j)
def(xm)
def(ym)
def(back)
defs(dum$)
defal(gp,32)
defas(text$,120,300)
procedure cornerbox(x,y,xx,yy,p)
rem *** wird von 'gsbox' benötigt
locals(tl)
tl:=4
vline(x,y,x+(xx-x)/tl,y,p)
vline(x,y,x,y+(yy-y)/tl,p)
vline(xx-(xx-x)/tl,y,xx,y,p)
vline(xx,y,xx,y+(yy-y)/tl,p)
vline(x,yy,x+(xx-x)/tl,yy,p)
vline(x,yy-(yy-y)/tl,x,yy,p)
vline(xx-(xx-x)/tl,yy,xx,yy,p)
vline(xx,yy-(yy-y)/tl,xx,yy,p)
return
procedure gsbox(flag,stp,qx,qy,qb,qh,zx,zy,zb,zh,xb,yh,p)
rem produziert eine 'GROW'- und/oder 'SHRINK'- und/oder 'MOVE'-Box
rem
rem flag: Arbeitsmodus (3Bit-Vektor)
rem Bit 0 gesetzt (+1) = Quellbox wird 'geshrinkt'
rem Bit 1 gesetzt (+2) = Bewegungseffekt (Move) wird ausgeführt
rem Bit 2 gesetzt (+4) = Zielbox wird 'gegrowt'
rem
rem stp : gibt die Anzahl der Bewegungsschritte an (beliebig)
rem
rem qx,qy,qb,qh = Xpos, Ypos, Breite und Höhe der Quellbox
rem zx,zy,zb,zh = Xpos, Ypos, Breite und Höhe der Zielbox
rem
rem xb,yh : Breite und Höhe der Bewegungsbox (MOVE)
rem p : Verzögerungsfaktor
rem
locals(i,btst)
btst:=flag
and(btst,1)
if btst<>0
for i:=0 to stp/2 do
cornerbox(qx+i*((qb/2)/stp),qy+i*((qh/2)/stp),qx+qb-i*((qb/2)/stp),qy+qh-i*((qh/2)/stp),p)
next(i)
for i:=0 to stp/2 do
cornerbox(qx+i*((qb/2)/stp),qy+i*((qh/2)/stp),qx+qb-i*((qb/2)/stp),qy+qh-i*((qh/2)/stp),p)
next(i)
endif
btst:=flag
and(btst,2)
if btst<>0
for i:=0 to stp do
cornerbox(qx+qb/2+i*((zx+zb/2)-(qx+qb/2))/stp-xb/2,qy+qh/2+i*((zy+zh/2)-(qy+qh/2))/stp-yh/2,qx+qb/2+i*((zx+zb/2)-(qx+qb/2))/stp+xb/2,qy+qh/2+i*((zy+zh/2)-(qy+qh/2))/stp+yh/2,p)
next(i)
for i:=0 to stp do
cornerbox(qx+qb/2+i*((zx+zb/2)-(qx+qb/2))/stp-xb/2,qy+qh/2+i*((zy+zh/2)-(qy+qh/2))/stp-yh/2,qx+qb/2+i*((zx+zb/2)-(qx+qb/2))/stp+xb/2,qy+qh/2+i*((zy+zh/2)-(qy+qh/2))/stp+yh/2,p)
next(i)
endif
btst:=flag
and(btst,4)
if btst<>0
for i:=stp/2 to stp do
cornerbox(zx+zb/2-i*((zb/2)/stp),zy+zh/2-i*((zh/2)/stp),zx+zb/2+i*((zb/2)/stp),zy+zh/2+i*((zh/2)/stp),p)
next(i)
for i:=stp/2 to stp do
cornerbox(zx+zb/2-i*((zb/2)/stp),zy+zh/2-i*((zh/2)/stp),zx+zb/2+i*((zb/2)/stp),zy+zh/2+i*((zh/2)/stp),p)
next(i)
endif
return
include('listbox.inc')
begin
new(text$)
new(gp)
break(off)
clearscreen(3)
scrtobuf
readtext('listbox.inc',1,120)
rem ***************Listbox-Parameter*******************************
rem (xl,yo ,zeich,zeil,fnt,txsta,pos,lines,rcol,tcol,bcol)
rem | | | | | | | | | | |
listbox(10 ,30 ,76 ,-10 ,-1 , 3 ,1 ,-107 , 0 , 0 , 15)
viewport(20,20,gp[17]+10,gp[18]+10)
cbox(9,0,0)
viewport(10,5,gp[17],gp[18])
cbox(0,8,0)
plateau(0,15)
viewport(10,5,gp[17],29)
plateau(0,15)
sysfont(2,1)
printc((gp[17]-20)/2,12,'...nur Textbetrachter...')
printc((gp[17]-20)/2,23,'(Exit auch durch Klick außerhalb)')
listbox(10 ,30 ,76 ,10 ,-1 , 3 ,1 ,-107 ,0 ,0 ,15)
readtext('datlist.lst',201,20)
back:=201
gp[20]:=1
listbox(350,230 ,12 ,-8 ,2 ,202 ,5 ,14 ,0 ,4 ,7)
repeat
viewport(350,230,gp[17],gp[18])
cbox(0,15,0)
plateau(15,0)
printc(350+(gp[17]-350)/2,160,'Auswahl m.hor.u.vert.Scroll')
printc(350+(gp[17]-350)/2,180,'..Exit nur durch <Return>..')
listbox(350,230 ,12 ,8 ,2 ,202 ,gp[20],14 ,0 ,4 ,7)
until gp[19]=1
viewport(350,230,gp[17],gp[18])
restorebox(15,10)
printat(350,200 ,'gewählt: '+text$[back])
readfiles('C:\DOS','*.COM;*.EXE')
rem ************************GSBOX-Parameter*****************************
rem (flag ,stp ,qx ,qy ,qb ,qh ,zx ,zy ,zb ,zh ,xb ,yh ,p)
rem | | | | | | | | | | | | |
gsbox( 7 , 6 ,350,230,gp[17]-350,gp[18]-230,20 ,340,300,100,10 ,10 ,5)
listbox(20,340 ,-1 ,-6 ,2 ,1 ,3 ,linctr ,0 ,15 ,8)
xm:=gp[17]
ym:=gp[18]
printc(50+(xm-20)/2,270,'Datei-Auswahl mit vert.Scroll,')
printc(50+(xm-20)/2,290,'Auswahlvorgabe u.List-Offset 3')
viewport(20,340,xm+62,ym)
cbox(0,7,0)
plateau(0,0)
incviewport
plateau(15,0)
incviewport
incviewport
plateau(15,0)
setcolor(0)
viewport(xm+1,341,xm+61,340+(ym-340)/2-1)
plateau(0,15)
decviewport
plateau(0,15)
printc(xm+31,340+(ym-340)/4+1,'OKAY')
viewport(xm+1,340+(ym-340)/2+1,xm+61,ym-1)
plateau(0,15)
printc(xm+31,340+(ym-340)*3/4+1,'CANCEL')
back:=6
listbox(20,340 ,-1 ,6 ,-2 ,1 ,3 ,linctr ,0 ,15 ,8)
setcolor(14)
printat(20,310 ,'gewählt: ')
dum$:=text$[back]
mid(dum$,1,1)
if dum$='['
printc(520,320 ,'Verzeichnisse werden nur')
printc(520,330 ,'als String zurückgegeben.')
printc(520,340 ,'Es erfolgt kein Wechsel!')
endif
if gp[19]=2
inbox(xm-1,341,xm+60,340+(ym-340)/2-1,i)
if i=true
viewport(xm+2,341,xm+59,340+(ym-340)/2-2)
cbox(9,0,0)
printat(100,310 ,'OKAY : '+text$[back])
beep
endif
inbox(xm-1,340+(ym-340)/2+1,xm+59,ym-1,i)
if i=true
viewport(xm+2,340+(ym-340)/2+1,xm+61,ym-2)
cbox(9,0,0)
printat(100,310 ,'CANCEL')
endif
else
if gp[19]=1
viewport(xm+2,341,xm+59,340+(ym-340)/2-2)
cbox(9,0,0)
printat(100,310 ,'<Return>: '+text$[back])
beep
else
viewport(xm+2,340+(ym-340)/2+1,xm+59,ym-2)
cbox(9,0,0)
if gp[19]=3
printat(100,310 ,'Abbruch durch [ESC]')
else
if gp[19]=4
printat(100,310 ,'Abbruch m.re.Maustaste')
endif
endif
endif
endif
pause(250)
viewport(20,340,xm+62,ym)
restorebox(8,0)
curson(mousex,mousey)
pause(0)
end