Type QToolBar extends QPanel 'Public ButtonX as integer 'Button Clicked ShowHint as short Hint() as string 'Hint of buttons Enabled() as short 'Button enable or nott Flat as short 'Flat buttons or not 'Private imgl1 as Qimagelist 'Active buttton imgl2 as Qimagelist 'Disabel button img as qcanvas 'on paint Buttons Butbmp as QBitmap 'our False button CButton as qCoolBtn ' one real button imglHandle as integer 'Handle imglDHandle as integer 'Handel 2 Buttons as integer 'Number of buttons X as Integer 'Height of bmp Y as Integer 'Width of bmp ' lbl as Qlabel Sub load With QtoolBar .imgl1.handle = .imglHandle 'QIamgeList 1 Enabled button .imgl2.handle = .imglDHandle 'QImageList 2 Disabled Button .Buttons = .imgl1.Count 'How many buttons? .X = .imgl1.Width+6.: .Y = .imgl1.Width+6 'Dimensions if .Align =1 or .Align =2 or .Align =0 then '& position if .Height < .X + 12 then .Height = .X + 12 if .Width < .Y*.Buttons then .Width = .Y*.Buttons + 12 else if .Height < .X*.Buttons then .Height = .X*.Buttons + 12 if .Width < .Y + 12 then .Width = .Y +12 end if .ButBmp.Height = .X: .ButBmp.Width = .Y 'Drawing one false button if .Flat Then 'is a flat toolbar .ButBmp.FillRect (0, 0, .X, .Y, &HC0C0C0) Else 'isn`t flat tool bar .ButBmp.FillRect (0, 0, .X, .Y, &HC0C0C0) .ButBmp.Line (0, 0, .X-2, 0, &HFFFFFF) .ButBmp.Line (0, 0, 0, .Y-2, &HFFFFFF) .ButBmp.Line (1, 1, .X-3, 1, &HDFDFDF) .ButBmp.Line (1, 1, 1, .Y-3, &HDFDFDF) .ButBmp.Line (0, .Y-1, .X-1, .Y-1, &H000000) .ButBmp.Line (.X-1, .Y-1, .X-1, 0, &H000000) .ButBmp.Line (1, .Y-2, .X-2, .Y-2, &H808080) .ButBmp.Line (.X-2, .Y-2, .X-2, 1, &H808080) end if 'a lot of propieties .img.parent = Qtoolbar .img.Top = 6: .img.Left = 6 if .Align =1 or .Align =2 or .Align =0 then .img.Height = .X: .img.Width = .Buttons*.X else .img.Width = .Y: .img.Height = .Buttons*.Y end if .Cbutton.Parent = QtoolBar .Cbutton.Height = .X:.Cbutton.Width = .Y if .Align =1 or .Align =2 or .Align =0 then .Cbutton.top = 6 : .CButton.Left = -100 else .Cbutton.Left = 6 : .CButton.Top = -100 end if .Cbutton.Flat = .Flat .Cbutton.ShowHint = 1 ' .lbl.parent = Qtoolbar: .lbl.left = 150: .lbl.top =10 End With End Sub Sub Paint 'Draw Buttons Dim a as integer With QtoolBar .CButton.Down = 0 For a = 0 to .Buttons -1 if a <> .ButtonX then If .Enabled(a) then .ButBmp.Draw (3,3,Qtoolbar.imgl1.GetBMP(a)) else .ButBmp.Draw (3,3,Qtoolbar.imgl2.GetBMP(a)) end if if .Align =1 or .Align =2 or .Align =0 then .img.Draw (a*.X, 0, .ButBmp.Bmp) else .img.Draw (0,a*.Y, .ButBmp.Bmp) End if end if Next End With end sub Sub showButton 'Show the correct button With QToolBar if .Align =1 or .Align =2 or .Align =0 then .ButtonX = mouseX \ .X else .ButtonX = mouseY \ .Y end if ' .lbl.Caption = str$(.ButtonX) IF .Enabled(.ButtonX) then .CButton.BMP = Qtoolbar.imgl1.GetBMP(.ButtonX) else Exit sub .CButton.BMP = Qtoolbar.imgl1.GetBMP(.ButtonX) .CButton.Enabled = 0 end if if .Align =1 or .Align =2 or .Align =0 then .CButton.Left = .ButtonX*.X + 6 else .CButton.Top = .ButtonX*.Y + 6 end if .CButton.hint = .hint(.ButtonX) .CButton.Visible = 1 end With end Sub Sub Reset 'Reset toolbar QToolbar.ButtonX = -1 QToolbar.CButton.Visible = 0 QToolbar.Paint end Sub Event img.onpaint QtoolBar.Paint end Event Event img.OnMouseMove QtoolBar.ShowButton end Event Event OnMouseMove QToolbar.Reset end Event Constructor Buttons = 0 ButtonX = -1 Flat = 1 Enabled() = 1 Hint() = "" ShowHint = 1 end constructor end type