Gambas/顏色
外觀
< Gambas
返回 Gambas
| 十六進位制值 | 顏色 |
|---|---|
| &H0 | 黑色 |
| &HFF | 紅色 |
| &HFF00 | 綠色 |
| &HFFFF | 黃色 |
| &HFF0000 | 藍色 |
| &HFF00FF | 洋紅色 |
| &HFFFF00 | 青色 |
| &HFFFFFF | 白色 |
此程式向您展示 RGB 顏色。您可以將每種顏色的值從 0 更改為 255,然後在單擊命令按鈕時,您將看到特殊的混合顏色。
使用以下程式碼,可以將 3 個十進位制數字中的一個十六進位制數字構建為字串
sHEX = Hex$(r,2) & Hex$(g,2) & Hex$(b,2) sHEX = "&H" & sHEX & "&"
要執行該程式,您需要 1 個命令按鈕、1 個繪圖區域、3 個文字框和 3 個文字標籤。
它看起來怎麼樣?請在此處檢視(德語)http://www.madeasy.de/7/prgfarbergb.htm
程式碼
PUBLIC SUB Button1_Click() DIM sHex AS String DIM r AS Integer DIM g AS Integer DIM b AS Integer IF Textbox1.text = "" THEN Textbox1.Text = 0 IF Textbox2.text = "" THEN Textbox2.Text = 0 IF Textbox3.text = "" THEN Textbox3.Text = 0 r = Val(Textbox1.Text) g = Val(Textbox2.Text) b = Val(Textbox3.Text) sHEX = Hex$(r,2) & Hex$(g,2) & Hex$(b,2) sHEX = "&H" & sHEX & "&" DrawingArea1.BackColor = Val(sHEX) END
當您需要程式的背景時,可以使用這個簡單的日落顏色程式。
要執行該程式,您需要在窗體上建立一個繪圖區域。當您使用以下方案時,可以選擇不同的顏色
藍色 RGB(0, 0, i) 紅色 RGB(i, 0, 0) 綠色 RGB(0, i, 0) 黃色 RGB(i, i, 0) 紫色 RGB(i, 0, i) 青色 RGB(0, i, i) 灰色 RGB(i, i, i)
它看起來怎麼樣?
程式碼
PUBLIC SUB Form_Open() DIM r AS Integer DIM g AS Integer DIM b AS Integer DIM h AS Integer DIM he AS Integer DIM sHex AS String r = 0 g = 0 FOR b = 0 TO 255 sHEX = Hex$(r,2) & Hex$(g,2) & Hex$(b,2) sHEX = "&H" & sHEX & "&" Draw.begin(DrawingArea1) Draw.Forecolor= Val(sHEX) Draw.LineWidth=5 he = DrawingArea1.Height h = he * b \ 255 Draw.Line(0, h, DrawingArea1.Width, h) Draw.End NEXT END
新增以下程式碼並更改窗體的邊框為可調整大小,可以使該程式更完善。
PUBLIC SUB Form_Resize() DrawingArea1.Move(0, 0, ME.ClientWidth, ME.ClientHeight) END
以下程式使用滑動條顯示自然顏色光譜。
您需要一個繪圖區域和一個滑動條作為控制元件。
' Gambas class file PUBLIC SUB Form_Open() drawingarea1.BackColor = &HC2020C& scrollbar1.minvalue = 1 scrollbar1.maxvalue = 1120 END PUBLIC SUB ScrollBar1_Change() drawingarea1.BackColor = Val(spektrum(scrollbar1.value)) END PUBLIC FUNCTION spektrum(ss AS Integer) AS String x AS Integer sHEX AS String s AS Integer r AS Integer g AS Integer b AS Integer s = 0 FOR x = 1 TO 255 'red to yellow r = 255 b = 0 sHEX = Hex$(r,2) & Hex$(x,2) & Hex$(b,2) sHEX = "&H" & sHEX & "&" s = s + 1 'PRINT s IF s = ss THEN RETURN sHEX NEXT 's = 255 FOR x = 255 TO 1 STEP -1 'from yellow to green g = 255 b = 0 sHEX = Hex$(x,2) & Hex$(g,2) & Hex$(b,2) sHEX = "&H" & sHEX & "&" s = s + 1 'PRINT s IF s = ss THEN RETURN sHEX NEXT 's = 510 FOR x = 1 TO 255 'from green to cyan r = 0 g = 255 sHEX = Hex$(r,2) & Hex$(g,2) & Hex$(x,2) sHEX = "&H" & sHEX & "&" s = s + 1 'PRINT s IF s = ss THEN RETURN sHEX NEXT 's = 765 FOR x = 255 TO 1 STEP - 1 'from cyan to blue r = 0 b = 255 sHEX = Hex$(r,2) & Hex$(x,2) & Hex$(b,2) sHEX = "&H" & sHEX & "&" s = s + 1 'PRINT s IF s = ss THEN RETURN sHEX NEXT 's = 1020 b = 255 FOR x = 1 TO 100 'from blue to violett g = 0 sHEX = Hex$(x,2) & Hex$(g,2) & Hex$(b,2) sHEX = "&H" & sHEX & "&" b = b - 2 s = s + 1 'PRINT s 'PRINT shex IF s = ss THEN RETURN sHEX NEXT 's = 1120 END
也許您可以更改該程式,以便在文字框中顯示顏色值。1. 從工具箱中取出一個文字框。2. 新增以下程式碼
textbox1.text = spektrum(scrollbar1.value)
在 PUBLIC SUB ScrollBar1_Change() 部分