跳轉到內容

Gambas/顏色

來自華夏公益教科書

返回 Gambas

可用於指定顏色的基本顏色常量

[編輯 | 編輯原始碼]
十六進位制值 顏色
&H0 黑色
&HFF 紅色
&HFF00 綠色
&HFFFF 黃色
&HFF0000 藍色
&HFF00FF 洋紅色
&HFFFF00 青色
&HFFFFFF 白色

RGB 顏色程式

[編輯 | 編輯原始碼]

此程式向您展示 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() 部分

華夏公益教科書