VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2004/09/02(Thu) 10:27
投稿者
URL
タイトルDLLでグリッド操作

いつもお世話になっています。
最近、業務でよくMSHFlexGridを使うのでGridに表示させる部分を一般化し、
Functionにしたのですが、これをクラスに書き込んでDLLにしたいんですが、
どうも上手くいきません。
というより、クラスからフォーム上のMSHFlexGridの参照の仕方が全く分かりません。
色々調べたんですが、結局分かりませんでした。
なにかアドバイスをいただけないでしょうか?
下にGridのFunctionをのせます。

'Grid表示関数
Private Function setGrid(dynOra As OraDynaset)
    Dim RowCount As Integer '行数カウンタ
    Dim i As Integer        '汎用カウンタ
    
    With MSHFlexGrid1
        .Refresh
        .Redraw = False
    
        .Rows = dynOra.RecordCount + 1      '行数セット
        .Cols = dynOra.Fields.Count + 1     '列数セット
        .FixedRows = 1                      '固定行
        .FixedCols = 1                      '固定列
        
        .Row = 0
        .RowHeight(0) = 350  '行幅
        .ColWidth(0) = 300   '列幅
        '各列幅の定義
        For i = 1 To .Cols - 1
            .ColWidth(i) = 1200
        Next
        '列名の代入
        For i = 1 To .Cols - 1
            .Col = i
            .TextMatrix(0, i) = dynOra.FieldName(i - 1)
            .CellAlignment = flexAlignCenterCenter
        Next
        '行番号の設定
        .Col = 0
        For RowCount = 1 To .Rows - 1
            .RowHeight(RowCount) = 300
            .Row = RowCount
            .Text = RowCount               '行番号を表示
        Next
        
        'レコードの終端までループ
        '各値のセット
        RowCount = 1
        Do Until dynOra.EOF = True
            For i = 1 To .Cols - 1
                If IsNull(dynOra.Fields(i - 1).Value) = False Then
                    .TextMatrix(RowCount, i) = dynOra.Fields(i - 1).Value
                Else
                    .TextMatrix(RowCount, i) = ""
                End If
            Next
            RowCount = RowCount + 1
            dynOra.MoveNext
        Loop
        
        'グリッドスタイル
        .AllowBigSelection = True
        .FillStyle = flexFillRepeat
        
        'インデックスのフォント設定
        .Row = 0
        .Col = 0
        .RowSel = .FixedRows - 1
        .ColSel = .Cols - 1
        .CellFontBold = True

        .AllowBigSelection = True
        .FillStyle = flexFillSingle
        .Redraw = True

    End With
End Function


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -