Archive Browser
Download matrixscreensaver.zip, last updated 07/07/2000 (34.72 KB)
Download- md5: 26afc89285581880adcea85741a89874
VERSION 5.00
Begin VB.UserControl asxColourSelect
ClientHeight = 375
ClientLeft = 0
ClientTop = 0
ClientWidth = 1230
ScaleHeight = 25
ScaleMode = 3 'Pixel
ScaleWidth = 82
ToolboxBitmap = "ColourSelect.ctx":0000
End
Attribute VB_Name = "asxColourSelect"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'-----------------------------------------'
' Ariad Development Components '
'-----------------------------------------'
' ColourSelect UserControl '
' Version 1.0 '
'-----------------------------------------'
'Copyright � 1999 by Ariad Software. All Rights Reserved.
'Created : 06/10/1999
'Completed : 06/10/1999
'Last Updated :
Option Explicit
DefInt A-Z
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type TCHOOSECOLOR
lStructSize As Long
hWndOwner As Long
hInstance As Long
rgbResult As Long
lpCustColors As Long
Flags As Long
lCustData As Long
lpfnHook As Long
lpTemplateName As Long
End Type
Private Declare Function ChooseColor Lib "COMDLG32.DLL" Alias "ChooseColorA" (Color As TCHOOSECOLOR) As Long
Private Declare Function DrawFocusRect& Lib "user32" (ByVal hDC As Long, lpRect As RECT)
Private Declare Function DrawFrameControl Lib "user32" (ByVal hDC&, lpRect As RECT, ByVal un1 As Long, ByVal un2 As Long) As Boolean
Private Declare Function OleTranslateColor Lib "oleaut32.dll" (ByVal lOleColor As Long, ByVal lHPalette As Long, lColorRef As Long) As Long
Private InFocus As Boolean
Private IsPushed As Boolean
Private pColour As OLE_COLOR
Public Event Change(Color As OLE_COLOR)
Private Function SelectColor(DefColor As Long, Optional ShowExpDlg As Boolean = 0, Optional InitCustomColours As Boolean = -1) As Long
Dim I
Dim C As Long
Dim CC As TCHOOSECOLOR
Dim CT$
Dim CustomColors(16) As Long
'Initialise Custom Colours
If InitCustomColours Then
For I = 0 To 15
CT$ = GetSetting$("Ariad Non-ADL User Settings", "CustomColours", CStr(I))
CustomColors(I) = IIf(Len(CT$), Val(CT$), QBColor(15))
Next
End If
'Show Dialog
With CC
.rgbResult = DefColor
.hWndOwner = hWnd
.lpCustColors = VarPtr(CustomColors(0))
.Flags = &H101
If ShowExpDlg Then .Flags = .Flags Or &H2
.lStructSize = Len(CC)
C = ChooseColor(CC)
If C Then
SelectColor = .rgbResult
Else
SelectColor = -1
End If
End With
End Function
'------------------------------------------------------
'Name : Colour
'Created : 06/10/1999 19:41
'------------------------------------------------------
'Author : Richard James Moss
'Organisation: Ariad Software
'------------------------------------------------------
'Description : Returns/sets the colour of the control.
'------------------------------------------------------
'Returns : Returns an OLE_COLOR Variable
'------------------------------------------------------
'Updates :
'
'------------------------------------------------------
' Ariad Procedure Builder Add-In 1.00.0027
Public Property Get Colour() As OLE_COLOR
Colour = pColour
End Property '(Public) Property Get Colour () As OLE_COLOR
Property Let Colour(ByVal Colour As OLE_COLOR)
pColour = Colour
PropertyChanged "Colour"
Refresh
End Property ' Property Let Colour
'--------------------------------------------------------
'Name : Refresh
'Created : 06/10/1999 19:38
'--------------------------------------------------------
'Author : Richard James Moss
'Organisation: Ariad Software
'--------------------------------------------------------
'Description : Forces a complete repaint of the control.
'--------------------------------------------------------
'Updates :
'
'--------------------------------------------------------
' Ariad Procedure Builder Add-In 1.00.0027
Public Sub Refresh()
Dim Flags As Long
Dim R As RECT
Dim Z
Const FR = 3
Const CB = 5
Z = Abs(IsPushed)
Flags = 16
If IsPushed Then Flags = Flags Or 512
Line (-1, -1)-(ScaleWidth + 1, ScaleHeight + 1), vbButtonFace, BF
'border
R.Right = ScaleWidth
R.Bottom = ScaleHeight
DrawFrameControl hDC, R, 4, Flags
'colour
Line (CB + Z, CB + Z)-(ScaleWidth + Z - (CB + 1), ScaleHeight + Z - (CB + 1)), pColour, BF
Line (CB + Z, CB + Z)-(ScaleWidth + Z - (CB + 1), ScaleHeight + Z - (CB + 1)), vbWindowText, B
'focus
If InFocus Then
With R
.Left = FR + Z
.Top = FR + Z
.Bottom = ScaleHeight - (FR - Z)
.Right = ScaleWidth - (FR - Z)
End With
DrawFocusRect hDC, R
End If
End Sub '(Public) Sub Refresh ()
Private Sub UserControl_Click()
Dim C As Long, D As Long
OleTranslateColor pColour, 0, D
C = SelectColor(D)
If C <> -1 Then
Colour = C
RaiseEvent Change(C)
End If
End Sub
Private Sub UserControl_GotFocus()
InFocus = -1
Refresh
End Sub
Private Sub UserControl_Initialize()
AutoRedraw = -1
End Sub
Private Sub UserControl_InitProperties()
pColour = vbWhite
Refresh
End Sub
Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 32 Then
IsPushed = -1
Refresh
End If
End Sub
Private Sub UserControl_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 32 Then
IsPushed = 0
Refresh
UserControl_Click
End If
End Sub
Private Sub UserControl_LostFocus()
InFocus = 0
Refresh
End Sub
Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
InFocus = -1
IsPushed = -1
Refresh
End Sub
Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
IsPushed = 0
Refresh
End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
With PropBag
pColour = .ReadProperty("Colour", vbWhite)
End With
Refresh
End Sub
Private Sub UserControl_Resize()
Refresh
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
With PropBag
.WriteProperty "Colour", pColour, vbWhite
End With
Refresh
End Sub
Donate
This software may be used free of charge, but as with all free software there are costs involved to develop and maintain.
If this site or its services have saved you time, please consider a donation to help with running costs and timely updates.
Donate