⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 框架数据梁柱.frm

📁 钢筋混凝土框架结构设计计算源程序
💻 FRM
📖 第 1 页 / 共 2 页
字号:
Attribute VB_Exposed = False
Option Explicit
DefInt I-N
'Private Sub Form5_GotFocus()
''    当对象获得焦点时产生该事件;获得焦点可以通过诸如 TAB 切换,或单击对象之类的用户动作,或在代码中用 SetFocus 方法改变焦点来实现。
''    语法:Private Sub Form_GotFocus()  or  Private Sub object_GotFocus([index As Integer])
''    通常,GotFocus 事件过程用以指定当控件或窗体首次接收焦点时发生的操作。
'    Call 叠框(Grid1(0), Text1)
'    fg = 0
'End Sub
Sub 叠框(k As Integer)
    Text1(k).Top = Grid1(k).Top + Grid1(k).CellTop
    Text1(k).Left = Grid1(k).Left + Grid1(k).CellLeft
    Text1(k).Width = Grid1(k).CellWidth
    Text1(k).Height = Grid1(k).CellHeight
    Text1(k).Text = Grid1(k).Text
    Text1(k).SetFocus
End Sub
Private Sub Comd1_Click(Index As Integer)
    Dim i As Integer, j As Integer, error1 As Integer
    Dim Msg As String, Style As String, Title As String, Response As String
    For i = 1 To Cengshu
        For j = 1 To Kuashu
            BTable(i, j) = Grid1(0).TextMatrix(i, j)
            BATable(i, j) = Grid1(3).TextMatrix(i, j)
        Next j
    Next i
    For i = 1 To Cengshu
        For j = 1 To Kuashu + 1
            CTable(i, j) = Grid1(1).TextMatrix(i, j)
            CATable(i, j) = Grid1(2).TextMatrix(i, j)
        Next j
    Next i
    For i = 1 To Cengshu
        For j = 1 To Kuashu
            If BTable(i, j) = "" Then error1 = 1
        Next j
    Next i
    For i = 1 To Cengshu
        For j = 1 To Kuashu + 1
            If CTable(i, j) = "" Then error1 = 1
        Next j
    Next i
    If error1 = 1 Then
        Msg = "请输入程序需要的完整梁柱截面数据表!"   ' 定义信息。
        Style = vbOKOnly + vbInformation    ' 定义按钮。
        Title = "系统信息"   ' 定义标题。
        Response = MsgBox(Msg, Style, Title)
    Else
        Call 保存原始数据
        Call EAI的自动生成
        Unload Me
    End If
    error1 = 0
End Sub
Private Sub Comd2_Click(Index As Integer)
Dim i
'    Dim i As Integer, j As Integer, Fn As String
'    Fn = Fname & "梁表"
'    Open Fn For Output As #9
'    For i = 1 To Cengshu
'        For j = 1 To Kuashu
'            Write #9, Grid1(0).TextMatrix(i, j)
'        Next j
'    Next i
'    Close #9
'    Fn = Fname & "柱表"
'    Open Fn For Output As #9
'    For i = 1 To Cengshu
'        For j = 1 To Kuashu + 1
'            Write #9, Grid1(1).TextMatrix(i, j)
'        Next j
'    Next i
'    Close #9
''    Close
'    Fn = Fname & "附加"
'    Open Fn For Output As #9
'    For i = 1 To Cengshu
'        For j = 1 To Kuashu + 1
'            Write #9, Grid1(2).TextMatrix(i, j)
'        Next j
'    Next i
'    Close #9
'    Fn = Fname & "砌体重量"
'    Open Fn For Output As #9
'    For i = 1 To Cengshu
'        For j = 1 To Kuashu
'            Write #9, Grid1(3).TextMatrix(i, j)
'        Next j
'    Next i
'    Close #9
'    Comd2(0).Enabled = False    '通过按钮不可用,让用户知道已保存
    For i = 0 To 3
       Form5.Grid1(i).Clear
    Next i
End Sub
Private Sub Comd3_Click(Index As Integer)
    Call Form_Load
