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

ウェブエディタの作成 U

上下左右の入れ替え等

 上下表示のチェックボックスにチェックを入れるとエディタとブラウザが上下に配置され、チェックをはずすとエディタとブラウザが左右(起動時の状態)に表示されるようにする。また、エディタとブラウザもウィンドウいっぱいの大きさ(半分ずつ)になるように設定する。

 チェックボックスは、Valueプロパティで値を調べる。チェックされていれば1、チェックされていなければ0、無効であれば2という値になる。

 左右に配置する場合のエディタとブラウザの位置と大きさは次図のようになる。

 オブジェクトDir1、RichTB、WBrowserのTopプロパティは同じにする。

     RichTB.Top = Dir1.Top
     WBrowser.Top = Dir1.Top


 RichTBはDir1の右隣に間隔を空けて配置するので、RichTBのLeftはDir1のLeftにWidthを加算し、さらに間隔分(80)を加算した値になる。

RichTB.Left = Dir1.Left + Dir1.Width + 間隔

 同じように、WBrowserはRichTBの右隣に間隔を空けて配置するのでWBrowserのLeftはRichTBのLeftにWidthと間隔分を加算した値になる。

WBrowser.Left = RichTB.Left + RichTB.Width + 間隔

 RichTBとWBrowserの横幅は、フォーム全体の幅(Form1.ScaleWidth)からRichTBのLeftを減算し、さらに間隔分を減算する。その大きさ(A)にRichTBとWBrowserを同じ大きさ(横幅)で配置するので、2で割る。

RichTB.Width = (Form1.ScaleWidth - RichTB.Left - 間隔) / 2
WBrowser.Width = (Form1.ScaleWidth - RichTB.Left - 間隔) / 2

 RichTBとWBrowserの高さは、フォーム全体の高さからRichTBのTopを減算した値である。

RichTB.Height = Form1.ScaleHeight - RichTB.Top
WBrowser.Height = Form1.ScaleHeight - RichTB.Top

 上下に配置する場合のエディタとブラウザの位置と大きさについては、プログラムリストを参照のこと。

 プログラムは、サブプロシージャ Redisplay として作成する。

・プログラムリスト

Private Sub Redisplay()
    Dim space As Integer

    'リッチテキストとブラウザオブジェクトの再配置
    space = 80    'コントロールの間隔
    If chkDisplay.Value = 1 Then    'ON上下表示
        With RichTB
            .Left = Dir1.Left + Dir1.Width + space
            .Top = Dir1.Top
            .Width = Form1.ScaleWidth - .Left
            .Height = (Form1.ScaleHeight - .Top - space) / 2
        End With
        With WBrowser
            .Left = Dir1.Left + Dir1.Width + space
            .Top = RichTB.Top + RichTB.Height + space
            .Width = RichTB.Width
            .Height = RichTB.Height
        End With
    ElseIf chkDisplay.Value = 0 Then    'OFF左右表示
        With RichTB
            .Left = Dir1.Left + Dir1.Width + space
            .Top = Dir1.Top
            .Width = (Form1.ScaleWidth - .Left - space) / 2
            .Height = Form1.ScaleHeight - .Top
        End With
        With WBrowser
            .Left = RichTB.Left + RichTB.Width + space
            .Top = Dir1.Top
            .Width = RichTB.Width
            .Height = RichTB.Height
        End With
    End If
End Sub

 プロパティの設定には、With命令を使用している。このプロシージャRedisplayはチェックボタン(chkDisplay)がクリックされたときに呼び出すことになる。

Private Sub chkDisplay_Click()
    Redisplay
End Sub

 実行して、チェックボックスをクリックすると、チェック有りで上下に表示、チェック無しで左右に表示される。


ウィンドウサイズの制限

 ウィンドウの左側に配置したテキスト(txtFilename)、ドライブ(Drive1)、ディレクトリ(Dir1)、ファイル(File1)、コンボ(Combo1)の各オブジェクトは位置、大きさを固定にしているので、最初のウィンドウの大きさより小さくなると見えなくなる部分ができてしまう。ここでは、ウィンドウの大きさを初期状態(Height = 8760、Width = 12000)より小さくならないようにするプログラムを考える。
 ウィンドウ(Form)の大きさを変更するとResizeイベントが発生し、Form_Resizeプロシージャが呼び出される。このプロシージャでウィンドウの大きさを調べ、初期状態より小さくなったときに初期状態に戻す。ウィンドウの初期状態の大きさは定数として(General) (Declarations)で宣言しておくことにする。

・プログラムリスト

Const WinHeight = 8760    'ウィンドウ最小高さ
Const WinWidth = 12000    'ウィンドウ最小幅

Private Sub Form_Resize()
    'ウインドウ最小サイズ設定
    If Form1.Height < WinHeight Then
        Form1.Height = WinHeight    '初期状態に再設定
    End If
    If Form1.Width < WinWidth Then
        Form1.Width = WinWidth    '初期状態に再設定
    End If
    Redisplay        'エディタとブラウザの再配置呼出し
End Sub

 二つのIf文で現在のウィンドウの大きさ(Form1.HeightとForm1.Width)と初期状態の大きさ(WinHeightとWinWidth)を比較して現在のウィンドウの大きさの方が小さければ、初期状態の大きさに設定する。
 ウィンドウの大きさの設定が終わった後で、先に作成したエディタとブラウザの配置と大きさを設定している Redisplay プロシージャを呼び出している。

 実行して、ウィンドウのサイズを変更してみよう。最初の大きさ以下には小さくならず、大きくするとウィンドウサイズに合わせてエディタとブラウザの大きさも変わる。


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

 

 

inserted by FC2 system