初めまして、サイと申します。
開発環境はvisual basic6.0です。
RGBの値をそれぞれ3つのスクロールバーで指定し、その結果を10進数でテキストボックス1〜3に、16進数に変換した結果をテキストボックス4に表示させ、フォームのバックカラーを変えるというプログラムを作っています。
16進数の0〜Fを00、01...0E、0Fというように表示させたいのですが、上手く出来ません。
現在コードは以下のようにしています。
Private Sub HScroll1_Change()
Text1.Text = HScroll1.Value
form1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
aa1$ = Hex$(HScroll1.Value)
aa2$ = Hex$(HScroll2.Value)
aa3$ = Hex$(HScroll3.Value)
Text4.Text = aa1$ + aa2$ + aa3$
If aa1$ = "0" Then Text4.Text = "00" + aa2$ + aa3$
If aa1$ = "1" Then Text4.Text = "01" + aa2$ + aa3$
・
・
If aa2$ = "0" Then Text4.Text = aa1$ + "00" + aa3$
If aa2$ = "1" Then Text4.Text = aa1$ + "01" + aa3$
・
・
If aa3$ = "E" Then Text4.Text = aa1$ + aa2$ + "0E"
If aa3$ = "F" Then Text4.Text = aa1$ + aa2$ + "0F"
aa1$ = Hex$(HScroll1.Value)以下のコードを他の2つのスクロールバーにも記述しています。
これだと、1つのスクロールバーを動かした場合には01などとちゃんと表示されるのですが、別のスクロールバーを動かすと0が消滅してしまいます。
どうすれば上手く0が表示されるのか教えていただけないでしょうか?
もしくはもっと効率良く表示させる方法があればご教授下さい。
お願いします。
type tLong
n as long
end type
type tBytes
n(1 to 4) as byte
end type
function ColToHexStr(byval col as long) as string
dim vLong as tLong
dim vBytes as tBytes
dim v as variant
vLong.n=col
lset vBytes=vLong
for each v in vBytes.n
ColToHexStr=right$("0"+hex$(v),2)+ColToHexStr
next
end function
ゎはは。
aa1$ = Right$("00" & Hex$(HScroll1.Value), 2)
aa2$ = Right$("00" & Hex$(HScroll2.Value), 2)
aa3$ = Right$("00" & Hex$(HScroll3.Value), ")
Text4.Text = aa1$ & aa2$ & aa3$
有難うございました!
無事に出来るようになりました!!
ツイート | ![]() |