[BlueLeaf1336]> PROGRAM> Natural Born Junk>

WEBセーフカラー配列の作成

historyTOP

2002/11/01:作成

memoTOP

色選択ツールを作ろうと思った時などに使用する。

TDrawGrid.OnDrawCellで表示しようとする場合は、横一列には普通しないだろうから、現在のセルの位置(何行目何列目という情報)から元の1次元配列のインデックスを求める必要がある。これは多分次のような関数になる。

function GetSafeColorIndex(AGrid: TDrawGrid): integer;
begin
    Result := (AGrid.ColCount * AGrid.Row + AGrid.Col);
end;
...試してない。

codeTOP

(*
    =================================================
    WEBセーフカラー配列作成
    =================================================
*)
type
    TSafeColors = array[0..215] of string[7];

function SetSafeColors: TSafeColors;
var
    i, j, k, index: integer;
    HexParts: array[0..5] of string;
begin
    //セーフカラー部品文字列設定
    HexParts[0] := '00';
    HexParts[1] := '33';
    HexParts[2] := '66';
    HexParts[3] := '99';
    HexParts[4] := 'CC';
    HexParts[5] := 'FF';
    index       := 0;
    //セーフカラー文字列作成
    for i := 0 to 5 do
    begin
        for j := 0 to 5 do
        begin
            for k := 0 to 5 do
            begin
                Result[Index] := ('#' + HexParts[i] + HexParts[j] + HexParts[k]);
                Inc(Index);
            end;
        end;
    end;
end;

(*
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    テスト
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++
*)
procedure TForm1.Button1Click(Sender: TObject);
var
    i: integer;
    SafeColors: TSafeColors;
begin
    SafeColors := SetSafeColors;
    for i := 0 to 215 do
    begin
        ShowResult(SafeColors[i]);
    end;
end;

EOFTOP