End Sub
Private Sub Form_Load()
    Dim i As Integer, j As Integer
    Dim Fn As String, temp As String, k As Integer
    Me.Width = 3900
    Me.Height = 6000
    Me.Top = 0
    Me.Left = MDIForm1.Width - Me.Width - 200
    On Error GoTo L
    '梁表格制作
    Grid1(0).Cols = Kuashu + 1
    Grid1(0).Rows = Cengshu + 1
    Grid1(0).TextMatrix(0, 0) = "层序\跨序"
    For i = 1 To Kuashu
        Grid1(0).ColAlignment(i) = flexAlignCenterCenter
        Grid1(0).ColWidth(i) = 1200
        Grid1(0).TextMatrix(0, i) = i
    Next i
    '从变量中查找数据,用于在未结束程序时打开该窗体可以看到刚才输入的数据
    For i = 1 To Cengshu
        For j = 1 To Kuashu
            Grid1(0).TextMatrix(i, j) = BTable(i, j)
        Next j
    Next i
    '柱和附加表格制作
    For i = 1 To 2
        Grid1(i).Cols = Kuashu + 2
        Grid1(i).Rows = Cengshu + 1
        Grid1(i).TextMatrix(0, 0) = "层序\轴号"
    Next i
    For i = 1 To Kuashu + 1
        For j = 1 To 2
            Grid1(j).ColWidth(i) = 1200
            Grid1(j).ColAlignment(i) = flexAlignCenterCenter
            Grid1(j).TextMatrix(0, i) = Chr(64 + i)
        Next j
    Next i
    '砌体表格制作
    Grid1(3).Cols = Kuashu + 1
    Grid1(3).Rows = Cengshu + 1
    Grid1(3).TextMatrix(0, 0) = "层序\跨序"
    For i = 1 To Kuashu
        Grid1(3).ColAlignment(i) = flexAlignCenterCenter
        Grid1(3).ColWidth(i) = 1200
        Grid1(3).TextMatrix(0, i) = i
    Next i
    '从变量中查找数据,用于在未结束程序时打开该窗体可以看到刚才输入的数据
    For i = 1 To Cengshu
        For j = 1 To Kuashu
            Grid1(3).TextMatrix(i, j) = BATable(i, j)
        Next j
    Next i
    '标写层数
    For i = 0 To 3
        For j = 1 To Cengshu
            Grid1(i).TextMatrix(j, 0) = Cengshu - j + 1
        Next j
    Next i
     '从变量中查找数据
    For i = 1 To Cengshu
        For j = 1 To Kuashu + 1
            Grid1(1).TextMatrix(i, j) = CTable(i, j)
            Grid1(2).TextMatrix(i, j) = CATable(i, j)
        Next j
    Next i
    For i = 0 To 3
        Grid1(i).ColAlignment(0) = flexAlignCenterCenter
    Next i
    Form5.Text1(2).Visible = True
    Grid1(0).Col = 1
    Grid1(0).Row = 1
    k = SSTab1.Tab
    If 存盘标记 = True Then
        For i = 1 To Cengshu
            For j = 1 To Kuashu
                Grid1(0).TextMatrix(i, j) = BTable(i, j)
            Next j
        Next i
        For i = 1 To Cengshu
            For j = 1 To Kuashu + 1
                Grid1(1).TextMatrix(i, j) = CTable(i, j)
            Next j
        Next i
        For i = 1 To Cengshu
            For j = 1 To Kuashu + 1
                Grid1(2).TextMatrix(i, j) = CATable(i, j)
            Next j
        Next i
        For i = 1 To Cengshu
            For j = 1 To Kuashu
                Grid1(3).TextMatrix(i, j) = BATable(i, j)
            Next j
        Next i
'        Comd2(0).Enabled = False    '通过按钮不可用,让用户知道已保存
    End If
L:
End Sub
Private Sub Grid1_Click(Index As Integer)
    Dim k As Integer
    k = Index
    Grid1(k).Text = Text1(k).Text
End Sub

Private Sub Grid1_RowColChange(Index As Integer)
    Dim k As Integer
    k = Index
    If k = 2 Then Call 叠框(2)
    If k = 3 Then Call 叠框(3)
End Sub

Private Sub SSTab1_Click(PreviousTab As Integer)
    Dim k As Integer
    k = SSTab1.Tab               '通过SSTab的Tab属性来传递Grid1的Index变化
    Grid1(k).Col = 1
    Grid1(k).Row = 1
    If k = 2 Then Call 叠框(2)
    If k = 3 Then Call 叠框(3)
End Sub
Private Sub Text1_Change(Index As Integer)
    Dim k As Integer
    k = Index
    Grid1(k).Text = Text1(k).Text
'    Comd2(0).Enabled = True        '当对表格中数据进行了修改时,提醒用户保存
End Sub
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
    If Index = 2 Then
        Call TextKey(KeyCode, Grid1(2))
    End If
    If Index = 3 Then
        Call TextKey(KeyCode, Grid1(3))
    End If
End Sub
Sub 读入表格文件中数据(k As Integer)
    Dim temp As String, Fn As String, kuashu1 As Integer, i As Integer, j As Integer
    Select Case k
        Case 0
            Fn = Fname & "梁表"
            kuashu1 = Kuashu
        Case 1
            Fn = Fname & "柱表"
            kuashu1 = Kuashu + 1
        Case 2
            Fn = Fname & "附加"
            kuashu1 = Kuashu + 1
        Case 3
            Fn = Fname & "砌体重量"
            kuashu1 = Kuashu
    End Select
    Open Fn For Input As #4
    For i = 1 To Cengshu
        For j = 1 To kuashu1
            Input #1, temp
            Grid1(k).TextMatrix(i, j) = temp
            temp = ""
        Next j
    Next i
    Close #4
End Sub
Sub 从变量中获得数据()
    Dim i As Integer, j As Integer
    For i = 1 To Cengshu
        For j = 1 To Kuashu
            BTable(i, j) = Grid1(0).TextMatrix(i, j)
            BATable(i, j) = Grid1(3).TextMatrix(i, j)
        Next j
    Next i
    For i = 1 To Cengshu
        For j = 1 To Kuashu + 1
            CTable(i, j) = Grid1(1).TextMatrix(i, j)
            CATable(i, j) = Grid1(2).TextMatrix(i, j)
        Next j
    Next i
    Unload Form5
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -