Hi All,
I am building a custom property page for a user control, and would like to add to the form a custom color selector which is same as used on the stock Color Property Page (see attached JPG)
Any Ideas or solutions ?
Cheers
Neil
Printable View
Hi All,
I am building a custom property page for a user control, and would like to add to the form a custom color selector which is same as used on the stock Color Property Page (see attached JPG)
Any Ideas or solutions ?
Cheers
Neil
You can create your own FORM, and use it in your app, or you can create a UAC (User Access Control) that lets you use it in ANY app
Thanks for the reply, ideally I am trying to find out if this "control" is available any where, as I see it used on a number of thirdpartt controls i.e TrueDBGrid etc.
Ideally I'd like a complete match, with images in ListBox as in pic, I may develop one using ListView (Easier with images), but was hoping to save some time, if this was available anywhere
Cheers
Neil
Most tools don't work anymore. I had DevExpress's tools for VB6, but they're gone, as is ActiveX Resizer
npd, I think this is possible in VB6. I know for a fact it is very easy in VB.NET. Let me see if I can source one of my examples about this in VB 6, for you, else I'll make one in VB.NET and make it compatible with VB 6, and explain to you how to use it :)
Sound like a plan ¿
I'd be curious, too. :)
Just an update :)
It is possible - a lot of APIs
I'm busy with it, so hopefully tomorrow I'll be able to post what I have :D
OK...
Mine is not so pretty as your shown picure, but it is still pretty funky ( I think so :blush: )
What happens with my project is that it overrides the standard listbox in order to display the system colours ( that you want ). How the list displays them is, with each colour, the item's background is that associated colour.
Have a look at it, it does work, but if it is not what you wanted, or if you wanted something a bit more funky, I'll see what I can come up with - just note, I have very limited time these days, so I'll try my best for you :)
Have fun!
Hannes
Not quite the same, but not bad either. Don't know if that's what he wabted, bit I say it looks good.
I like API juggling. :)
Now we would simply have to do a color change/edit routine, say, in the click or doubleclick event of the listbox.
Yip, not quite the same, I'm also a bit disappointed. It isn't what I intended, hopefully I can find a way to add the pictures - that will look quite funky. Time is a problem these days for me, as some may know. Watch this space ! :D
Too complicated. Here's the new way in Windows 7
:confused: Seriously, what does that have to do with the OP's original question ¿ :confused:
That dialog box is the same in Vista, XP even Windows 98 - you just get to it differently, on each OS ...
Suppose you have a button instead, which opens a standard Property Page at runtime?
This code apparently works, though I've not tried it:
http://forums.ni.com/ni/board/messag...essage.id=2001
or this?
Code:Option Explicit
' cdlCFPrinterFonts &H2
' Save File Options
'&H2 - Forces a warning before overwriting a file
'&H8 - Stops default directory from changing
'&H200 - more than one file can be selected.
'&H1000 - This makes it so the file must exist.
'&H2000 - This warns the user before creating a new file.
Private Sub cmdOpen_Click()
' CancelError is True.
On Error GoTo ErrHandler
CommonDialog1.InitDir = App.Path
' Set Flags
CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNLongNames
' Set filters.
CommonDialog1.Filter = "All Files (*.*)|*.*|Text" & _
"Files (*.txt)|*.txt|Batch Files (*.bat)|*.bat"
' CommonDialog1.Filter = "AutoForm Files (*.doc) (*.rtf)|*.doc;*.rtf|All " & _
"Files (*.*)|*.*"
' Specify default filter.
CommonDialog1.FilterIndex = 2 ' Default to TEXT
' Display the Open dialog box.
CommonDialog1.ShowOpen
' Call the open file procedure.
' OpenFile (CommonDialog1.FileName)
Debug.Print CommonDialog1.FileName
Exit Sub
ErrHandler:
' User pressed Cancel button.
Exit Sub
End Sub
Private Sub cmdShowColor_Click()
' Set Cancel to True
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
' Set the Flags property
CommonDialog1.Flags = cdlCFEffects Or cdlCFBoth
' Display the Font dialog box
CommonDialog1.ShowColor
rtb.BackColor = CommonDialog1.Color
Exit Sub
ErrHandler:
' User pressed the Cancel button
Exit Sub
End Sub
Private Sub cmdShowFont_Click()
' Set Cancel to True
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
' Set the Flags property
CommonDialog1.Flags = cdlCFEffects Or cdlCFBoth ' cdlCFPrinterFonts
' Display the Font dialog box
CommonDialog1.ShowFont
If rtb.SelLength = 0 Then
rtb.SelStart = 0
rtb.SelLength = Len(rtb.SelRTF)
End If
rtb.SelFontName = CommonDialog1.FontName
rtb.SelFontSize = CommonDialog1.FontSize
rtb.SelBold = CommonDialog1.FontBold
rtb.SelItalic = CommonDialog1.FontItalic
rtb.SelUnderline = CommonDialog1.FontUnderline
rtb.SelStrikeThru = CommonDialog1.FontStrikethru
rtb.SelColor = CommonDialog1.Color
Exit Sub
ErrHandler:
' User pressed the Cancel button
Exit Sub
End Sub
Private Sub cmdSaveFile_Click()
Dim strFileName As String
Dim ans As Integer
CommonDialog1.Flags = &H2 ' Overwrite Flag
CommonDialog1.Filter = "RTF|*.rtf|Text|*.txt"
CommonDialog1.ShowSave
On Error GoTo SaveProblems
strFileName = CommonDialog1.FileName
If CommonDialog1.FilterIndex = 1 Then
CommonDialog1.DefaultExt = "rtf"
rtb.SaveFile strFileName
Else
CommonDialog1.DefaultExt = "txt"
rtb.SaveFile strFileName, rtfText
End If
Exit Sub
SaveProblems:
MsgBox "Can’t save the file, try again.", vbCritical
Exit Sub
End Sub
Private Sub Form_Load()
Label1.Caption = "Open File into RTB " & vbCrLf & _
"Save File from RTB" & vbCrLf & _
"Show Font" & vbCrLf & _
"Change selected text" & vbCrLf & _
" or all text." & vbCrLf & _
"Show Color" & vbCrLf & _
"Change BackColor of RTB"
End Sub
Sub SaveMultipleFiles()
Dim strOrigDir As String
Dim strNewDir As String
Dim varTemp As Variant
Dim lngIdx As Long
strNewDir = "D:\Temp\"
With CommonDialog1
.Flags = cdlOFNAllowMultiselect Or cdlOFNLongNames Or cdlOFNExplorer
.ShowSave
varTemp = Split(.FileName, vbNullChar)
End With
If IsArray(varTemp) Then
If UBound(varTemp) = 0 Then
FileCopy varTemp(lngIdx), strNewDir & Right$(varTemp(lngIdx), Len(varTemp(lngIdx)) - InStrRev(varTemp(lngIdx), "\"))
Else
strOrigDir = varTemp(0)
For lngIdx = LBound(varTemp) + 1 To UBound(varTemp)
FileCopy strOrigDir & "\" & varTemp(lngIdx), strNewDir & varTemp(lngIdx)
Next
End If
End If
End Sub
Looks like a standard CommonDialog example to me.
Hi Neil,
Its really easy to add the Color Property Page to your UserControl. The last part to do is populate the colors.
In your UserControl there is a PropertyPages property which when you click the elipsis it brings up a dialog where you can check the box to add the Color property page tab to your UserControl. The dialog is captioned as "Connect Property Pages". Also in there will be your custom property page if any exist.
I have added two forms of property page type to my usercontrol project and also the Color Property Page as you can see in my attached screenshot.
In the code behind view you can use the Tools > Procedure Attributes... to associate your property with the desired property page.
-Robert
Ps, this is my custom property page dialog as you can see only Column Header and Icon Imagelist tabs :D
Hi Hannes, (and the rest of you ;)
Thanks for your help and research, sorry I havent replied sooner, I have just revisited problem, and looking into it again.
certain some good ideas in the source their, may see if I can play with columns / colours in the list box maybe, to get a closer look.
Its a shame this control isnt available as I see it used so much in other 3rd party controls, it must be out the somewhere for all of them to use it.
Or the API that adds images to List Box, so I can do my own.
Thanks again Hannes for the work you put in, very rare indeed to see this kind of effort on forums ;)
Neil
Hi RobDog,
Thanks for reply
See attached, for what I am trying to acheive, I have a series of properties that are not directly exposed by the control, which dont get picked up by the Property Page Wizard / Color Properties, so I am trying to find the Color Set Combo / Color Pallete List Box , Edit Cusom Color Button combination as a control somewhere, so I can utilise it in a custom way as they do in TDBGRid, and other controls.
Regards
Neil
I think the properties to be included on the StandardColor PropertyPage must be declared as Public in order to show up. Do you want some properties to not be public, while still showing in the color PropertyPage?
Attached is an example which achieves what you've shown.
WizBang I wish I was as brilliant as you... :thumb: