どぼん!のプログラミング道掲示板

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 発言ランク 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■23969 / inTopicNo.1)  システムカラーを回転したい。
  
□投稿者/ レオ♪ 一般人(5回)-(2009/02/10(Tue) 05:52:11)
    環境/言語:[VisualBasic2008] 
    分類:[その他] 

    'ARGBを使う方法はわかるんですけど。
    'システムカラーで色を回転させたいんです。
    '変数iを利用して回転させる例プログラムがあれば・・・
    'ほかの僕チンレベルの初心者にも役にたつかも。です
    'ので、よろしくお願いします。
    Option Strict On
    'VisualBasic2008
    Public Class Form1
    Private testButtons() As System.Windows.Forms.Button

    Private Sub Form1_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load

    Me.testButtons = New System.Windows.Forms.Button(9) {}
    Me.SuspendLayout()
    Dim i, c, d As Integer
    For i = 1 To Me.testButtons.Length - 1
    Me.testButtons(i) = New System.Windows.Forms.Button
    Me.testButtons(i).Name = i.ToString()
    Me.testButtons(i).Text = i.ToString()
    '______↓ココが質問のとこ↓よろしく☆_______
    Me.testButtons(i).BackColor = Color.Aqua
    '___________________________________________
    Me.testButtons(i).Size = New Size(30, 30)
    Me.testButtons(i).Location = New Point(c * 35, 10 + d)
    c = c + 1
    If c = 3 Then c = 0 : d = d + 35
    AddHandler Me.testButtons(i).Click, _
    AddressOf Me.testButtons_click
    Next i
    Me.Controls.AddRange(Me.testButtons)
    Me.ResumeLayout(False)
    End Sub
    Private Sub testButtons_click(ByVal sender As Object, _
    ByVal e As EventArgs)
    Dim number As Integer
    number = CInt(CType(sender, System.Windows.Forms.Button).Text)
    MsgBox(number)
    End Sub
    End Class

引用返信 [メール受信/OFF] 削除キー/
■23972 / inTopicNo.2)  Re[1]: システムカラーを回転したい。
□投稿者/ 魔界の仮面弁士 軍団(107回)-(2009/02/10(Tue) 09:40:00)
    No23969に返信(レオ♪さんの記事)
    > システムカラーを回転したい。
    
    “色を回転させる”という言葉の意味がわかりません。どういう意味でしょう?
    
    回転と聞いて、最初に下記を想像しましたが……どうもそういう意図ではなさそうですし。
    http://techbank.jp/Community/blogs/hiro/archive/2008/11/12/3201.aspx
    
    
    
    > 'ARGBを使う方法はわかるんですけど。
    > 'システムカラーで色を回転させたいんです。
    >
    >   '______↓ココが質問のとこ↓よろしく☆_______
    >   Me.testButtons(i).BackColor = Color.Aqua
    
    「やりたい事」の断片は書かれていますが、肝心の「質問内容」が書かれていませんよ。
    
    しかも、「システムカラー」という割には、SystemColors.〜 ではなく、
    Color.〜 が使われていますし、何を質問されているのかが伝わってきません。
    
    
    で。質問の意図がよく分かりませんが、提示されたコードから推測すると、
    変数 i に応じて、ボタンの色を変えたいと言うことでしょうか。
    しかも、RGB 関数や Color.FromArgb メソッド等を使用せずに?
    
    だとしたら、「i = 0」〜「i = 9」の 10 状態に対して、具体的には
    それぞれ何色を割り当てていきたいのでしょうか?
    
    
    とりあえず、"RGB" や "ARGB" という名称を含まないメソッドのみをかき集めて、
     Me.testButtons(i).BackColor = ColorTranslator.FromOle(QBColor(i))
    と書く事はできますが……あまり意味のあるコードでは無いですよね。
    
    
    
    > 僕チンレベルの初心者
    
    それって、どのくらいのレベルを指しているのでしょう?
    
    
    
    > Private Sub testButtons_Click(ByVal sender As Object, _
    >                               ByVal e As EventArgs)
    >     Dim number As Integer
    >     number = CInt(CType(sender, System.Windows.Forms.Button).Text)
    >     MsgBox(number)
    > End Sub
    
    2008 をお使いという事なので、"Relaxed Delegate Conversion" にすると楽かも。
    http://msdn.microsoft.com/ja-jp/library/bb531336.aspx
    
    Private Sub testButtons_Click(ByVal sender As Button, ByVal e As EventArgs)
       Dim number As Integer = CInt(sender.Text)
       MsgBox(number)
    End Sub

引用返信 [メール受信/OFF] 削除キー/
■23976 / inTopicNo.3)  Re[2]: システムカラーを回転したい。
□投稿者/ Tram 一般人(1回)-(2009/02/10(Tue) 12:03:51)
    色を回転…虹のようなグラデーションの色を取得したいという事でしょうか?
    HSI色空間で色相だけを変化させていくような感じですかね。
    ColorはRGBですのでHSIとの変換が必要になりますが、
    変換については以下が参考になるかと思います。
    http://smdn.invisiblefulmoon.net/ikimasshoy/dotnettips/tips033.html
    とりあえず彩度と明度をMAXにしておいて、
    色相を0〜359の範囲で変えていけば
    虹のようなグラデーションが出来ますよ。
引用返信 [メール受信/OFF] 削除キー/
■23977 / inTopicNo.4)  Re[3]: システムカラーを回転したい。
□投稿者/ レオ♪ 一般人(6回)-(2009/02/10(Tue) 12:52:23)
    No23976に返信(Tramさんの記事)
    > 色を回転…虹のようなグラデーションの色を取得したいという事でしょうか?
    > HSI色空間で色相だけを変化させていくような感じですかね。
    > ColorはRGBですのでHSIとの変換が必要になりますが、
    > 変換については以下が参考になるかと思います。
    > http://smdn.invisiblefulmoon.net/ikimasshoy/dotnettips/tips033.html
    > とりあえず彩度と明度をMAXにしておいて、
    > 色相を0〜359の範囲で変えていけば
    > 虹のようなグラデーションが出来ますよ。
    魔界さん>VBヘルプには「色を回転する」の項目はあります。
    ARGBを使って虹色のように回転できます。
    システムカラーは標準装備の色ですよ。
    カラーNoみたいなもんがあれば、楽かと思ったんで。
    自己解決は時間をかければできるけど。
    プロのコードを見たかったんで質問したんですよ。

引用返信 [メール受信/OFF] 削除キー/
■23978 / inTopicNo.5)  Re[4]: システムカラーを回転したい。
□投稿者/ レオ♪ 一般人(7回)-(2009/02/10(Tue) 13:36:18)
    No23977に返信(レオ♪さんの記事)
    > ■No23976に返信(Tramさんの記事)
    >>色を回転…虹のようなグラデーションの色を取得したいという事でしょうか?
    >>HSI色空間で色相だけを変化させていくような感じですかね。
    >>ColorはRGBですのでHSIとの変換が必要になりますが、
    >>変換については以下が参考になるかと思います。
    >>http://smdn.invisiblefulmoon.net/ikimasshoy/dotnettips/tips033.html
    >>とりあえず彩度と明度をMAXにしておいて、
    >>色相を0〜359の範囲で変えていけば
    >>虹のようなグラデーションが出来ますよ。
    > 魔界さん>VBヘルプには「色を回転する」の項目はあります。
    > システムカラーは標準装備の色ですよ。
    > カラーNoみたいなもんがあれば、楽かと思ったんで。
    > 自己解決は時間をかければできるけど。
    > プロのコードを見たかったんで質問したんですよ。
    > 魔界さん>ボタンがクルクル回るのも面白いですね。
    プロと初心者の差を実感しました^^
    色の件は、システムカラー。
    たとえば、Greenの定義色になにか、数字とかあるんでしょうか?
    結構、難しいのかな
引用返信 [メール受信/OFF] 削除キー/
■23979 / inTopicNo.6)  Re[5]: システムカラーを回転したい。
□投稿者/ 魔界の仮面弁士 軍団(109回)-(2009/02/10(Tue) 15:47:14)
    No23977に返信(レオ♪さんの記事)
    > VBヘルプには「色を回転する」の項目はあります。
    それは下記の事でしょうか。
    http://msdn.microsoft.com/ja-jp/library/9ya02xa6.aspx

    違うのであれば、どこの事を指しているのか教えてください。

    上記の事だとしたら、それを先の
    >>> '______↓ココが質問のとこ↓よろしく☆_______
    >>> Me.testButtons(i).BackColor = Color.Aqua
    にどのように反映させたいのかによって、回答が変わってくるかと。


    > システムカラーは標準装備の色ですよ。
    それは、『Color.IsSystemColor プロパティが True を返す色』の事でしょうか。
    違うとしたら、ここでいう「標準装備」とは、具体的にはどういう意味でしょうか?
    (何に装備されている色のことですか?)


    > カラーNoみたいなもんがあれば、楽かと思ったんで。
    レオ♪さんが連想している「カラーNoみたいなもん」が、具体的には
    どのような物であるのか解説されていないので回答に困りますが、
    段階的な色変化を望むなら No23976 Tram さんの回答が参考になるかと。

    あるいはカラーNo というのが、256色ビットマップでいうところの「カラーパレット」の意味であるならば、ColorPalette クラスが相当するかと思います。

    QuickBasic Color の色番号であれば、QBColor メソッド(と ConsoleColor 列挙体)が相当します。

    Color.Red や SystemColors.MenuHighlight などのように、定義済みの色の一覧という意図ならば、KnownColor を使う事ができるでしょう。



    ' ComboBox1, ComboBox2, TextBox1, TextBox2 を用意
    Public Class Form1
     Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
      ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
      ComboBox2.DropDownStyle = ComboBoxStyle.DropDownList
      For c As ConsoleColor = 0 To 15
       ComboBox1.Items.Add(c)
      Next
      For c As KnownColor = 1 To 174
       ComboBox2.Items.Add(c)
      Next
      ComboBox1.SelectedIndex = 0
      ComboBox2.SelectedIndex = 0
     End Sub

     Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectedIndexChanged
      If ComboBox1.SelectedIndex = -1 Then
       TextBox1.BackColor = Color.Empty
      Else
       Dim c As ConsoleColor = CType(ComboBox1.SelectedItem, ConsoleColor)
       TextBox1.BackColor = ColorTranslator.FromOle(QBColor(c))

      End If
     End Sub

     Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox2.SelectedIndexChanged
      If ComboBox2.SelectedIndex = -1 Then
       TextBox2.BackColor = Color.Empty
      Else
       Dim c As KnownColor = CType(ComboBox2.SelectedItem, ConsoleColor)
       If c <> KnownColor.Transparent Then
        TextBox2.BackColor = Color.FromKnownColor(c)
       End If
      End If
     End Sub
    End Class



    > プロのコードを見たかったんで質問したんですよ。
    質問内容が曖昧になっていると、望む回答は得られないかも知れません。
    それに、プロ以外の回答や、コードの無い回答が投稿される事もありますね。
