Webエディタの作成 VB6
前へ 目次へ 次へ 

ウェブエディタの作成 Y

HTMLタグの文字色を変える

 HTMLタグの文字色の属性を設定する。タグ(tag)は、ブラウザにデータを表示するときの書式などを指定する命令で、"<"と">"ではさまれている。
 次図のようにボタンとコンボをフォームに配置する。

 タグ ボタン(cmdTag)
  (オブジェクト名) … cmdTag、   Caption … タグ、
  Height … 255、   Left … 3960、   Top … 480、   Width … 735

 色設定コンボ ボタン(cmbColor)
  (オブジェクト名) … cmdFile、   Text … 黒、
  Height … 255、   Left … 4680、   Top … 480、   Width … 1095

 文字色を変えるプログラムは「リッチテキスト試作 X キーワードに色を」とほぼ同じである。

・プログラムリスト

 色設定用のコンボ(cmbColor)のリストに色名の設定を追加する。黒から順にリスト番号0, 1, 2, … ,15 が付けられるので、この番号を使ってQBColor関数で色を設定する。リスト番号は、ListIndexプロパティで参照できる。

Private Sub Form_Load()
      … 省略 …
    Combo1.AddItem "*.*"
    '色番号設定
    cmbColor.AddItem "黒"
    cmbColor.AddItem "青"
    cmbColor.AddItem "緑"
    cmbColor.AddItem "水色"
    cmbColor.AddItem "赤"
    cmbColor.AddItem "紫"
    cmbColor.AddItem "黄"
    cmbColor.AddItem "白"
    cmbColor.AddItem "灰色"
    cmbColor.AddItem "明るい青"
    cmbColor.AddItem "明るい緑"
    cmbColor.AddItem "明るい水色"
    cmbColor.AddItem "明るい赤"
    cmbColor.AddItem "明るい紫"
    cmbColor.AddItem "明るい黄"
    cmbColor.AddItem "明るい白"
End Sub

 タグボタンをクリックしたときのプログラムは、次のとおりである。(「リッチテキスト試作 X キーワードに色を」 参照)

Private Sub cmdTag_Click()
    Dim savept As Integer, endpt As Integer

    savept = RichTB.SelStart    '現在のカーソル位置
    RichTB.SelStart = 1        'テキストの先頭から
    Do
        '"<"の位置を検索
        RichTB.SelStart = InStr(RichTB.SelStart, RichTB.Text, "<")
        If RichTB.SelStart = 0 Then    '"<"なし
            Exit Do
        End If
        '">"の位置を検索
        endpt = InStr(RichTB.SelStart, RichTB.Text, ">")
        'RichTBのけた数は0からカウントするので-1する
        RichTB.SelStart = RichTB.SelStart - 1
        '"<"から">"までの文字数
        RichTB.SelLength = endpt - RichTB.SelStart
        '選択範囲を赤色にする
        RichTB.SelColor = QBColor(Val(cmbColor.ListIndex))
        RichTB.SelStart = endpt
    Loop
    RichTB.SelStart = savept    'カーソルを元の位置に移動
    RichTB.SetFocus            'フォーカス設定
End Sub

 キーボードからタグを入力したときのプログラムは、次のとおりである。(「リッチテキスト試作 X キーワードに色を」 参照)

Private Sub RichTB_Change()
    If RichTB.SelStart <> 0 Then
        If Mid(RichTB.Text, RichTB.SelStart, 1) = "<" Then
            With RichTB
                .SelStart = .SelStart - 1
                .SelLength = 1
                .SelColor = QBColor(Val(cmbColor.ListIndex))
                .SelStart = .SelStart + 1
            End With
        ElseIf Mid(RichTB.Text, RichTB.SelStart, 1) = ">" Then
            RichTB.SelColor = QBColor(Val(cmbColor.ListIndex))
        End If
    End If
End Sub

 タグに色を付けた後、別のファイルを読み込むと、タグと同じ色でテキストが読み込まれることがある。そこで、ファイルを読み込む前に、文字色を黒に設定するプログラムを追加する。

Private Sub ReadFile()
    'ファイルをテキストとして読み込む
    RichTB.SelColor = QBColor(0)   '色を黒する
    RichTB.LoadFile File1.Path & "\" & txtFileName.Text, rtfText
    WBrowser.Navigate File1.Path & "\" & txtFileName.Text
End Sub


前へ 目次へ 次へ 
Copyright © 2001 Hiroshi Masuda 

 

 

inserted by FC2 system