OK, I have tried to create a null pointer.  However, can anyone please explain why the following code shows 2 pointers on screen:

7830 OUTL #1
7832 REMPT #1:REMark remove pointer
7840 REMPT #0
7850 LOAD_NEW_POINTER
7860 REMark Set up Null pointer
7870 RESTORE 7940
7880 BlankPtrAdd = ALCHP(100)
7890 FOR i=0 TO 11:READ byte:POKE BlankPtrAdd+i,byte
7900 POKE_L BlankPtrAdd+12,BlankPtrAdd+24:REMark Colour Pattern Pointer
7910 POKE_L BlankPtrAdd+16,BlankPtrAdd+24:REMark Colour Pattern Mask Pointer
7920 POKE_L BlankPtrAdd+20,BlankPtrAdd+24:REMark Pointer to next definition
7930 SPRS #1,BlankPtrAdd
7940 Data 0, 0, 0, 0: REMark Form
7950 Data 0, 0, 0, 0: REMark Size(x And y)
7960 Data 0, 0, 0, 0: REMark origin
8330 op% = 16 + 8 + 1
8340 REPeat loop
8350   IF old_x1%<>x1% OR old_y1%<>y1%
8360     REMark Draw pointer, removing pointer from last position
8370     PIC_RESTORE pointer_PSA,#1,old_x1%,old_y1%
8380     pointer_PSA=PIC_STORE(#1,Pointer_Xsize,Pointer_Ysize,x1%,y1%)
8390     SCRSHOW_TRANSPARENCY Pointer_base,#1,x1%,y1%,Pointer_Xsize,Pointer_Ysize,Pointer_Background:old_x1%=x1%:old_y1%=y1%
8400   End If
8410   RDPT #1,op%,x1%,y1%,1
8420   Dim result%(15)
8430   PVAL #1,result%
8440:
8450   key_press = result%(5)
8460   SELect ON key_press
8470     =1
8480       REMark Left mouse click
8490       IF WindowButtons$(0)=""
8500         REMark We just want to return on a keypress
8510         KEY_UP
8520         RETurn -1
8530       Else
8540         REMark Check each button in turn
8550         For button = 0 To NumberOfButtons
8560           IF Button_Location(button,0)=1
8570             IF x1%>=Button_Location(button,3) AND x1%<=Button_Location(button,3)+Button_Location(button,1) AND y1%>=Button_Location(button,4) AND y1%<=Button_Location(button,4)+Button_Location(button,2):KEY_UP:RETurn button
8580           End If
8590         END FOR button
8600       End If
8610   End Select
8620 END REPeat loop
8990 DEFine PROCedure LOAD_NEW_POINTER
9000 Pointer_file$=Graphic_dir$&'Pointer'&dispmode%&'_scr'
9010 Pointer_len=FLEN(\Pointer_file$)
9020 Pointer_base = ALCHP(Pointer_len)
9030 LBYTES Pointer_file$, Pointer_base
9040 Pointer_Background = PEEK_W(Pointer_base)
9050 END DEFine

(the LOAD_POINTER procedure loads a simple screen dump of a new pointer definition).  I cannot simply replace the existing pointer definition as this will cock things up on the Aurora..

Your thoughts/ideas would be much appreciated...
--
Rich Mellor
RWAP Software
35 Chantry Croft, Kinsley, Pontefract, West Yorkshire, WF9 5JH
TEL: 01977 610509
http://hometown.aol.co.uk/rwapsoftware

Reply via email to