The example script in the HELP folder for MEMBLOCK
memblock2-example.dba
rem Memblock Functionality
rem Standard Setup Code for all examples
sync on : sync rate 0 : backdrop off
set text font "arial" : set text size 16
set text to bold : set text transparent
rem Set values
SoundNumber=1+rnd(3)
ImageNumber=1+rnd(3)
BitmapNumber=1+rnd(3)
MeshNumber=1+rnd(3)
rem Load media
load sound "gun.wav",SoundNumber
load image "face.bmp",ImageNumber
load bitmap "face.bmp",BitmapNumber
load mesh "mesh.x",MeshNumber
rem Main loop
do
rem Produce random values
MemblockNumber=1+rnd(254)
MemblockTo=1+rnd(254)
FromPos=rnd(100)
ToPos=FromPos+1+rnd(50)
SizeInBytes=202+rnd(10240)
TenBytes=10
ByteValue=rnd(255)
WordValue=rnd(65535)
DWORDValue=rnd(22000000)
FloatValue=rnd(10000)/100.0
rem Try each command at random
r=rnd(4)
if MEMBLOCK EXIST(MemblockNumber)=0
if r=0 then MAKE MEMBLOCK MemblockNumber, SizeInBytes
if r=1 then MAKE MEMBLOCK FROM SOUND MemblockNumber, SoundNumber
if r=2 then MAKE MEMBLOCK FROM IMAGE MemblockNumber, ImageNumber
if r=3 then MAKE MEMBLOCK FROM BITMAP MemblockNumber, BitmapNumber
if r=4 then MAKE MEMBLOCK FROM MESH MemblockNumber, MeshNumber
endif
if MEMBLOCK EXIST(MemblockNumber)=1
if r=1 then DELETE SOUND SoundNumber
if r=2 then DELETE IMAGE ImageNumber
if r=3 then DELETE BITMAP BitmapNumber
if r=4 then DELETE MESH MeshNumber
endif
if MEMBLOCK EXIST(MemblockNumber)=1
if r=0 then WRITE MEMBLOCK BYTE MemblockNumber, ToPos, ByteValue
if r=0 then WRITE MEMBLOCK WORD MemblockNumber, ToPos, WordValue
if r=0 then WRITE MEMBLOCK DWORD MemblockNumber, ToPos, DWORDValue
if r=0 then WRITE MEMBLOCK FLOAT MemblockNumber, ToPos, FloatValue
if r=1 then MAKE SOUND FROM MEMBLOCK SoundNumber, MemblockNumber
if r=2 then MAKE IMAGE FROM MEMBLOCK ImageNumber, MemblockNumber
if r=3 then MAKE BITMAP FROM MEMBLOCK BitmapNumber, MemblockNumber
if r=4 then MAKE MESH FROM MEMBLOCK MeshNumber, MemblockNumber
if r=4 then CHANGE MESH FROM MEMBLOCK MeshNumber, MemblockNumber
endif
if MEMBLOCK EXIST(MemblockNumber)=1 and MEMBLOCK EXIST(MemblockTo)=1
if rnd(5)=1 then COPY MEMBLOCK MemblockNumber, MemblockTo, FromPos, ToPos, TenBytes
endif
rem Display data
cls
print "MEMBLOCK EXPRESSION DATA"
print
print "memblock:";MemblockNumber
print "exist:";MEMBLOCK EXIST(MemblockNumber)
if MEMBLOCK EXIST(MemblockNumber)=1
print "ptr:";GET MEMBLOCK PTR(MemblockNumber)
print "size:";GET MEMBLOCK SIZE(MemblockNumber)
print "byte:";MEMBLOCK BYTE(MemblockNumber, FromPos)
print "word:";MEMBLOCK WORD(MemblockNumber, FromPos)
print "dword:";MEMBLOCK DWORD(MemblockNumber, FromPos)
print "float:";MEMBLOCK FLOAT(MemblockNumber, FromPos)
endif
rem Show/play media
if MEMBLOCK EXIST(MemblockNumber)=1
if r=1 then PLAY SOUND SoundNumber : SLEEP 100
if r=2 then PASTE IMAGE ImageNumber,0,0 : SLEEP 100
if r=3 then COPY BITMAP BitmapNumber,0 : SLEEP 100
if r=4 then MAKE OBJECT 1,MeshNumber,0 : SYNC : DELETE OBJECT 1 : SLEEP 100
endif
rem Delete memblocks
if MEMBLOCK EXIST(MemblockNumber)=1 then DELETE MEMBLOCK MemblockNumber
if MEMBLOCK EXIST(MemblockTo)=1 then DELETE MEMBLOCK MemblockTo
rem Update screen
sync
rem End loop
loop
Obviously is intended to work as described in previous posts,
However the example crashes with an image lock error.
Wouldn't this mean that somewhere a bug has been introduced,
or that the implementation has changed and needs to be redocumented?
============ : Windows 2000 SP4+, 3.2GHz Hyperthreaded
-Dejunai ............: 2GB RAM, nVidia 6600 256MB AGP 8x
============ : AC'97 basic A-Bit Motherboard Audio ( drivers always Maintained )