home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Inside Multimedia 1995 August
/
IMM0895.ISO01.iso
/
magazin
/
optix
/
disk1
/
optxppac.set
/
DEMOBANK.OPT
< prev
next >
Wrap
Text File
|
1995-05-05
|
7KB
|
234 lines
def(i)
def(j)
def(k)
def(l)
def(satz)
def(x0)
def(y0)
def(dum1)
def(dum2)
def(dum3)
defs(i$)
defs(j$)
defs(dum1$)
defs(dum2$)
defas(arr$,80,10)
procedure dither(flg,x,y,c,d,r)
rem *** zeichnet eine Dither-Block auf Hintergrund 4*(64*l)
rem *** flg = verlauf v.oben nach unten (0) oder umgekehrt (1)
rem *** x,y = X-/Y-Koord. f.linke, obere BoxEcke
rem *** c = Dither-Farbe d = Verlaufshöhe
rem *** r = Höhen-Raster (Ditherhöhe=64 * r)
rem *** erwartet die glob.Var's 'DUM1$','DUM2$','DUM1','DUM2' u.'DUM3'
locals(i,j)
dum1$:='00 22 20 02 11 33 31 13 10 32 30 12 01 23 21 03 '
for i:=0 to d*r-1 do
for j:=0 to i/r do
dum2$:=dum1$
mid(dum2$,j*3+1,1)
val(dum2$,dum1,dum3)
dum2$:=dum1$
mid(dum2$,j*3+2,1)
val(dum2$,dum2,dum3)
if flg<>0
plotc(x+dum1,y+dum2+i*4,c)
else
plotc(x+dum1,y+d*r*4-1-dum2-i*4,c)
endif
next(j)
next(i)
return
rem include('dither.inc')
begin
break(off)
new(arr$) Textfeld öffnen
readfont(1,'BIT16X32.FNT')
readfont(2,'TRI22N.FNT')
font(1)
textcolor(255)
font(2)
textcolor(255)
opendbank('demobank.DBF') Datenbank öffnen
rem *****************************************************************
rem Dieser Bildaufbau erfolgt hier nur einmal zum Programmanfang.
rem Später wird der erzeugte Verlauf aus dem Hintergrund-Bildpuffer
rem durch LOADPIC(1,0) restauriert.
rem
gradation(224,232,12,12,12,63,63,63) Farbverlauf
for i:=0 to 7 do
viewport(0,i*64,3,i*64+63) Hintergrundbox...
cbox(0,225+i,0) ... zeichnen...
dither(0,0,i*64,224+i,16,1) ... und Dither-Verlauf zeichnen
next(i)
copywin(0,0,3,ymax) ersten Streifen in Win-Puffer
for i:=0 to 3 do Vier Streifen...
loadwin(i*4,0,0,0) ...zeichnen
next(i)
copywin(0,0,15,ymax) breiteren Streifen in Win-Puffer
for i:=0 to 47 do ...und Rest...
loadwin(i*16,0,0,0) ...zeichnen
next(i)
scrtobuf ab in den Hintergrund-Puffer
rem *****************************************************************
:start
font(2)
writestyle(3)
textshadow(2,2)
textcofs(3)
textcolor(230)
setpstd
gradation(224,232,12,12,12,63,63,63)
getpal(14)
getpal(15)
loadpic(0,0)
setcolor(255)
for i:=0 TO 7 DO
viewport(92+i*10,10,92+i*10+6,470)
cbox(0,225+i,0)
plateau(255,0)
next(i)
printc(400,300,'OPTIX-DBase')
printc(400,340,'Verwaltung')
setcolor(0)
font(0)
sysfont(1,1)
rem *****************************************************************
rem
rem Statt der DEFBUTTON-Abfrage wäre hier eine direkte Indexabfrage
rem des gewünschten Datenbankeintrags zu plazieren. Im effektivsten
rem Falle wäre dies ein komplexe 'UND/ODER'-Attribut-Abfrage zur
rem Analyse der jeweils zutreffenden 'Karten'-Attribute.
defbutton(100,200,60,30,15,1,0,1,#49,'page1')
defbutton(100,250,60,30,15,1,0,1,#50,'page2')
defbutton(100,300,60,30,15,1,0,1,esc,'exit')
printc(130,216,'1')
printc(130,266,'2')
printc(130,316,'ESC')
checkbutton('start',30,0)
:page1
satz:=1
goto('viewset')
:page2
satz:=2
goto('viewset')
rem *****************************************************************
:viewset
readdbentry(satz) Datensatz öffnen
if dbvalid<>true
goto('start') Zurück, wenn Eintrag ungültig
endif
setcolor(244)
loadpic(1,0)
readdbpic(3,i)
getdbvar(2,k) Index-Eintrag lesen
str(k,3,i$)
printat(10,10,'Katalog-Nr.:'+i$)
if i=true
getdbvar(4,x0) Bild-X-Koord. lesen
getdbvar(5,y0) Bild-Y-Koord. lesen
getdbvar(6,k) Keycolor-Farbe lesen
viewport(x0-2,y0-2,x0+winx+2,y0+winy+2)
rectangle
keycol(k)
key(on)
setallpal
k:=winx-1
l:=winy-1
for i:= 0 TO k step 32 DO
for j:= 0 TO l step 32 DO
loadsprite(i,j,x0+i,y0+j,16,16)
loadsprite(i+16,j+16,x0+i+16,y0+j+16,16,16)
next(j)
next(i)
loadwin(x0,y0,8,0)
endif
getdbline(8,i$) Text-Filename lesen
printat(x0,y0+winy+15,i$) ...Filename ausgeben
readtext(i$,1,5) Textblock lesen
printtext(x0,y0+winy+30,1,5,0) ...und schreiben
getdbline(9,i$) Sound-Filename lesen
readsound(i$) Sound laden
startsound Sound starten
getdbline(1,i$) Einzeleinträge lesen
printat(x0+10+winx+10,100,'TITEL: '+i$)
getdbline(3,i$) " "
printat(x0+10+winx+10,116,'BILD : '+i$)
getdbline(7,i$) " "
printat(x0+10+winx+10,132,'VIDEO: '+i$)
getdbline(8,i$) " "
printat(x0+10+winx+10,148,'TEXT : '+i$)
getdbline(9,i$) " "
printat(x0+10+winx+10,164,'SOUND: '+i$)
getdbline(10,i$) " "
printat(x0+10+winx+10,180,'PFAD : '+i$)
setpstd
setsubpal(15)
defbutton(x0-70,y0 ,65,30,15,1,0,1,#86,'show')
defbutton(x0-70,y0+40,65,30,15,1,0,1,#27,'start')
printc(x0-38,y0+15,'(V)IDEO')
printc(x0-38,y0+55,'ESC')
checkbutton('start',30,0)
:show
getdbline(7,i$) Film-Filename holen
trim(i$) evtl. DBase-Füllblanks löschen
clearscreen(0)
j$:='mollefem.mvi'
if i$ = j$
readfilm(i$) Film laden
readpal('mollefem.pal') 'MOLLEFEM.MVI' hat keine eigenen Palette
fadein(1)
showfilm(100,100,30,0) Film starten
else
fullscreen(on)
initavi(i$)
fadein(1)
startavi(10,10,1,1,0,1,1,1) Film starten
closeavi
fullscreen(off)
endif
readfont(1,'BIT16X32.FNT') Fonts neu laden
readfont(2,'TRI22N.FNT') " " "
font(0) Sysfont wieder anschalten
sysfont(1,1)
fadeout(1)
goto('viewset')
:exit
end