テキスト広告:Amazon Primeday

日曜日, 5月 18, 2008

[VB→C#]My.Computer.FileSystem関連

▼質問
「My.Computer.FileSystem」関連の処理をVBからC#に移植しようと思うんだが・・・。

うまくいかないんだ。

▼回答
「My.Computer.FileSystem」を「Microsoft.VisualBasic.FileIO」に変換すれば問題ないよ。

名前空間のインポートに「Microsoft.VisualBasic.FileIO」を宣言すると次のエラーになる。

「エラー 1 'FileSystem' は、'Microsoft.VisualBasic.FileIO.FileSystem' と 'Microsoft.VisualBasic.FileSystem'' 間のあいまいな参照です。 ファイルパス」

「'Microsoft.VisualBasic」と「Microsoft.VisualBasic.FileIO」は共存できないようだ。

そこで考えた。

名前空間のインポートに「using FileIO = Microsoft.VisualBasic.FileIO;」を宣言して、

「My.Computer」を「FileIO」に変換すれば問題ないことがわかった。

土曜日, 5月 17, 2008

[VB→C#]INIファイル関連(WIN32API)

▼質問
INIファイル関連の関数宣言を教えてくれ!

▼回答
サンプルを示しておくから参考にしてくれ!!

[VB]
' INIファイルから値を取得する関数の宣言
Public Declare Auto Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileString" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As StringBuilder, _
ByVal nSize As UInt32, _
ByVal lpFileName As String) As UInt32

' INIファイルから値を取得する関数の宣言
Public Declare Auto Function GetPrivateProfileInt Lib "kernel32" _
Alias "GetPrivateProfileInt" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal intDefault As Integer, _
ByVal lpFileName As String) As UInt32

' INIファイルに値を設定する関数の宣言
Public Declare Auto Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileString" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As String, _
ByVal lpFileName As String) As UInt32

