12-10-12, 02:44 AM
السلام عليكم و رحمة الله و بركاته
مكون دلفي الشهير TColorBox على منصة الدوت نت . الأداة توفر لك عرض قائمة لجميع الألوان أو ألوان محددة كألوان النظام أو SystemColors أو ..
[ATTACH=CONFIG]859[/ATTACH][ATTACH=CONFIG]860[/ATTACH]
الأداة قمت بتوريثها من الفئة ComboBox و تحتوي على الخصائص التالية :
الخاصية ColorsTypes و تحدد نوع الألوان و لها أربع خيارات :
FromDefaultColors : الألوان الافتراضية
FromSystemColors : ألوان النظام كلون القوائم أو النصوص .. الخ
FromKnownColor : ألوان خاصة ب MS
FromItems : تسمح لك هذه الخاصية بتخصيص الألوان التي تريد اظهارها عن طريق ال Items , كعرض مثلا اللون الأحمر و الأصفر فقط ..
الخاصية HighlightColor : اللون الذي سيلون به ال Item عند مرور مؤشر الماوس
الخاصية SelectedColor : تعيد هذه الخاصية اللون المحدد
الخاصية itemColor : تعيد اللون الموجود في ال item
سورس الأداة : #C
سورس الأداة : Vb.Net
مكون دلفي الشهير TColorBox على منصة الدوت نت . الأداة توفر لك عرض قائمة لجميع الألوان أو ألوان محددة كألوان النظام أو SystemColors أو ..
[ATTACH=CONFIG]859[/ATTACH][ATTACH=CONFIG]860[/ATTACH]
الأداة قمت بتوريثها من الفئة ComboBox و تحتوي على الخصائص التالية :
الخاصية ColorsTypes و تحدد نوع الألوان و لها أربع خيارات :
FromDefaultColors : الألوان الافتراضية
FromSystemColors : ألوان النظام كلون القوائم أو النصوص .. الخ
FromKnownColor : ألوان خاصة ب MS
FromItems : تسمح لك هذه الخاصية بتخصيص الألوان التي تريد اظهارها عن طريق ال Items , كعرض مثلا اللون الأحمر و الأصفر فقط ..
الخاصية HighlightColor : اللون الذي سيلون به ال Item عند مرور مؤشر الماوس
الخاصية SelectedColor : تعيد هذه الخاصية اللون المحدد
PHP كود :
Me.BackColor = Me.TColorBox1.SelectedColor
PHP كود :
BackColor = Me.TColorBox1.itemColor(1)
PHP كود :
/* TColorBox v1 by SMP3 | SAFMEHDI
' My Blog : DelphiNews.WordPress.Com
' Note : you can (use,modify,edit) this free tool in your project without any conditions .. :)
'
' ---> Open Your Source ... Open Your Mind
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.ComponentModel;
using System.Drawing;
using System.Reflection;
namespace ColorBoxDemo_CSharp
{
public class TColorBox : ComboBox
{
public TColorBox()
{
this.DrawMode = DrawMode.OwnerDrawVariable;
this.DropDownStyle = ComboBoxStyle.DropDownList;
EnumColors();
if (this.Items.Count > 0)
this.SelectedItem = this.Items[0];
}
public enum _ColorsTypes
{
FromDefaultColors,
FromKnownColor,
FromSystemColors,
FromItems,
}
private _ColorsTypes mColorsTypes = _ColorsTypes.FromDefaultColors;
private Color mHighlightColor = SystemColors.Highlight;
public _ColorsTypes ColorsTypes
{
get
{
return mColorsTypes;
}
set
{
mColorsTypes = value;
EnumColors();
Invalidate();
}
}
public Color HighlightColor
{
get
{
return mHighlightColor;
}
set
{
mHighlightColor = value;
}
}
private void EnumColors()
{
System.Reflection.PropertyInfo[] pAllColor;
Items.Clear();
switch (mColorsTypes)
{
case _ColorsTypes.FromDefaultColors:
pAllColor = typeof(Color).GetProperties((BindingFlags.Static | BindingFlags.Public));
foreach (System.Reflection.PropertyInfo pColor in pAllColor)
{
Items.Add(pColor.Name);
}
break;
case _ColorsTypes.FromSystemColors:
pAllColor = typeof(SystemColors).GetProperties((BindingFlags.Static | BindingFlags.Public));
foreach (System.Reflection.PropertyInfo pColor in pAllColor)
{
Items.Add(pColor.Name);
}
break;
case _ColorsTypes.FromKnownColor:
string[] KnownColorNames = Enum.GetNames(typeof(KnownColor));
Items.AddRange(KnownColorNames);
break;
case _ColorsTypes.FromItems:
break;
}
}
[Browsable(false)]
public Color SelectedColor
{
get
{
return Color.FromName(this.SelectedItem.ToString());
}
}
public Color getItemColor(int iIndex)
{
return Color.FromName(this.Items[iIndex].ToString());
}
protected override void OnDrawItem(System.Windows.Forms.DrawItemEventArgs e)
{
string txt;
if ((e.Index < 0))
{
if (this.Items.Count > 0)
this.SelectedItem = this.Items[0];
txt = this.Text;
}
else
{
txt = this.Items[e.Index].ToString();
}
Rectangle colorRect = new Rectangle((e.Bounds.X + 1), (e.Bounds.Y + 2), (ItemHeight - 2), (ItemHeight - 4));
Rectangle LRect = e.Bounds;
LRect.X = (LRect.X + colorRect.Width);
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
e.Graphics.DrawString(txt, e.Font, new SolidBrush(e.ForeColor), new Rectangle(LRect.X + 1, LRect.Y, LRect.Width, LRect.Height), sf);
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
e.Graphics.FillRectangle(new SolidBrush(this.mHighlightColor), e.Bounds);
}
else
{
e.Graphics.FillRectangle(new SolidBrush(e.BackColor), e.Bounds);
}
e.Graphics.FillRectangle(new SolidBrush(Color.FromName(txt)), colorRect);
e.Graphics.DrawString(txt, e.Font, new SolidBrush(e.ForeColor), new Rectangle(LRect.X + 1, LRect.Y, LRect.Width, LRect.Height), sf);
sf.Dispose();
}
}
}
سورس الأداة : Vb.Net
PHP كود :
' TColorBox v1 by SMP3 | SAFMEHDI
' My Blog : DelphiNews.WordPress.Com
' Note : you can (use,modify,edit) this free tool in your project without any conditions .. :)
'
' ---> Open Your Source ... Open Your Mind
Imports System.ComponentModel
Public Class TColorBox
Inherits ComboBox
Public Sub New()
MyBase.New()
'Owner Draw = True
Me.DrawMode = DrawMode.OwnerDrawVariable
Me.DropDownStyle = ComboBoxStyle.DropDownList
EnumColors() ' Get List of all Colors
IIf(Items.Count > 0, SelectedItem = Me.Items(0), False)
End Sub
Enum _ColorsTypes
FromDefaultColors 'System.Drawing.Color
FromKnownColor ' MS Color
FromSystemColors ' System Colors
FromItems ' From Items
End Enum
Private mColorsTypes As _ColorsTypes = _ColorsTypes.FromDefaultColors
Private mHighlightColor As Color = SystemColors.Highlight ' Default Color Highlight
Public Property ColorsTypes() As _ColorsTypes
Get
Return mColorsTypes
End Get
Set(ByVal value As _ColorsTypes)
mColorsTypes = value
EnumColors()
Invalidate() ' Redraw
End Set
End Property
Public Property HighlightColor() As Color
Get
Return mHighlightColor
End Get
Set(ByVal value As Color)
mHighlightColor = value
End Set
End Property
Private Sub EnumColors()
Dim pAllColor() As System.Reflection.PropertyInfo
Dim pColor As System.Reflection.PropertyInfo
Items.Clear()
Select Case mColorsTypes
Case _ColorsTypes.FromDefaultColors
pAllColor = GetType(Color).GetProperties(Reflection.BindingFlags.Static Or Reflection.BindingFlags.Public)
For Each pColor In pAllColor
Items.Add(pColor.Name)
Next
Case _ColorsTypes.FromSystemColors
pAllColor = GetType(SystemColors).GetProperties(Reflection.BindingFlags.Static Or Reflection.BindingFlags.Public)
For Each pColor In pAllColor
Items.Add(pColor.Name)
Next
Case _ColorsTypes.FromKnownColor
Dim KnownColorNames As String() = [Enum].GetNames(GetType(KnownColor))
Items.AddRange(KnownColorNames)
Case _ColorsTypes.FromItems
End Select
End Sub
<Browsable(False)> Public ReadOnly Property SelectedColor() As Color
Get
Return Color.FromName(Me.SelectedItem.ToString)
End Get
End Property
<Browsable(False)> Public ReadOnly Property itemColor(ByVal index As Integer) As Color
Get
Return Color.FromName(Me.Items(index).ToString)
End Get
End Property
Protected Overrides Sub OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs)
'MyBase.OnDrawItem(e)
Dim txt As String
If e.Index < 0 Then
If Items.Count > 0 Then
Me.SelectedItem = Me.Items(0)
End If
txt = Me.Text
Else
txt = Items(e.Index).ToString
End If
Dim colorRect As Rectangle = New Rectangle(e.Bounds.X + 1, e.Bounds.Y + 2, ItemHeight - 2, ItemHeight - 4)
Dim LRect As Rectangle = (e.Bounds)
LRect.X += colorRect.Width
Dim sf As New StringFormat
sf.LineAlignment = StringAlignment.Center ' center Text in Rectangle (ColoRect)
' Draw Colors Names
e.Graphics.DrawString(txt, e.Font, New SolidBrush(e.ForeColor), New Rectangle(LRect.X + 1, LRect.Y, LRect.Width, LRect.Height), sf)
' Check if user select color ..
If CBool(e.State And DrawItemState.Selected) Then
e.Graphics.FillRectangle(New SolidBrush(Me.mHighlightColor), e.Bounds)
Else
e.Graphics.FillRectangle(New SolidBrush(e.BackColor), e.Bounds)
End If
e.Graphics.FillRectangle(New SolidBrush(Color.FromName(txt)), colorRect)
e.Graphics.DrawString(txt, e.Font, New SolidBrush(e.ForeColor), New Rectangle(LRect.X + 1, LRect.Y, LRect.Width, LRect.Height), sf)
sf.Dispose() ' free sf
End Sub
End Class