引用返信 [メール受信/OFF] 削除キー/
■23983 / inTopicNo.7)  【注意】言葉遣いに注意してください
□投稿者/ 管理人 大御所(1232回)-(2009/02/11(Wed) 03:42:19)
http://dobon.net/
    レオ♪さんには以前、この掲示板ではタメ口が禁止であるということをお伝えしました。それ以前と比べると確かに言葉使いがましになり、気を使っていただいているのだなと感謝しております。しかし、残念ながら、やはりタメ口に近く、丁寧な言葉遣いには程遠いと判断せざるを得ません。

    言葉遣い以前の問題として、レオ♪さんの書かれた文章を拝読しますと、失礼ながら、日本語が苦手なのかなと想像します。レオ♪さんは、日本語を母国語としていない人なのか、あるいは、だいぶ年齢の低い方なのでしょうか?日本語の苦手な方に丁寧な言葉遣いをしろといっても無茶かもしれませんが、精一杯丁寧な言葉で書いていただければ、その思いが伝わるのではないでしょうか。

    もしこれ以上丁寧な言葉で文章を書けないということであれば、今後は「お気楽掲示板」の方へご投稿されることをお勧めします。(このスレッドは仕方がありませんので、このままの言葉遣いで投稿していただいても結構です。解決していないのに解決済みにして、スレッドを閉じるようなことはしないでください。)

    お気楽掲示板
    http://dobon.qp.land.to/bbs/cbbs.cgi

    また、今回の投稿を拝見しますと、「書き込みのルールについて」をご理解いただいているのだろうかという点も疑問に感じました。「プロのコードを見たかったんで質問したんですよ。」とありますが、これは、「書き込みのルールについて」をご理解いただけているのであれば、違反であるということがお分かりいただけるでしょう。

    もし「書き込みのルールについて」をご理解いただけない(読めない、あるいは、読んでも意味が分からない)のであれば、「お気楽掲示板」へご投稿ください。

    前回、警告なしで厳しい処置をするとお伝えしましたが、レオ♪さんが日本語が苦手な方だったらお気の毒だと考え、今回再び注意させていただきました。これが本当に最後ですので、よろしくお願いいたします。
引用返信 [メール受信/OFF] 削除キー/
■23984 / inTopicNo.8)  Re[7]: 【注意】言葉遣いに注意してください
□投稿者/ レオ♪ 一般人(8回)-(2009/02/11(Wed) 04:39:16)
    No23983に返信(管理人さんの記事)
    > レオ♪さんには以前、この掲示板ではタメ口が禁止であるということをお伝えしました。それ以前と比べると確かに言葉使いがましになり、気を使っていただいているのだなと感謝しております。しかし、残念ながら、やはりタメ口に近く、丁寧な言葉遣いには程遠いと判断せざるを得ません。
    >
    > 言葉遣い以前の問題として、レオ♪さんの書かれた文章を拝読しますと、失礼ながら、日本語が苦手なのかなと想像します。レオ♪さんは、日本語を母国語としていない人なのか、あるいは、だいぶ年齢の低い方なのでしょうか?日本語の苦手な方に丁寧な言葉遣いをしろといっても無茶かもしれませんが、精一杯丁寧な言葉で書いていただければ、その思いが伝わるのではないでしょうか。
    >
    管理さん>丁寧な書き込みは、僕ちんには無理ですね。^^
    え〜っと、ARGBについては、熟知しています。と書きました。
    システムカラーはStringですることにしました^^
    knowkラーは難しんで。
    では。
    > もしこれ以上丁寧な言葉で文章を書けないということであれば、今後は「お気楽掲示板」の方へご投稿されることをお勧めします。(このスレッドは仕方がありませんので、このままの言葉遣いで投稿していただいても結構です。解決していないのに解決済みにして、スレッドを閉じるようなことはしないでください。)
    >
    > お気楽掲示板
    > http://dobon.qp.land.to/bbs/cbbs.cgi
    >
    > また、今回の投稿を拝見しますと、「書き込みのルールについて」をご理解いただいているのだろうかという点も疑問に感じました。「プロのコードを見たかったんで質問したんですよ。」とありますが、これは、「書き込みのルールについて」をご理解いただけているのであれば、違反であるということがお分かりいただけるでしょう。
    >
    > もし「書き込みのルールについて」をご理解いただけない(読めない、あるいは、読んでも意味が分からない)のであれば、「お気楽掲示板」へご投稿ください。
    >
    > 前回、警告なしで厳しい処置をするとお伝えしましたが、レオ♪さんが日本語が苦手な方だったらお気の毒だと考え、今回再び注意させていただきました。これが本当に最後ですので、よろしくお願いいたします。
