DirectUIhwnd 1.0 : Emulation of MS control Released
-
- Enthusiast
- Posts: 665
- Joined: Fri Sep 12, 2003 10:40 pm
- Location: Tallahassee, Florida
i didnt want to try that at first, but in working with CorelDraw12 today, i saw EXACTLY what you were talking about. on the right hand side of the MDI, there is sort of like a DUIhwnd where you click the top of a group, and a tabcontrol, or listbox, or whatever is on a window is hidden an shown. its pretty much like an outlook gadget for GADGETS.Henrik wrote: it would be even more perfect if "you = the user", could ad other gadgets but addDUIlink's
Henrik
i thought it was really cool, so i guess i will go ahead and make a DUIhwnd for that too. i think it will go something like this:
duipane(number,x,y,width,height,TYPE) where TYPE would be
#DUI_Link or #DUI_GADGET
then ill add an IF condition based on the TYPE that will either give you a DUIlink or DUI_gadget type of window, and each of the subwindows between the types will look a little different.
@NUM3 can you post the code of HOW you modified my LIB. i like the gradient look, so can you just shoot the code back at me and ill work further and re-compile.
Code: Select all
!.WHILE status != dwPassedOut
! Invoke AllocateDrink, dwBeerAmount
!MOV Mug, Beer
!Invoke Drink, Mug, dwBeerAmount
!.endw
-
- PureBasic Expert
- Posts: 2812
- Joined: Fri Apr 25, 2003 4:51 pm
- Location: Portugal, Lisbon
- Contact:
Eheheh...localmotion34 wrote:@NUM3 can you post the code of HOW you modified my LIB. i like the gradient look, so can you just shoot the code back at me and ill work further and re-compile.
No problem, i'll post it tonight!
I just changed 3 lines of code in a procedure and added the gradient code....
-
- PureBasic Expert
- Posts: 2812
- Joined: Fri Apr 25, 2003 4:51 pm
- Location: Portugal, Lisbon
- Contact:
Here's my code (sorry no comments on the changes)
Code: Select all
DataSection
up1:IncludeBinary "up.bmp"
down:IncludeBinary "down.bmp"
EndDataSection
Procedure InitDUI()
;UseJPEGImageDecoder()
#duiup=$FF06
#duidown=$FF07
#WM_MOUSEHOVER = $2A1
#WM_MOUSELEAVE = $2A3
#BS_FLAT=$8000
#TME_HOVER = 1
#TME_LEAVE = 2
#clnavy=$00800000
Dim image.l(2)
Structure inf
gadgethght.l
scrollgadget.l
parent.l
duinum.l[10]
State.l[10]
hwnd.l[10]
parenthwnd.l[10]
imagehwnd.l[10]
button.l[10]
buttonstate.l[10]
width.l
height.l[10]
hyperlink.l[50]
textgad.l[10]
yvalue.l[10]
scrollheight.l
EndStructure
image(0)=CatchImage(#PB_Any,?up1)
image(1)=CatchImage(#PB_Any,?down)
NewList dui.inf()
Dim icon.l(100)
EndProcedure
Procedure checkscrollheight(DUIpane)
scrollmax=20
SelectElement(dui(),DUIpane)
For a=0 To 9
If dui()\height[a]=0
scrollmax=dui()\yvalue[a-1]+dui()\height[a-1]
Break
EndIf
Next
If scrollmax>dui()\scrollheight
SetGadgetAttribute(dui()\scrollgadget,#PB_ScrollArea_InnerHeight,scrollmax+10)
SetWindowPos_(GadgetID(dui()\scrollgadget),0,0,0,dui()\width+30,dui()\gadgethght,#SWP_NOMOVE)
RedrawWindow_(GadgetID(dui()\scrollgadget),0,0,#RDW_ALLCHILDREN)
Else
SetGadgetAttribute(dui()\scrollgadget,#PB_ScrollArea_InnerHeight,dui()\scrollheight)
SetWindowPos_(GadgetID(dui()\scrollgadget),0,0,0,dui()\width+13,dui()\gadgethght,#SWP_NOMOVE)
RedrawWindow_(GadgetID(dui()\scrollgadget),0,0,#RDW_ALLCHILDREN)
EndIf
EndProcedure
Procedure moveproc(hwnd,msg,wParam,lParam)
Select msg
Case #duiup
SelectElement(dui(),lParam)
heighttomove=dui()\height[wParam]-20
For a=wParam+1 To 9
height=dui()\height[a]-20
yval=dui()\yvalue[a]-heighttomove
SetWindowPos_(dui()\hwnd[a],0,5,yval,0,0,#SWP_NOSIZE)
dui()\yvalue[a]=yval
Next
checkscrollheight(lParam)
ProcedureReturn 0
Case #duidown
SelectElement(dui(),lParam)
heighttomove=dui()\height[wParam]-20
For a=wParam+1 To 9
height=dui()\height[a]
yval=dui()\yvalue[a]+heighttomove
SetWindowPos_(dui()\hwnd[a],0,5,yval,0,0,#SWP_NOSIZE)
dui()\yvalue[a]=yval
Next
checkscrollheight(lParam)
ProcedureReturn 0
EndSelect
ProcedureReturn CallWindowProc_(GetProp_(hwnd,"OldProc2"),hwnd,msg,wParam,lParam)
EndProcedure
Procedure clickproc(hwnd,msg,wParam,lParam)
Select msg
Case #WM_MOUSEMOVE
Structure myTRACKMOUSEEVENT
cbSize.l
dwFlags.l
hwndTrack.l
dwHoverTime.l
EndStructure
mte.myTRACKMOUSEEVENT
mte\cbSize = SizeOf(myTRACKMOUSEEVENT)
SendMessage_(hwnd,#BM_SETSTYLE,#BS_DEFPUSHBUTTON,#True)
mte\dwFlags = #TME_LEAVE
mte\hwndTrack = hwnd
TrackMouseEvent_(mte)
Case #WM_MOUSELEAVE
SendMessage_(hwnd,#BM_SETSTYLE,#BS_PUSHBUTTON,#True)
EndSelect
ProcedureReturn CallWindowProc_(GetProp_(hwnd,"OldProc3"),hwnd,msg,wParam,lParam)
EndProcedure
Procedure buttonproc(hwnd,msg,wParam,lParam)
Select msg
Case #WM_CTLCOLORSTATIC
SetBkMode_(wParam,#TRANSPARENT )
blue = CreatePatternBrush_(UseImage(200))
ForEach dui()
For a=0 To 9
If IsGadget(dui()\textgad[a])And lParam=GadgetID(dui()\textgad[a])
SetTextColor_(wParam,#White) ;Text colour
EndIf
Next
Next
ProcedureReturn blue
Case #WM_COMMAND
parent=GetParent_(hwnd)
ForEach dui()
For a=0 To 9
If parent=dui()\hwnd[a]
currentdui=ListIndex(dui())
scrollparent=GetParent_(dui()\hwnd[a])
If dui()\State[a]=1
SetWindowPos_(dui()\hwnd[a],0,0,0,dui()\width,22,#SWP_NOMOVE)
dui()\State[a]=0
PostMessage_(scrollparent,#duiup,a,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[a]),#BM_SETIMAGE,#IMAGE_BITMAP,UseImage(image(1)))
ElseIf dui()\State[a]=0
SetWindowPos_(dui()\hwnd[a],0,0,0,dui()\width,dui()\height[a],#SWP_NOMOVE)
dui()\State[a]=1
PostMessage_(scrollparent,#duidown,a,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[a]),#BM_SETIMAGE,#IMAGE_BITMAP,UseImage(image(0)))
EndIf
Break
EndIf
Next
Next
ProcedureReturn 0
Case #WM_LBUTTONDBLCLK
parent=GetParent_(hwnd)
ForEach dui()
For a=0 To 9
If parent=dui()\hwnd[a]
currentdui=ListIndex(dui())
scrollparent=GetParent_(dui()\hwnd[a])
If dui()\State[a]=1
SetWindowPos_(dui()\hwnd[a],0,0,0,dui()\width,20,#SWP_NOMOVE)
SendMessage_(GadgetID(dui()\button[a]),#BM_SETCHECK,#BST_UNCHECKED,0)
dui()\State[a]=0
PostMessage_(scrollparent,#duiup,a,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[a]),#BM_SETIMAGE,#IMAGE_BITMAP,UseImage(image(1)))
ElseIf dui()\State[a]=0
SetWindowPos_(dui()\hwnd[a],0,0,0,dui()\width,dui()\height[a],#SWP_NOMOVE)
SendMessage_(GadgetID(dui()\button[a]),#BM_SETCHECK,#BST_CHECKED,0)
PostMessage_(scrollparent,#duidown,a,ListIndex(dui()))
dui()\State[a]=1
SendMessage_(GadgetID(dui()\button[a]),#BM_SETIMAGE,#IMAGE_BITMAP,UseImage(image(0)))
EndIf
Break
EndIf
Next
Next
EndSelect
ProcedureReturn CallWindowProc_(GetProp_(hwnd,"OldProc1"),hwnd,msg,wParam,lParam)
EndProcedure
Procedure DUIpane(number,x,y,panewidth,height,border); Creates A Pane To House DUIhwnd's
If border=0
border=#PB_ScrollArea_Single
EndIf
AddElement(dui())
SelectElement(dui(),number)
dui()\gadgethght=height
dui()\width=panewidth-10
scroll=ScrollAreaGadget(#PB_Any,x,y,panewidth,height,panewidth-5,height-20,30,border )
dui()\scrollgadget=scroll
dui()\scrollheight=height-20
child=GetWindow_(GadgetID(scroll),#GW_CHILD)
dui()\parent=child
SetProp_(child,"OldProc2",SetWindowLong_(child, #GWL_WNDPROC, @moveproc()))
icon(number)=CreateImage(number+200,dui()\width,22)
i = dui()\width
Color1=RGB($80,$80,$80)
Color2=GetSysColor_(4)
sRed.f = Red(Color1) : r.f = (Red (Color1) - Red (Color2))/i
sGreen.f = Green(Color1) : g.f = (Green(Color1) - Green(Color2))/i
sBlue.f = Blue(Color1) : b.f = (Blue (Color1) - Blue (Color2))/i
StartDrawing(ImageOutput())
For a = 0 To i-1
xx.f = sRed - a*r
yy.f = sGreen - a*g
zz.f = sBlue - a*b
Line(a,0,0,25,RGB(xx,yy,zz))
Next a
StopDrawing()
ProcedureReturn scroll
EndProcedure
Procedure AddDUIhwnd(DUIpane,Position,text.s); Add A DUIhwnd that Can Contain Links To Commands
SelectElement(dui(),DUIpane)
dui()\duinum[Position]=Position
dui()\height[Position]=50
totalheight=20
If Position=0
dui()\yvalue[Position]=20
ElseIf Position<>0
For a=0 To Position-1
totalheight=totalheight+dui()\height[a]+20
Next
dui()\yvalue[Position]=totalheight
EndIf
mainhandle=OpenWindow(#PB_Any,5,dui()\yvalue[Position],dui()\width,50,#PB_Window_Invisible,"")
dui()\hwnd[Position]=WindowID(mainhandle)
SetWindowLong_(dui()\hwnd[Position],#GWL_STYLE, #WS_CHILD|#WS_BORDER|#WS_CLIPCHILDREN|#WS_CLIPSIBLINGS )
SetParent_(dui()\hwnd[Position],dui()\parent)
CreateGadgetList(dui()\hwnd[Position])
dui()\imagehwnd[Position]=ImageGadget(#PB_Any,0,0,dui()\width,20,0)
SetGadgetState(dui()\imagehwnd[Position],icon(DUIpane))
If region
SetWindowRgn_(dui()\hwnd[Position],region,#True)
EndIf
dui()\button[Position]=ButtonGadget(#PB_Any,dui()\width-22,2,16,16,"^")
style = GetWindowLong_(GadgetID(dui()\button[Position]), #GWL_STYLE)
toggleStyle=style|$1083|$8000|#BS_BITMAP
SetWindowLong_(GadgetID(dui()\button[Position]), #GWL_STYLE, toggleStyle)
SendMessage_(GadgetID(dui()\button[Position]),#BM_SETIMAGE,#IMAGE_BITMAP,UseImage(image(0)))
SetProp_(GadgetID(dui()\button[Position]),"OldProc3",SetWindowLong_(GadgetID(dui()\button[Position]), #GWL_WNDPROC, @clickproc()))
SetParent_(GadgetID(dui()\button[Position]),GadgetID(dui()\imagehwnd[Position]))
dui()\textgad[Position]=TextGadget(#PB_Any,0,4,dui()\width-19,20,text,#PB_Text_Center)
SetParent_(GadgetID(dui()\textgad[Position]),GadgetID(dui()\imagehwnd[Position]))
SendMessage_(GadgetID(dui()\button[Position]),#BM_SETCHECK,#BST_CHECKED,0)
SetProp_(GadgetID(dui()\imagehwnd[Position]),"OldProc1",SetWindowLong_(GadgetID(dui()\imagehwnd[Position]), #GWL_WNDPROC, @buttonproc()))
; region=Createroundrectrgn_(0,0,dui()\width+1,56,9,9)
; If region
; SetWindowRgn_(dui()\hwnd[Position],region,#True)
; EndIf
ShowWindow_(dui()\hwnd[Position],#SW_SHOW)
SetWindowPos_(dui()\hwnd[Position],0,0,0,dui()\width,50,#SWP_NOMOVE)
RedrawWindow_(dui()\hwnd[Position],0,0,#RDW_ALLCHILDREN )
UpdateWindow_(dui()\hwnd[Position])
dui()\State[Position]=1
checkscrollheight(DUIpane)
EndProcedure
Procedure addDUIlink(DUIpane,DuiHwnd,Position,text.s,color.l); Add A Link To Execute A Command Or List An Item You Want To Display
SelectElement(dui(),DUIpane)
UseGadgetList(dui()\hwnd[DuiHwnd])
hyperlink=HyperLinkGadget(#PB_Any, 5, (Position*20) +25,dui()\width,20,text, color)
RedrawWindow_(dui()\hwnd[DuiHwnd],0,0,#RDW_ALLCHILDREN )
ShowWindow_(dui()\hwnd[DuiHwnd],#SW_SHOWNORMAL)
UpdateWindow_(dui()\hwnd[DuiHwnd])
If Position =0
dui()\height[DuiHwnd]=50
ElseIf Position>0
dui()\height[DuiHwnd]=50+(Position*20)
; region=Createroundrectrgn_(0,0,dui()\width+1,dui()\height[DuiHwnd]+5,9,9)
; If region
; SetWindowRgn_(dui()\hwnd[DuiHwnd],region,#True)
; EndIf
SetWindowPos_(dui()\hwnd[DuiHwnd],0,0,0,dui()\width,dui()\height[DuiHwnd],#SWP_NOMOVE)
If Position>=1
For a=DuiHwnd+1 To 9
SetWindowPos_(dui()\hwnd[a],0,5,dui()\yvalue[a]+(20),0,0,#SWP_NOSIZE)
dui()\yvalue[a]=dui()\yvalue[a]+(20)
Next
EndIf
EndIf
checkscrollheight(DUIpane)
ProcedureReturn hyperlink
EndProcedure
Procedure HideDUI(DUIpane,DuiHwnd,State);Hide Or Show And Individial DUIhwnd
If State=0
If dui()\State[DuiHwnd]=0
SelectElement(dui(),DUIpane)
parent=GetParent_(dui()\hwnd[DuiHwnd])
SetWindowPos_(dui()\hwnd[DuiHwnd],0,0,0,dui()\width,dui()\height[DuiHwnd],#SWP_NOMOVE)
SendMessage_(GadgetID(dui()\button[DuiHwnd]),#BM_SETCHECK,#BST_CHECKED,0)
dui()\State[DuiHwnd]=1
PostMessage_(parent,#duidown,DuiHwnd,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[DuiHwnd]),#BM_SETIMAGE,#IMAGE_BITMAP,UseImage(image(0)))
EndIf
ElseIf State=1
If dui()\State[DuiHwnd]=1
SelectElement(dui(),DUIpane)
parent=GetParent_(dui()\hwnd[DuiHwnd])
SetWindowPos_(dui()\hwnd[DuiHwnd],0,0,0,dui()\width,20,#SWP_NOMOVE)
SendMessage_(GadgetID(dui()\button[DuiHwnd]),#BM_SETCHECK,#BST_UNCHECKED,0)
dui()\State[DuiHwnd]=0
PostMessage_(parent,#duiup,DuiHwnd,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[DuiHwnd]),#BM_SETIMAGE,#IMAGE_BITMAP,UseImage(image(1)))
EndIf
EndIf
EndProcedure
Procedure GetDUIstate(duinumber);Determine Whether a DUIhwnd is Expanded Or Collapsed
SelectElement(dui(),duinumber)
returnvalue=dui()\State[duinumber]
ProcedureReturn returnvalue
EndProcedure
; Procedure DUIExpand(DUIpane,State)
; If State= 0 Or State=1
; SelectElement(dui(),DUIpane)
; For a=0 To 9
; If IsWindow_(dui()\hwnd[a])
; HideDUI(DUIpane,a,State)
; EndIf
; Next
; EndIf
; EndProcedure
Indeed TF in my case about from 71k to 31k only with num3 changes.
@localmotion34 i was thinkink maybe you should let the user have some more options in the AddDUIhwnd
Like #Dui_Color the shape 'n and some other stuff, i forgot now cus i too tired think straight.
About support for other gadgets he. he.., sounds very cool indeed..
Best regrads
Henrik

@localmotion34 i was thinkink maybe you should let the user have some more options in the AddDUIhwnd
Like #Dui_Color the shape 'n and some other stuff, i forgot now cus i too tired think straight.

About support for other gadgets he. he.., sounds very cool indeed..

Best regrads
Henrik
First of all great lib localmotion34 !!
it looks very good with num3 addon!
i have few suggestions and i think it will be perfect lib
- the gardient like num3 made would be from a selection of 2 colors, for example blue and white...
- Background color of the DUI
- Background color of the Links
- color of the DUIWND title text!
- maybe a small 16x16 icon option on the left side of the DUIWND title
this will be perfect!! hehe
thats it
looking forward for re-packing btw...
it looks very good with num3 addon!
i have few suggestions and i think it will be perfect lib
- the gardient like num3 made would be from a selection of 2 colors, for example blue and white...
- Background color of the DUI
- Background color of the Links
- color of the DUIWND title text!
- maybe a small 16x16 icon option on the left side of the DUIWND title
this will be perfect!! hehe
thats it

looking forward for re-packing btw...
-
- New User
- Posts: 3
- Joined: Tue Dec 20, 2005 9:38 pm
- Contact:
-
- New User
- Posts: 9
- Joined: Sat Jan 28, 2006 8:58 pm
- Location: Germany, MVP
- netmaestro
- PureBasic Bullfrog
- Posts: 8451
- Joined: Wed Jul 06, 2005 5:42 am
- Location: Fort Nelson, BC, Canada
I guess I can:who can optimize the code of Num3 for PB4 ????
Code: Select all
Procedure InitDUI()
#duiup=$FF06
#duidown=$FF07
#WM_MOUSEHOVER = $2A1
#WM_MOUSELEAVE = $2A3
#BS_FLAT=$8000
#TME_HOVER = 1
#TME_LEAVE = 2
#clnavy=$00800000
Global Dim image.l(2)
Structure inf
gadgethght.l
scrollgadget.l
parent.l
duinum.l[10]
State.l[10]
hwnd.l[10]
parenthwnd.l[10]
imagehwnd.l[10]
button.l[10]
buttonstate.l[10]
width.l
height.l[10]
hyperlink.l[50]
textgad.l[10]
yvalue.l[10]
scrollheight.l
EndStructure
image(0)=CatchImage(#PB_Any,?up)
image(1)=CatchImage(#PB_Any,?down)
Global NewList dui.inf()
Global Dim icon.l(100)
EndProcedure
Procedure checkscrollheight(DUIpane)
scrollmax=20
SelectElement(dui(),DUIpane)
For a=0 To 9
If dui()\height[a]=0
scrollmax=dui()\yvalue[a-1]+dui()\height[a-1]
Break
EndIf
Next
If scrollmax>dui()\scrollheight
SetGadgetAttribute(dui()\scrollgadget,#PB_ScrollArea_InnerHeight,scrollmax+10)
SetWindowPos_(GadgetID(dui()\scrollgadget),0,0,0,dui()\width+30,dui()\gadgethght,#SWP_NOMOVE)
RedrawWindow_(GadgetID(dui()\scrollgadget),0,0,#RDW_ALLCHILDREN)
Else
SetGadgetAttribute(dui()\scrollgadget,#PB_ScrollArea_InnerHeight,dui()\scrollheight)
SetWindowPos_(GadgetID(dui()\scrollgadget),0,0,0,dui()\width+13,dui()\gadgethght,#SWP_NOMOVE)
RedrawWindow_(GadgetID(dui()\scrollgadget),0,0,#RDW_ALLCHILDREN)
EndIf
EndProcedure
Procedure moveproc(hwnd,msg,wParam,lParam)
Select msg
Case #duiup
SelectElement(dui(),lParam)
heighttomove=dui()\height[wParam]-20
For a=wParam+1 To 9
height=dui()\height[a]-20
yval=dui()\yvalue[a]-heighttomove
SetWindowPos_(dui()\hwnd[a],0,5,yval,0,0,#SWP_NOSIZE)
dui()\yvalue[a]=yval
Next
checkscrollheight(lParam)
ProcedureReturn 0
Case #duidown
SelectElement(dui(),lParam)
heighttomove=dui()\height[wParam]-20
For a=wParam+1 To 9
height=dui()\height[a]
yval=dui()\yvalue[a]+heighttomove
SetWindowPos_(dui()\hwnd[a],0,5,yval,0,0,#SWP_NOSIZE)
dui()\yvalue[a]=yval
Next
checkscrollheight(lParam)
ProcedureReturn 0
EndSelect
ProcedureReturn CallWindowProc_(GetProp_(hwnd,"OldProc2"),hwnd,msg,wParam,lParam)
EndProcedure
Procedure clickproc(hwnd,msg,wParam,lParam)
Select msg
Case #WM_MOUSEMOVE
Structure myTRACKMOUSEEVENT
cbSize.l
dwFlags.l
hwndTrack.l
dwHoverTime.l
EndStructure
mte.myTRACKMOUSEEVENT
mte\cbSize = SizeOf(myTRACKMOUSEEVENT)
SendMessage_(hwnd,#BM_SETSTYLE,#BS_DEFPUSHBUTTON,#True)
mte\dwFlags = #TME_LEAVE
mte\hwndTrack = hwnd
TrackMouseEvent_(mte)
Case #WM_MOUSELEAVE
SendMessage_(hwnd,#BM_SETSTYLE,#BS_PUSHBUTTON,#True)
EndSelect
ProcedureReturn CallWindowProc_(GetProp_(hwnd,"OldProc3"),hwnd,msg,wParam,lParam)
EndProcedure
Procedure buttonproc(hwnd,msg,wParam,lParam)
Select msg
Case #WM_CTLCOLORSTATIC
SetBkMode_(wParam,#TRANSPARENT )
blue = CreatePatternBrush_(ImageID(200))
ForEach dui()
For a=0 To 9
If IsGadget(dui()\textgad[a])And lParam=GadgetID(dui()\textgad[a])
SetTextColor_(wParam,#White) ;Text colour
EndIf
Next
Next
ProcedureReturn blue
Case #WM_COMMAND
parent=GetParent_(hwnd)
ForEach dui()
For a=0 To 9
If parent=dui()\hwnd[a]
currentdui=ListIndex(dui())
scrollparent=GetParent_(dui()\hwnd[a])
If dui()\State[a]=1
SetWindowPos_(dui()\hwnd[a],0,0,0,dui()\width,22,#SWP_NOMOVE)
dui()\State[a]=0
PostMessage_(scrollparent,#duiup,a,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[a]),#BM_SETIMAGE,#IMAGE_BITMAP,ImageID(image(1)))
ElseIf dui()\State[a]=0
SetWindowPos_(dui()\hwnd[a],0,0,0,dui()\width,dui()\height[a],#SWP_NOMOVE)
dui()\State[a]=1
PostMessage_(scrollparent,#duidown,a,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[a]),#BM_SETIMAGE,#IMAGE_BITMAP,ImageID(image(0)))
EndIf
Break
EndIf
Next
Next
ProcedureReturn 0
Case #WM_LBUTTONDBLCLK
parent=GetParent_(hwnd)
ForEach dui()
For a=0 To 9
If parent=dui()\hwnd[a]
currentdui=ListIndex(dui())
scrollparent=GetParent_(dui()\hwnd[a])
If dui()\State[a]=1
SetWindowPos_(dui()\hwnd[a],0,0,0,dui()\width,20,#SWP_NOMOVE)
SendMessage_(GadgetID(dui()\button[a]),#BM_SETCHECK,#BST_UNCHECKED,0)
dui()\State[a]=0
PostMessage_(scrollparent,#duiup,a,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[a]),#BM_SETIMAGE,#IMAGE_BITMAP,ImageID(image(1)))
ElseIf dui()\State[a]=0
SetWindowPos_(dui()\hwnd[a],0,0,0,dui()\width,dui()\height[a],#SWP_NOMOVE)
SendMessage_(GadgetID(dui()\button[a]),#BM_SETCHECK,#BST_CHECKED,0)
PostMessage_(scrollparent,#duidown,a,ListIndex(dui()))
dui()\State[a]=1
SendMessage_(GadgetID(dui()\button[a]),#BM_SETIMAGE,#IMAGE_BITMAP,ImageID(image(0)))
EndIf
Break
EndIf
Next
Next
EndSelect
ProcedureReturn CallWindowProc_(GetProp_(hwnd,"OldProc1"),hwnd,msg,wParam,lParam)
EndProcedure
Procedure DUIpane(number,x,y,panewidth,height,border); Creates A Pane To House DUIhwnd's
If border=0
border=#PB_ScrollArea_Single
EndIf
AddElement(dui())
SelectElement(dui(),number)
dui()\gadgethght=height
dui()\width=panewidth-10
scroll=ScrollAreaGadget(#PB_Any,x,y,panewidth,height,panewidth-5,height-20,30,border )
dui()\scrollgadget=scroll
dui()\scrollheight=height-20
child=GetWindow_(GadgetID(scroll),#GW_CHILD)
dui()\parent=child
SetProp_(child,"OldProc2",SetWindowLong_(child, #GWL_WNDPROC, @moveproc()))
icon(number)=CreateImage(number+200,dui()\width,22)
i = dui()\width
Color1=RGB($80,$80,$80)
Color2=GetSysColor_(4)
sRed.f = Red(Color1) : r.f = (Red (Color1) - Red (Color2))/i
sGreen.f = Green(Color1) : g.f = (Green(Color1) - Green(Color2))/i
sBlue.f = Blue(Color1) : b.f = (Blue (Color1) - Blue (Color2))/i
StartDrawing(ImageOutput(number+200))
For a = 0 To i-1
xx.f = sRed - a*r
yy.f = sGreen - a*g
zz.f = sBlue - a*b
Line(a,0,0,25,RGB(xx,yy,zz))
Next a
StopDrawing()
ProcedureReturn scroll
EndProcedure
Procedure AddDUIhwnd(DUIpane,Position,text.s); Add A DUIhwnd that Can Contain Links To Commands
SelectElement(dui(),DUIpane)
dui()\duinum[Position]=Position
dui()\height[Position]=50
totalheight=20
If Position=0
dui()\yvalue[Position]=20
ElseIf Position<>0
For a=0 To Position-1
totalheight=totalheight+dui()\height[a]+20
Next
dui()\yvalue[Position]=totalheight
EndIf
mainhandle=OpenWindow(#PB_Any,5,dui()\yvalue[Position],dui()\width,50,"",#PB_Window_Invisible)
dui()\hwnd[Position]=WindowID(mainhandle)
SetWindowLong_(dui()\hwnd[Position],#GWL_STYLE, #WS_CHILD|#WS_BORDER|#WS_CLIPCHILDREN|#WS_CLIPSIBLINGS )
SetParent_(dui()\hwnd[Position],dui()\parent)
CreateGadgetList(dui()\hwnd[Position])
dui()\imagehwnd[Position]=ImageGadget(#PB_Any,0,0,dui()\width,20,0)
SetGadgetState(dui()\imagehwnd[Position],icon(DUIpane))
If region
SetWindowRgn_(dui()\hwnd[Position],region,#True)
EndIf
dui()\button[Position]=ButtonGadget(#PB_Any,dui()\width-22,2,16,16,"^")
style = GetWindowLong_(GadgetID(dui()\button[Position]), #GWL_STYLE)
toggleStyle=style|$1083|$8000|#BS_BITMAP
SetWindowLong_(GadgetID(dui()\button[Position]), #GWL_STYLE, toggleStyle)
SendMessage_(GadgetID(dui()\button[Position]),#BM_SETIMAGE,#IMAGE_BITMAP,ImageID(image(0)))
SetProp_(GadgetID(dui()\button[Position]),"OldProc3",SetWindowLong_(GadgetID(dui()\button[Position]), #GWL_WNDPROC, @clickproc()))
SetParent_(GadgetID(dui()\button[Position]),GadgetID(dui()\imagehwnd[Position]))
dui()\textgad[Position]=TextGadget(#PB_Any,0,4,dui()\width-19,20,text,#PB_Text_Center)
SetParent_(GadgetID(dui()\textgad[Position]),GadgetID(dui()\imagehwnd[Position]))
SendMessage_(GadgetID(dui()\button[Position]),#BM_SETCHECK,#BST_CHECKED,0)
SetProp_(GadgetID(dui()\imagehwnd[Position]),"OldProc1",SetWindowLong_(GadgetID(dui()\imagehwnd[Position]), #GWL_WNDPROC, @buttonproc()))
; region=Createroundrectrgn_(0,0,dui()\width+1,56,9,9)
; If region
; SetWindowRgn_(dui()\hwnd[Position],region,#True)
; EndIf
ShowWindow_(dui()\hwnd[Position],#SW_SHOW)
SetWindowPos_(dui()\hwnd[Position],0,0,0,dui()\width,50,#SWP_NOMOVE)
RedrawWindow_(dui()\hwnd[Position],0,0,#RDW_ALLCHILDREN )
UpdateWindow_(dui()\hwnd[Position])
dui()\State[Position]=1
checkscrollheight(DUIpane)
EndProcedure
Procedure addDUIlink(DUIpane,DuiHwnd,Position,text.s,color.l); Add A Link To Execute A Command Or List An Item You Want To Display
SelectElement(dui(),DUIpane)
UseGadgetList(dui()\hwnd[DuiHwnd])
hyperlink=HyperLinkGadget(#PB_Any, 5, (Position*20) +25,dui()\width,20,text, color)
RedrawWindow_(dui()\hwnd[DuiHwnd],0,0,#RDW_ALLCHILDREN )
ShowWindow_(dui()\hwnd[DuiHwnd],#SW_SHOWNORMAL)
UpdateWindow_(dui()\hwnd[DuiHwnd])
If Position =0
dui()\height[DuiHwnd]=50
ElseIf Position>0
dui()\height[DuiHwnd]=50+(Position*20)
; region=Createroundrectrgn_(0,0,dui()\width+1,dui()\height[DuiHwnd]+5,9,9)
; If region
; SetWindowRgn_(dui()\hwnd[DuiHwnd],region,#True)
; EndIf
SetWindowPos_(dui()\hwnd[DuiHwnd],0,0,0,dui()\width,dui()\height[DuiHwnd],#SWP_NOMOVE)
If Position>=1
For a=DuiHwnd+1 To 9
SetWindowPos_(dui()\hwnd[a],0,5,dui()\yvalue[a]+(20),0,0,#SWP_NOSIZE)
dui()\yvalue[a]=dui()\yvalue[a]+(20)
Next
EndIf
EndIf
checkscrollheight(DUIpane)
ProcedureReturn hyperlink
EndProcedure
Procedure HideDUI(DUIpane,DuiHwnd,State);Hide Or Show And Individial DUIhwnd
If State=0
If dui()\State[DuiHwnd]=0
SelectElement(dui(),DUIpane)
parent=GetParent_(dui()\hwnd[DuiHwnd])
SetWindowPos_(dui()\hwnd[DuiHwnd],0,0,0,dui()\width,dui()\height[DuiHwnd],#SWP_NOMOVE)
SendMessage_(GadgetID(dui()\button[DuiHwnd]),#BM_SETCHECK,#BST_CHECKED,0)
dui()\State[DuiHwnd]=1
PostMessage_(parent,#duidown,DuiHwnd,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[DuiHwnd]),#BM_SETIMAGE,#IMAGE_BITMAP,ImageID(image(0)))
EndIf
ElseIf State=1
If dui()\State[DuiHwnd]=1
SelectElement(dui(),DUIpane)
parent=GetParent_(dui()\hwnd[DuiHwnd])
SetWindowPos_(dui()\hwnd[DuiHwnd],0,0,0,dui()\width,20,#SWP_NOMOVE)
SendMessage_(GadgetID(dui()\button[DuiHwnd]),#BM_SETCHECK,#BST_UNCHECKED,0)
dui()\State[DuiHwnd]=0
PostMessage_(parent,#duiup,DuiHwnd,ListIndex(dui()))
SendMessage_(GadgetID(dui()\button[DuiHwnd]),#BM_SETIMAGE,#IMAGE_BITMAP,ImageID(image(1)))
EndIf
EndIf
EndProcedure
Procedure GetDUIstate(duinumber);Determine Whether a DUIhwnd is Expanded Or Collapsed
SelectElement(dui(),duinumber)
returnvalue=dui()\State[duinumber]
ProcedureReturn returnvalue
EndProcedure
; Procedure DUIExpand(DUIpane,State)
; If State= 0 Or State=1
; SelectElement(dui(),DUIpane)
; For a=0 To 9
; If IsWindow_(dui()\hwnd[a])
; HideDUI(DUIpane,a,State)
; EndIf
; Next
; EndIf
; EndProcedure
;************************************************
; Test program - remove this
;************************************************
OpenWindow(0,0,0,800,600,"")
CreateGadgetList(WindowID(0))
InitDUI()
DUIPane(0,20,20,100,200,0)
addDUIHwnd(0,0,"test")
link=addDUIlink(0,0,0,"Message Box",$FF0000)
Repeat
ev=WaitWindowEvent()
If ev=#PB_Event_Gadget
If EventGadget()=link
MessageRequester("Notice", "You pressed a link that works!",$C0)
EndIf
EndIf
Until ev=#PB_Event_CloseWindow
;*************************************************
; End Test Program
;*************************************************
DataSection
up:
Data.b $42,$4D,$38,$03,$00,$00,$00,$00,$00,$00,$36,$00,$00,$00,$28,$00
Data.b $00,$00,$10,$00,$00,$00,$10,$00,$00,$00,$01,$00,$18,$00,$00,$00
Data.b $00,$00,$02,$03,$00,$00,$12,$0B,$00,$00,$12,$0B,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$3D,$4D,$20,$3D,$4D,$20,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$36,$45,$1C,$3D,$4D,$23,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$41,$51,$23,$3D,$49,$20,$3D,$4D,$20,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$32,$3D,$1C,$45,$55,$23,$3D,$4D,$20,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$41,$51,$23,$3D,$4D,$20,$41,$51,$23,$2E,$3A
Data.b $19,$3A,$49,$20,$3D,$4D,$23,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$49,$59,$27,$41,$51,$23,$3A,$49
Data.b $20,$32,$3D,$1C,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$3A,$45,$1C,$3A,$49
Data.b $20,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$3A,$45,$20,$32,$41,$1C,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$45,$55,$23,$3A,$49,$20,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$3A,$45,$20,$32,$3D,$1C,$3A,$45,$20,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$4D,$61,$2B,$41,$51,$23,$3A,$49,$20,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$32,$3D,$1C,$32,$3D,$19,$32,$41,$1C,$45,$55
Data.b $27,$3A,$49,$20,$3D,$49,$20,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$2B,$36,$19,$49,$59,$27,$49,$59
Data.b $27,$32,$3D,$19,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$41,$51,$23,$45,$55
Data.b $23,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00
down:
Data.b $42,$4D,$38,$03,$00,$00,$00,$00,$00,$00,$36,$00,$00,$00,$28,$00
Data.b $00,$00,$10,$00,$00,$00,$10,$00,$00,$00,$01,$00,$18,$00,$00,$00
Data.b $00,$00,$02,$03,$00,$00,$12,$0B,$00,$00,$12,$0B,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$45,$55,$23,$41,$51
Data.b $23,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$32,$3D,$19,$49,$59,$27,$49,$59
Data.b $27,$2B,$36,$19,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$3D,$49,$20,$3A,$49,$20,$45,$55,$27,$32,$41
Data.b $1C,$32,$3D,$19,$32,$3D,$1C,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$3A,$49,$20,$41,$51,$23,$4D,$61,$2B,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$3A,$45,$20,$32,$3D,$1C,$3A,$45,$20,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$3A,$49,$20,$45,$55,$23,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$32,$41,$1C,$3A,$45,$20,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$3A,$49,$20,$3A,$45
Data.b $1C,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$32,$3D,$1C,$3A,$49,$20,$41,$51
Data.b $23,$49,$59,$27,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$3D,$4D,$23,$3A,$49,$20,$2E,$3A,$19,$41,$51
Data.b $23,$3D,$4D,$20,$41,$51,$23,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$3D,$4D,$20,$45,$55,$23,$32,$3D,$1C,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$3D,$4D,$20,$3D,$49,$20,$41,$51,$23,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$3D,$4D,$23,$36,$45,$1C,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$3D,$4D,$20,$3D,$4D,$20,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9,$B9
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
Data.b $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00
EndDataSection
BERESHEIT
-
- New User
- Posts: 9
- Joined: Sat Jan 28, 2006 8:58 pm
- Location: Germany, MVP
I guess I can:netmaestro wrote:who can optimize the code of Num3 for PB4 ????
Code: Select all
Procedure InitDUI()
#duiup=$FF06
.....
thank you netmaestro !!!!
Greetings from old Europe, Germany