[C#]
// INIファイルから値を取得する関数の宣言
[DllImport("kernel32.dll")]
public static extern uint GetPrivateProfileString(
string lpAppName,
string lpKeyName,
string lpDefault,
StringBuilder lpReturnedString,
uint nSize,
string lpFileName);

// INIファイルから値を取得する関数の宣言
[DllImport("kernel32.dll")]
public static extern uint GetPrivateProfileInt(
string lpAppName,
string lpKeyName,
int nDefault,
string lpFileName);

// INIファイルに値を設定する関数の宣言
[DllImport("kernel32.dll")]
public static extern uint WritePrivateProfileString(
string lpAppName,
string lpKeyName,
string lpString,
string lpFileName);

[C#]VBからの移植でのエラー

▼質問
VBからC#に移植しているんだけど。

次のコードで、次のエラーが出るんだ。どういう意味なのかな?

DataSet objDataSet = new DataSet("objDataSet");
 ~ 略 ~
DataRow objRow = objDataSetOra.Tables(0).Rows(0);

「エラー 1 'System.Data.DataSet.Tables' は 'プロパティ' ですが、'メソッド' のように使用されています。 ファイルパス」

▼回答
VBとC#で配列の文法が違うから気を付けた方がいいよ。

DataRow objRow = objDataSetOra.Tables[0].Rows[0];


▼質問
次のエラーが出るんだ。

「エラー 1 'objRow' は '変数' ですが、'メソッド' のように使用されています。 ファイルパス」

▼回答
これも、上記の回答と同じだよ。

[C#]型変換(キャスト)

▼質問
次のプログラムで

public string cnvString(double data) {
return data.ToString();
}

下記のエラーになるんだ。どうしてなんだ?

「エラー 1 メソッド グループ 'ToString' を非デリゲート型 'string' に変換することはできません。このメソッドを呼び出すことはできません。 ファイルパス」

次の様にするとエラーは出なくなるんだ。何か違う気がする・・・。

public string cnvString(double data) {
string s = data.ToString();
return s;
}

▼回答
VBやC言語で言う共通関数(値を渡して結果を返すだけの処理)のようなものならstaticを
付けてあげれば問題ないと思うよ。

public static string cnvString(double data) {
return data.ToString();
}

静的変数・静的メソッドはクラスごとに唯一つの実体を持ち、すべてのオブジェクトの間で共有される。
また、数学関数や数学定数などのインスタンスを持つ必要のない関数を定義する場合にも使う。

クラス内に処理実態とデータが含む場合はstaticにしてはいけない。

■参考サイト
静的変数・静的メソッド(C# によるプログラミング入門)
http://ufcpp.net/study/csharp/oo_static.html

金曜日, 5月 16, 2008

[C#]Oracle参照エラー

▼質問
下記のエラーが出るんだ。どうしたらいいんだ?!
「エラー 1 型または名前空間名 'Oracle' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 ファイルパス」

▼回答
ソリューション エクスプローラの参照設定から次の手順で設定するんだ。

参照設定を選択し、プロパティウィンドウ(右クリック)から「参照の追加」を選択するんだ。

「.NET」タブからコンポーネント名「Oracle.DataAccess」を選んで「OK」をクリックして終了だ。

ODP.NETのインストールとバージョンに注意してくれ!

■参考サイト
Oracle 散策
http://www.okisoft.co.jp/esc/db/ora04.html

[C#]デファイン or インクルード

▼質問
デファイン(#define)を定義するインクルードファイル(ヘッダファイル)ってないの?

▼回答
C#には、拡張子が(.h)のようなヘッダファイル(インクルード)は存在しないよ。

■参考サイト
C# 言語と .NET Framework の概要
http://msdn.microsoft.com/ja-jp/library/z1zx9t92(VS.80).aspx

[C#]C#の日付型

▼質問
C#にDate型はないの?

▼回答
Date型はないけど日付型を扱うにはSystem名前空間にあるDateTime型を使うんだ。

使用方法には、次に上げる2通りがあるぞ!

プログラムの最初で「using System;」と宣言する方法と、

プログラムの中で「System.DateTime」とする方法だ。

前者の方が、プログラムがスッキリして一般的に使われる

方法だと思うから、その方法をお勧めするよ!

木曜日, 5月 15, 2008

[C#]VBからC#への移植方法

■VBからC#への移植方法
1.「’(シングルコーテイション)」を置換で「//(ダブルスラッシュ)」にする。

2.「Imports」を「using」に変換し、行の最後に「;(セミコロン)」を付ける。

3.「Public」を「public」に「Private」を「private」に置換する。

4.「Public Class クラス名 ~ End Class」を「public class クラス名 { ~ }」にする。

5.「Public Enum 列挙名 ~ End Enum」を「public enum 列挙名 { ~ }」にし、列挙子の間を
「,(カンマ)」で区切る。

6.「Public Structure 構造体名 ~ End Structure」を「public struct 構造体名 { ~ }」にし、
メンバの型を次の様に変換する。
  Public 変数名 As Integer → public int 変数名;
  Public 変数名 As String → public string 変数名;
  Public 変数名 As Long → public long 変数名;
  Public 変数名 As Double → public double 変数名;
  Public 変数名 As Boolean → public bool 変数名;
  Public 変数名 As Date → public System.DateTime 変数名;

7.コンストラクタ「Sub New() ~ End Sub」を「public クラス名() { ~ }」にする。

8.下記の様に置換する。
  「New」 → 「new」
  「True」 → 「true」
  「False」 → 「false」
  「.ToString」 → 「.ToString()」
  「Try ~ Catch ex As Exception ~ Finally ~ End Try」 → 
「try { ~ } catch (Exception ex) {  ~ } finally { ~ }」
  ※注意:using Systemが必要!
  「GoTo」 → 「goto」
  「Nothing」 → 「null」

9.「IsDBNull」関数を下記に置き換え実装する。
public static bool IsDBNull(object data)
{
これよくなかった!
if (data == null) return true;
return false;
return Microsoft.VisualBasic.Information.IsDBNull(data);
}

10.「Format」関数を下記に置き換え実装する。
public static string Format(object data, string format)
{
これ間違えだった!
return String.Format(format, data);
return Microsoft.VisualBasic.Strings.Format(data, format);
}

11.配列宣言の型を次の様に変換する。
  「Dim val(2) As Integer」 → 「int[] val = new int[2];」

12.「Select Case 」文を次の様に変換する。

Select Case 変数名
Case 値
Case Else
End Select

switch ( 変数名 ) {
case 値:
default:
}

13.「For」文を次の様に変換する。

For i as Integer = 0 To 10
Next i

for ( int i = 0 ; i <= 10 ; i++ ) { } 14.「& _」を使った文字列の連結を「+」に変換する。 15.下記に示すものを削除し、プログラムの処理を変更する。   「On Error GoTo」 16.「Err.Number」を「Microsoft.VisualBasic.Information.Err().Number」とするか次の様にする。    ソリューション エクスプローラの参照設定から「参照の追加」より「Microsoft.VisualBasic」を    追加し、「Err.Number」を「Information.Err().Number」とする。    このやり方ではエラーの取得は駄目みたい(>_<)

17.定数宣言を次の様に変更する。
  「Public Const 定数名 As Integer = 0」 → 「public const int 定数名 = 0」

18.VB定数を次の様に変更する。
  「Chr(13)」 or 「vbCr」 → 「\r」 : キャリッジリターン文字
  「Chr(10)」 or 「vbLf」 → 「\n」 : ラインフィード文字
  「Chr(13) + Chr(10)」 or 「vbCrLf」 or 「vbNewLine」 → 「\r\n」 : キャリッジリターンとラインフィードの組合せ
  「Chr(9)」 or 「vbTab」 → 「\t」 : タブ文字
  「Chr(0)」 or 「vbNullChar」 or 「vbNullString」 → 「\0」 : 値 0 を持つ文字
  「Chr(8)」 or 「vbBack」 → 「\b」 : バックスペース文字

土曜日, 5月 10, 2008

[VB2005]コントロールを名前で探す

▼質問
コントロールを名前で探すにはどうしたらいいんだい。

▼回答
次の様にすれば直接コントロールを操作できるようになるよ。

CType(Me.Controls.Find(名前, True)(0), コントロール名)

■参考サイト
VB.NET - フォーム内のコントロールを名前で探して取得する
http://jeanne.wankuma.com/tips/vb.net/form/findcontrol.html

金曜日, 5月 09, 2008

[VB2005]別ウィンドウ(別EXE)の最前面表示

▼質問
別ウィンドウ(別EXE)で起動したアプリを最前面に表示したいんだ。どうしたらよいのか?

▼回答
次のAPIを使えばできるぞ!

API名は『BringWindowToTop』だ。

次にサンプルを示しておくから参考にしてくれ!!

'ウィンドウを最前面に表示する関数宣言
Declare Function BringWindowToTop Lib "user32.dll" Alias "BringWindowToTop" (ByVal hWnd As Int32) As Int32

'最上位フォーム設定解除
Me.TopMost = False

'プロセスを起動する.
prs = Process.Start(起動EXEパス, パラメータ)

'最上位フォーム設定
BringWindowToTop(CInt(prs.MainWindowHandle))

prs.WaitForExit()
prs.Dispose()
prs.Close()

'最上位フォーム設定
Me.TopMost = True

木曜日, 5月 01, 2008

[VBA]QueryTable

▼質問
Oracleからのデータバックアップで次のプログラムで実行しているんだが・・・。

「Selection.QueryTable.Refresh BackgroundQuery:=False」

どうやってODBCやSQL文の設定をしているかわからん!?

教えてくれ~!!

▼回答
一度「外部データの取込み」をやると、その時の操作が設定してしまい

変更ができないみたいなんだ。

だから、汎用的にやるには次のプログラムがお勧めだよ!?

With Worksheets(シート名).QueryTables.Add(Connection:="ODBC;DSN=データソース名;UID=ユーザ名;PWD=パスワード名", Destination:=Worksheets(シート名).Range("A1"))
.Sql = Array("SELECT * FROM テーブル名")
.Refresh
End With

水曜日, 4月 30, 2008

[VC2005]GetGmtTmとGetLocalTmでエラー

▼質問
GetGmtTmとGetLocalTmメソッドで次のエラーが出る。
「Debug Assertion Failed! Program: パスZZZZ.exe File: パス\atltime.inl Line: 999
Expression: _atl_condVal
For information on how your program can cause an assertion failure. see the Visual C++
documentation on asserts.
(Press Retry to debug the application)」

▼回答
インクルードやデファインを次の様にすれば上手く行くよ!
#pragma warning(disable: 4996)
#define _SECURE_ATL 0
#include
#include
#include
#include
#include
#define ATLTIME_INLINE inline
#include
#include
#define ATLCOMTIME_INLINE inline
#include

■参考サイト
A problem with ATL::CTime.GetLocalTm() - MSDN Forums
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=126206&SiteID=1
ワーニングを抑制する方法 - #pragma warning - VC++
http://www.ailight.jp/blog/sha256/archive/2005/05/04/6684.aspx

木曜日, 4月 24, 2008

[C言語]Run-Time Check Failure #2エラー

▼質問
次のエラーが発生する。
「Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted」

▼回答
「xxx」を使っているサイズをチェックすることぐらいかな?!

多分、格納しようとしているサイズが「xxx」より大きいじゃないのかな!?

金曜日, 4月 18, 2008

[VB2005]OO4Oの警告

▼質問
次の警告が出る。どうして?
警告 1 '_IOraBindVariable.GetPersistentPointer' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 2 プロパティ get アクセス操作子 'ResultCode' (有効な戻り値の型のない型 'OracleInProcServer._IExDispatch' 上) がタイプ ライブラリ インポータで見つかりました。インポータはこのプロパティをメソッドとしてインポートすることを試行します。
警告 3 '_IOraBlob._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 4 'OraBlob._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 5 '_IOraClob._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 6 'OraClob._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 7 '_IOraBfile._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 8 'OraBfile._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。

▼回答
Oracle InProc Server 5.0 Type Library (oip10.tlb) を追加してリビルドすると1度目はでないようだ。

2度目のリビルドで発生することがわかったが・・・。何の解決にもならない。。。

ん~わからない。

毎回、リビルドするたびに削除してリビルドして追加してリビルドするのか!?

めんどくせー!!

もう少し調べて次の様にすることにした。

プロジェクトプロパティ→コンパイル→「ビルド イベント」ボタンのビルド前と後で次のイベントを
実行するようにした。

ビルド前に実行するコマンド ライン
Copy $(ProjectDir)*.dll $(ProjectDir)\obj\Release
Copy $(ProjectDir)*.cache $(ProjectDir)\obj\Release

ビルド後に実行するコマンド ライン
Copy $(ProjectDir)obj\Release\*.dll $(ProjectDir)
Copy $(ProjectDir)obj\Release\*.cache $(ProjectDir)

完璧じゃないけど・・・少しはましになったかも?!

無視してもいい警告だからリビルドしてビルドするだけども良いかも?!

それにしても、よくわからん!!

火曜日, 4月 15, 2008

[C#]Windowアプリケーションの基本機能

▼質問
フォームに「閉じる」ボタンを貼ったんだけど、「閉じる」ボタンがクリックした時の

イベント処理の方法がわからないんだけど。

VBだとMeなんだけど...

▼回答
C#は、thisを使って次の様に記述するんだ。

this.Close();

■参考サイト
[C#][VB]フォームを閉じる
http://jeanne.wankuma.com/tips/form/close.html

月曜日, 4月 14, 2008

[VB2005]PrintDocumentコントロール

▼質問
印刷の前に出るメッセージの表示名はどうやったら変更できるの?

▼回答
DocumentNameプロパティを変更すれば表示が変わるよ。
Me.PrintDocument1.DocumentName = "表示名"

[VB2005]文字サイズチェック

▼質問
データベースに文字列を格納する時に下記のエラーが出るんだ。

ORA-12899: 列"○×△□"."テーブル名"."フィールド名"の値が大きすぎます(実際: 256、最大: 255)

文字列のサイズをチェックをして、格納サイズより大きい時は

格納サイズより大きい部分は削除したいんだ。どうしたらできるんだい。

文字数のチェックはMaxLengthプロパティに値を入れておけば

自動的にやってくれてはいるんだけど...

▼回答
こんなのできたよ。

Public Shared Function ChkByte(ByVal strValue As String, ByVal byteSize As Integer) As Boolean
If (System.Text.Encoding.GetEncoding("Shift-JIS").GetByteCount(strValue) <= byteSize) Then ChkByte = True
End Function

Public Shared Function GetByte(ByVal strValue As String, ByVal byteSize As Integer) As String
Dim hEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift-JIS")
Dim bBytes As Byte() = hEncoding.GetBytes(strValue)
Dim count As Long
For i As Long = Len(strValue) To 1 Step -1
If (ChkByte(Mid(strValue, 1, Len(strValue) - count), byteSize)) Then
Return System.Text.Encoding.GetEncoding("Shift-JIS").GetString(bBytes, 0, Len(strValue) - count)
End If
count = count + 1
Next i
Return strValue
End Function

■参考サイト
VB.NET 全角・半角でのLEFT関数 - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=24347&forum=7&start=8

木曜日, 4月 03, 2008

[VB2005]閉じるボタンのキャンセル

▼質問
閉じるボタン(「×」ボタン)をクリックされても閉じないようにするにはどうしたらいいの?

▼回答
FormClosingイベントで次のコードを記述すればできるらしいよ。(^^;

If (e.CloseReason = CloseReason.UserClosing) Then
e.Cancel = True
End If


■参考サイト
ウィンドウの閉じるボタンを押しても終了させない
http://katamari.jp/index.php?dev%2Fvb%2F%A5%A6%A5%A3%A5%F3%A5%C9%A5%A6%A4%CE%CA%C4%A4%B8%A4%EB%A5%DC%A5%BF%A5%F3%A4%F2%B2%A1%A4%B7%A4%C6%A4%E2%BD%AA%CE%BB%A4%B5%A4%BB%A4%CA%A4%A4

日曜日, 3月 30, 2008

[VB2005]ReadOnlyコンボボックス

Public Class useComboBox
Inherits System.Windows.Forms.ComboBox
Private blnReadOnly As Boolean = False
Private iSelectedIndex As Integer = Me.SelectedIndex
'-------------------------------------------------------------------------------
'
' コンストラクタ処理
'
Public Sub New()

End Sub

'-------------------------------------------------------------------------------
'
' デストラクタ処理
'
Protected Overrides Sub Finalize()
MyBase.Finalize()
End Sub

'-------------------------------------------------------------------------------
'
' 概要 : 読み取り専用かどうかを示す値を取得または設定します。
'
' 戻り値 : 読み取り専用の場合は true。それ以外の場合は false。既定値は false です。
'
Public Property ControlReadOnly() As Boolean
Get
Return blnReadOnly
End Get
Set(ByVal value As Boolean)
Me.Enabled = True
If (value) Then
Me.BackColor = SystemColors.Control
iSelectedIndex = Me.SelectedIndex
Else
Me.BackColor = SystemColors.Window
End If
blnReadOnly = value
End Set
End Property

Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
If (blnReadOnly) Then Me.Parent.Focus() : Return
MyBase.OnMouseUp(e)
End Sub

Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
If (blnReadOnly) Then Me.Parent.Focus() : Return
MyBase.OnMouseDown(e)
End Sub

Protected Overrides Sub OnMouseClick(ByVal e As System.Windows.Forms.MouseEventArgs)
If (blnReadOnly) Then Me.Parent.Focus() : Return
MyBase.OnMouseClick(e)
End Sub

Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
If (blnReadOnly) Then Me.Parent.Focus() : Return
MyBase.OnGotFocus(e)
End Sub

End Class

[VB.NET or VB2005]カラー名称

▼質問
システムのカラー名称を指定したいんだけどどうやったらできるの?

▼回答
次の様に指定すればできるよ。
Me.BackColor = SystemColors.Window

■参考サイト
Control.BackColor プロパティ (System.Windows.Forms)
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.backcolor(VS.80).aspx


システムカラー名称 ARGB値
ActiveBorder FFD4D0C8
ActiveCaption FFC0C0C0
ActiveCaptionText FF0E1010
AppWorkspace FF808080
Control FFE0DFE3
ControlDark FF9D9DA1
ControlDarkDark FF716F64
ControlLight FFF1EFE2
ControlLightLight FFFFFFFF
ControlText FF000000
Desktop FF585768
GrayText FFACA899
Highlight FFB2B4BF
HighlightText FF000000
HotTrack FF648BCB
InactiveBorder FFD4D0C8
InactiveCaption FFFFFFFF
InactiveCaptionText FFA2A1A1
Info FFFFFFE1
InfoText FF000000
Menu FFFFFFFF
MenuText FF000000
ScrollBar FFD4D0C8
Window FFFFFFFF
WindowFrame FF000000
WindowText FF000000
Transparent FFFFFF
AliceBlue FFF0F8FF
AntiqueWhite FFFAEBD7
Aqua FF00FFFF
Aquamarine FF7FFFD4
Azure FFF0FFFF
Beige FFF5F5DC
Bisque FFFFE4C4
Black FF000000
BlanchedAlmond FFFFEBCD
Blue FF0000FF
BlueViolet FF8A2BE2
Brown FFA52A2A
BurlyWood FFDEB887
CadetBlue FF5F9EA0
Chartreuse FF7FFF00
Chocolate FFD2691E
Coral FFFF7F50
CornflowerBlue FF6495ED
Cornsilk FFFFF8DC
Crimson FFDC143C
Cyan FF00FFFF
DarkBlue FF00008B
DarkCyan FF008B8B
DarkGoldenrod FFB8860B
DarkGray FFA9A9A9
DarkGreen FF006400
DarkKhaki FFBDB76B
DarkMagenta FF8B008B
DarkOliveGreen FF556B2F
DarkOrange FFFF8C00
DarkOrchid FF9932CC
DarkRed FF8B0000
DarkSalmon FFE9967A
DarkSeaGreen FF8FBC8B
DarkSlateBlue FF483D8B
DarkSlateGray FF2F4F4F
DarkTurquoise FF00CED1
DarkViolet FF9400D3
DeepPink FFFF1493
DeepSkyBlue FF00BFFF
DimGray FF696969
DodgerBlue FF1E90FF
Firebrick FFB22222
FloralWhite FFFFFAF0
ForestGreen FF228B22
Fuchsia FFFF00FF
Gainsboro FFDCDCDC
GhostWhite FFF8F8FF
Gold FFFFD700
Goldenrod FFDAA520
Gray FF808080
Green FF008000
GreenYellow FFADFF2F
Honeydew FFF0FFF0
HotPink FFFF69B4
IndianRed FFCD5C5C
Indigo FF4B0082
Ivory FFFFFFF0
Khaki FFF0E68C
Lavender FFE6E6FA
LavenderBlush FFFFF0F5
LawnGreen FF7CFC00
LemonChiffon FFFFFACD
LightBlue FFADD8E6
LightCoral FFF08080
LightCyan FFE0FFFF
LightGoldenrodYellow FFFAFAD2
LightGray FFD3D3D3
LightGreen FF90EE90
LightPink FFFFB6C1
LightSalmon FFFFA07A
LightSeaGreen FF20B2AA
LightSkyBlue FF87CEFA
LightSlateGray FF778899
LightSteelBlue FFB0C4DE
LightYellow FFFFFFE0
Lime FF00FF00
LimeGreen FF32CD32
Linen FFFAF0E6
Magenta FFFF00FF
Maroon FF800000
MediumAquamarine FF66CDAA
MediumBlue FF0000CD
MediumOrchid FFBA55D3
MediumPurple FF9370DB
MediumSeaGreen FF3CB371
MediumSlateBlue FF7B68EE
MediumSpringGreen FF00FA9A
MediumTurquoise FF48D1CC
MediumVioletRed FFC71585
MidnightBlue FF191970
MintCream FFF5FFFA
MistyRose FFFFE4E1
Moccasin FFFFE4B5
NavajoWhite FFFFDEAD
Navy FF000080
OldLace FFFDF5E6
Olive FF808000
OliveDrab FF6B8E23
Orange FFFFA500
OrangeRed FFFF4500
Orchid FFDA70D6
PaleGoldenrod FFEEE8AA
PaleGreen FF98FB98
PaleTurquoise FFAFEEEE
PaleVioletRed FFDB7093
PapayaWhip FFFFEFD5
PeachPuff FFFFDAB9
Peru FFCD853F
Pink FFFFC0CB
Plum FFDDA0DD
PowderBlue FFB0E0E6
Purple FF800080
Red FFFF0000
RosyBrown FFBC8F8F
RoyalBlue FF4169E1
SaddleBrown FF8B4513
Salmon FFFA8072
SandyBrown FFF4A460
SeaGreen FF2E8B57
SeaShell FFFFF5EE
Sienna FFA0522D
Silver FFC0C0C0
SkyBlue FF87CEEB
SlateBlue FF6A5ACD
SlateGray FF708090
Snow FFFFFAFA
SpringGreen FF00FF7F
SteelBlue FF4682B4
Tan FFD2B48C
Teal FF008080
Thistle FFD8BFD8
Tomato FFFF6347
Turquoise FF40E0D0
Violet FFEE82EE
Wheat FFF5DEB3
White FFFFFFFF
WhiteSmoke FFF5F5F5
Yellow FFFFFF00
YellowGreen FF9ACD32