引用返信 [メール受信/OFF] 削除キー/
■23985 / inTopicNo.9)  じゃあコレが最後の書き込みだね。
□投稿者/ レオ 一般人(4回)-(2009/02/11(Wed) 05:22:16)
    No23984に返信(レオ♪さんの記事)
    > ■No23983に返信(管理人さんの記事)
    >>レオ♪さんには以前、この掲示板ではタメ口が禁止であるということをお伝えしました。それ以前と比べると確かに言葉使いがましになり、気を使っていただいているのだなと感謝しております。しかし、残念ながら、やはりタメ口に近く、丁寧な言葉遣いには程遠いと判断せざるを得ません。
    >>
    >>言葉遣い以前の問題として、レオ♪さんの書かれた文章を拝読しますと、失礼ながら、日本語が苦手なのかなと想像します。レオ♪さんは、日本語を母国語としていない人なのか、あるいは、だいぶ年齢の低い方なのでしょうか?日本語の苦手な方に丁寧な言葉遣いをしろといっても無茶かもしれませんが、精一杯丁寧な言葉で書いていただければ、その思いが伝わるのではないでしょうか。
    >>
    > 管理さん>丁寧な書き込みは、僕ちんには無理ですね。^^
    > え〜っと、ARGBについては、熟知しています。と書きました。
    > システムカラーはStringですることにしました^^
    > knowkラーは難しんで。
    > では。
    >>もしこれ以上丁寧な言葉で文章を書けないということであれば、今後は「お気楽掲示板」の方へご投稿されることをお勧めします。(このスレッドは仕方がありませんので、このままの言葉遣いで投稿していただいても結構です。解決していないのに解決済みにして、スレッドを閉じるようなことはしないでください。)
    >>
    >>お気楽掲示板
    >>http://dobon.qp.land.to/bbs/cbbs.cgi
    >>
    >>また、今回の投稿を拝見しますと、「書き込みのルールについて」をご理解いただいているのだろうかという点も疑問に感じました。「プロのコードを見たかったんで質問したんですよ。」とありますが、これは、「書き込みのルールについて」をご理解いただけているのであれば、違反であるということがお分かりいただけるでしょう。
    >>
    >>もし「書き込みのルールについて」をご理解いただけない(読めない、あるいは、読んでも意味が分からない)のであれば、「お気楽掲示板」へご投稿ください。
    >>
    >>前回、警告なしで厳しい処置をするとお伝えしましたが、レオ♪さんが日本語が苦手な方だったらお気の毒だと考え、今回再び注意させていただきました。これが本当に最後ですので、よろしくお願いいたします。
    ちょっとカッコ悪いコードですけど
    自己解決しました。
    Option Strict On
    'VisualBasic2008
    Public Class Form1
    Private testButtons() As System.Windows.Forms.Button
    Private color_suu As Integer = 9
    Private color_A(color_suu - 1) As Color

    Private Sub Form1_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
    color_A(0) = Color.Red : color_A(1) = Color.Beige : color_A(2) = Color.Aqua
    color_A(3) = Color.DarkGoldenrod : color_A(4) = Color.Blue : color_A(5) = Color.Brown
    color_A(6) = Color.Green : color_A(7) = Color.Pink : color_A(8) = Color.Yellow
    Me.testButtons = New System.Windows.Forms.Button(9) {}
    Me.SuspendLayout()
    Dim i, c, d As Integer
    For i = 1 To Me.testButtons.Length - 1
    Me.testButtons(i) = New System.Windows.Forms.Button
    Me.testButtons(i).Name = i.ToString()
    Me.testButtons(i).Text = i.ToString()
    '______↓ココが質問のとこ↓よろしく☆_______
    Me.testButtons(i).BackColor = color_A(i - 1)
    '___________________________________________
    Me.testButtons(i).Size = New Size(30, 30)
    Me.testButtons(i).Location = New Point(c * 35, 10 + d)
    c = c + 1
    If c = 3 Then c = 0 : d = d + 35
    AddHandler Me.testButtons(i).Click, _
    AddressOf Me.testButtons_click
    Next i
    Me.Controls.AddRange(Me.testButtons)
    Me.ResumeLayout(False)
    End Sub
    Private Sub testButtons_click(ByVal sender As Object, _
    ByVal e As EventArgs)
    Dim number As Integer
    number = CInt(CType(sender, System.Windows.Forms.Button).Text)
    MsgBox(number)
    End Sub
    End Class
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 発言ランク 検索 過去ログ

- Child Tree -