全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1381
推到 Plurk!
推到 Facebook!

有 64 種顏色如何以漸層方式排列?

答題得分者是:richtop
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-23 10:14:16 IP:202.39.xxx.xxx 未訂閱
小弟在 Form1 上放了 64 個 TPanel 其 Name 屬性分別為 Panel1 ~ Panel64 小弟用如下的方式在這些 TPanel 上顯示 64 種不同的顏色 請問一下大家, 有沒辦法將這些顏色以漸層的方式排列?
function GetColor(AColorByte: Byte): TColor;
var
  r,g,b: Byte;
begin
  r := 0;
  if (AColorByte and $01 <> $01) and (AColorByte and $02 <> $02) then r := 0;
  if (AColorByte and $01 = $01) and (AColorByte and $02 <> $02) then r := 127;
  if (AColorByte and $01 <> $01) and (AColorByte and $02 = $02) then r := 191;
  if (AColorByte and $01 = $01) and (AColorByte and $02 = $02) then r := 255;
  g := 0;
  if (AColorByte and $04 <> $04) and (AColorByte and $08 <> $08) then g := 0;
  if (AColorByte and $04 = $04) and (AColorByte and $08 <> $08) then g := 127;
  if (AColorByte and $04 <> $04) and (AColorByte and $08 = $08) then g := 191;
  if (AColorByte and $04 = $04) and (AColorByte and $08 = $08) then g := 255;
  b := 0;
  if (AColorByte and $10 <> $10) and (AColorByte and $20 <> $20) then b := 0;
  if (AColorByte and $10 = $10) and (AColorByte and $20 <> $20) then b := 127;
  if (AColorByte and $10 <> $10) and (AColorByte and $20 = $20) then b := 191;
  if (AColorByte and $10 = $10) and (AColorByte and $20 = $20) then b := 255;      Result := RGB(r, g, b);
end;    procedure TForm1.FormCreate(Sender: TObject);
const
  RGB_COLOR_CAPTION = '%d: (%d, %d, %d)';
var
  i: integer;
  r,g,b: Byte;
  pnl: TPanel;
begin
  for i := 1 to 64 do
  begin
    pnl := FindComponent('Panel'   IntToStr(i)) as TPanel;
    pnl.OnClick := PanelClick;
    pnl.Color := GetColor(i-1);        r := GetRValue(pnl.Color);
    g := GetGValue(pnl.Color);
    b := GetBValue(pnl.Color);
    pnl.Caption := Format(RGB_COLOR_CAPTION, [i, r, g, b]);
  end;
  Panel1.Font.Color := clWhite;
--
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-23 18:37:13 IP:211.76.xxx.xxx 未訂閱
hagar 您好:    覺得這問題很有趣!    我嘗試用顏色對應的灰階值來排序,似乎有點樣子,不知對您有沒有幫助? 程式如下連結,您參考一下囉! < href="http://delphi.ktop.com.tw/loadfile.php?TOPICID=21145354&CC=472906">http://delphi.ktop.com.tw/loadfile.php?TOPICID=21145354&CC=472906 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
系統時間:2024-06-08 13:09:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!