Страница: 1 |
Страница: 1 |
Вопрос: Преобразование типов
Добавлено: 12.02.07 20:36
Автор вопроса: -АлександР- | Web-сайт:
Как преобразовать тип brush в Color и наоборот... и их же в pen...
Я уже замучался...
CType не рулит
"cannot"
здесь Prog.ColorList - это массив колоров
Class ProgSettings
'массив цветов, находящихся на данный момент в списке
Public ColorList(11) As Color
'этот саб восстанавливает цвета по умолчанию
Public Sub InitColorList()
ColorList(0) = Color.SlateGray
ColorList(1) = Color.Black
ColorList(2) = Color.Blue
ColorList(3) = Color.Red
ColorList(4) = Color.Green
ColorList(5) = Color.Yellow
ColorList(6) = Color.YellowGreen
ColorList(7) = Color.Brown
ColorList(8) = Color.Teal
ColorList(9) = Color.Silver
ColorList(10) = Color.Gold
ColorList(11) = Color.White
End Sub
End Class
End Module
Заранее спасибо!
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 12.02.07 21:17
Я мог бы написать код... но не буду.. Вместо этого дам несколько подсказок указывающих на твои ошибки, думаю тебе полезней будет самому разобраться..
1. Класс Brush, к типу которого ты пытаешься привести объявлен как MustInherit.. Отсюда делай вывод..
2. Brush - есть объект.. Где ты его создаешь? Ты про ключевое слово New что нибудь слышал?
3. Приведение к типу (CType) в данном контексте совершенно не уместно..
Это все есть основы ООП.. о которых я говорил ранее.. так что повторю еще раз.. учи(читай) мат.часть! )
Когда разберешься с этими ошибками и поймешь что к чему, то с Pen вопросов возникнуть не должно..
P/S/ Если уже совсем невмоготу станет - свисти, объясню..
Номер ответа: 2
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 13.02.07 12:50
Вот кусок кода из одного моего старого проекта.. как его юзать, я думаю, разберешься.. Там же найдешь ответ на свой вопрос..
'// Events
Event ColorSchemaChaged As EventHandler
'// Property's
Property BackColor() As Color
Property ForeColor() As Color
Property BorderColor() As Color
'// Sub's
Sub Save()
Sub Load()
End Interface
Public Enum EColorSchema
BackColor = 0
ForeColor = 1
BorderColor = 2
End Enum
Public Class ColorSchema
Implements IColorSchema
Public Event ColorSchemaChanged As EventHandler Implements IColorSchema.ColorSchemaChaged
Private _defaultColors() As Color
Public Sub New()
'// Initialize array of colors
ReDim _defaultColors(System.Enum.GetNames(GetType(EColorSchema)).Length - 1)
'// Initialize shcema
_defaultColors(EColorSchema.BackColor) = Color.Black
_defaultColors(EColorSchema.ForeColor) = Color.Maroon
_defaultColors(EColorSchema.BorderColor) = Color.DarkOrange
End Sub
Public Property BackColor() As Color Implements IColorSchema.BackColor
Get
Return _defaultColors(EColorSchema.BackColor)
End Get
Set(ByVal value As Color)
SetProperty(EColorSchema.BackColor, value)
End Set
End Property
Public Property ForeColor() As Color Implements IColorSchema.ForeColor
Get
Return _defaultColors(EColorSchema.ForeColor)
End Get
Set(ByVal value As Color)
SetProperty(EColorSchema.ForeColor, value)
End Set
End Property
Public Property BorderColor() As Color Implements IColorSchema.BorderColor
Get
Return _defaultColors(EColorSchema.BorderColor)
End Get
Set(ByVal value As Color)
SetProperty(EColorSchema.BorderColor, value)
End Set
End Property
Public ReadOnly Property Brush(ByVal _property As EColorSchema) As SolidBrush
Get
Return New SolidBrush(_defaultColors(_property))
End Get
End Property
Public Sub Load() Implements IColorSchema.Load
'// load schema from file
End Sub
Public Sub Save() Implements IColorSchema.Save
'// save schema to file
End Sub
Protected Overridable Sub OnColorSchemaChanged()
RaiseEvent ColorSchemaChanged(Me, EventArgs.Empty)
End Sub
Private Sub SetProperty(ByVal _property As EColorSchema, _
ByVal value As Color)
If _defaultColors(_property) <> value Then
_defaultColors(_property) = value
OnColorSchemaChanged()
End If
End Sub
End Class
Номер ответа: 3
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #3
Добавлено: 13.02.07 19:50
Спасибо, EROS
снова ты меня выручил))
ларчик так просто открывался...
Номер ответа: 4
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #4
Добавлено: 13.02.07 22:11
ну вот видишь как все просто.. ))) А ты над CType глумился.. причем в извращенной форме..
Номер ответа: 5
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #5
Добавлено: 13.02.07 22:42