Option Strict Off
Option Explicit On
'------------------------------------ 2023/11/09 ------------------------------------
Friend Class frmDlgModeSet
    Inherits System.Windows.Forms.Form

#Region "宣言"
    Private mMe_gmDlgID As Integer = 0
    Private mNew実行中 As Boolean = True
    Private mLoading As Boolean
    Private mChk基本(8) As CheckBox
    '**************************************************************************************************************************************
    Private WithEvents イベントgAppEventMaker As 五clsEventMaker
    '**************************************************************************************************************************************
#End Region

#Region "zzAppIniFileOp"
    Private Function zzAppIniFileOp(ByVal Load_0_QueryUnload_1_Resize_2_DoIniSave_3 As Long) As Boolean
        '読出し時に　INI ファイルが存在しない場合は　False　を返します。
        If gggAppIniFile Is Nothing Then Return False
        Return gggAppIniFile.aaAppIniFileOp_フォームサイズと位置だけ_共通処理(Load_0_QueryUnload_1_Resize_2_DoIniSave_3, Me, "-" & Me.Text)
    End Function
#End Region

#Region "Form イベント"
    Friend Function Public_DlgID_Set(ByVal rPublicID As Integer) As Integer
        mMe_gmDlgID = rPublicID : Return mMe_gmDlgID
    End Function
    Private Sub frmDlgModeSet_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        mNew実行中 = False
        mLoading = True
        Try
            イベントgAppEventMaker = gAppEventMaker
            Dim MeOwner As Form = frmMain
            Me.Owner = MeOwner
            Me.Icon = MeOwner.Icon
            gggbol = zzSetObj(1)
            gggbol = zCheckBoxsSet_EnabledSet((frmMain.p基本モードのミックスモード))
            If Not zzAppIniFileOp(0) Then gggint = ⅩFormMove(gcoフォームをスクリーン中心に移動, Me) 'INI ファイルが存在しない場合に、このフォームを画面のセンターに表示するコード。
            mLoading = False
            gggbol = イベントgAppEventMaker.MakeEventフォームの表示消去(mMe_gmDlgID, True)
            Me.Show()
        Catch ex As Exception
            Call ⅩMsgBox_OK_情報("frmDlgModeSet_Load()" & gggCR2 & ex.ToString)
        End Try
        mLoading = False
    End Sub
    Private Sub frmDlgModeSet_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        gggbol = イベントgAppEventMaker.MakeEventフォームの表示消去(mMe_gmDlgID, False)
        gggbol = zzSetObj(2)
        gggint = zzAppIniFileOp(2)
        gggint = zzAppIniFileOp(1)
    End Sub
    Private Sub frmDlgModeSet_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
        qqqqq("frmDlgModeSet_Disposed")
        Call frmMain.aaスイスイカード型設定Dlg_Load_1_Disposed_2(2, Nothing)
    End Sub
#End Region

#Region "Controls イベント"
    Private Sub btnすべて選択_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnすべて選択.Click
        If mNew実行中 Then Return
        For a As Integer = 2 To 8
            mChk基本(a).Checked = True
        Next
        Call zzEnabledSet基本()
    End Sub
    Private Sub btn適用_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn適用.Click
        If mNew実行中 Then Return
        Dim Indexs(8) As Integer
        Indexs(0) = 0 : Indexs(1) = 0
        For a As Integer = 2 To 8
            Indexs(a) = IIf(mChk基本(a).Checked, 1, 0)
        Next
        With frmMain
            .p基本モードのミックスモードIDXS(Indexs) = gggint
            gggstr = .p基本モードのミックスモード変更実行()
        End With
        Call zzEnabledSet基本()
    End Sub
    Private Sub btn閉じる_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn閉じる.Click
        Me.Close()
    End Sub
    Private Sub chk基本_2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles chk基本_2.Click, chk基本_3.Click, chk基本_4.Click, chk基本_5.Click, chk基本_6.Click, chk基本_7.Click, chk基本_8.Click
        If mNew実行中 Then Return
        If mLoading Then Return
        Call zzEnabledSet基本()
    End Sub
#End Region

#Region "ローカル　ヘルパー"
    Private Function zzSetObj(ByRef op As Integer) As Boolean
        If op = 1 Then
            mChk基本(2) = chk基本_2 : mChk基本(3) = chk基本_3 : mChk基本(4) = chk基本_4 : mChk基本(5) = chk基本_5
            mChk基本(6) = chk基本_6 : mChk基本(7) = chk基本_7 : mChk基本(8) = chk基本_8
        Else
            mChk基本(2) = Nothing : mChk基本(3) = Nothing : mChk基本(4) = Nothing : mChk基本(5) = Nothing
            mChk基本(6) = Nothing : mChk基本(7) = Nothing : mChk基本(8) = Nothing
        End If
        Return True
    End Function
    Private Function zCheckBoxsSet_EnabledSet(ByVal s As String) As Boolean
        If gmアプリ終了する Then Return False
        If mNew実行中 Then Return False
        If mChk基本(2) Is Nothing Then Return False
        If Len(s) < 8 Then Return False
        For a As Integer = 2 To 8
            mChk基本(a).Checked = (Mid(s, a, 1) = "1")
        Next
        Return zzEnabledSet基本()
    End Function
    Private Function zzEnabledSet基本() As Boolean
        If mNew実行中 Then Return False
        Dim w As String = frmMain.p基本モードのミックスモード
        Dim a, n As Integer, s As String, t As String
        n = 0 : s = "0"
        For a = 2 To 8
            If mChk基本(a).CheckState = 1 Then
                n = n + 1 : t = "1"
            Else
                t = "0"
            End If
            s = s & t
        Next
        btnすべて選択.Enabled = (n < 7)
        btn適用.Enabled = (n > 1) And (w <> s)
        Return True
    End Function
#End Region

#Region "イベント from gAppEventMaker"
    Private Sub イベントgAppEventMaker_p基本モードのミックスモードが変更されました(ByVal r基本モードのミックスモード0XXXXXXX As String) Handles イベントgAppEventMaker.p基本モードのミックスモードが変更されました
        If mChk基本(2) Is Nothing Then Return
        gggbol = zCheckBoxsSet_EnabledSet(r基本モードのミックスモード0XXXXXXX)
    End Sub
    Private Sub イベントgAppEventMaker_フォームの表示と消去(ByVal rフォーム名ID As Integer, ByVal r表示True消去False As Boolean) Handles イベントgAppEventMaker.フォームの表示と消去
        If Me.Visible = False Then Return
        If gmアプリ終了する Then
            'qqqqq("gmアプリ終了する Event_フォームの表示と消去()" + Me.Name)
            Return
        End If
        Dim wRet_rMe_gmDlgIDウインドウを消去しなさい As Boolean = GMCOM_Dlgs他のウインドウの表示_非表示イベントで_rMe_ウインドウを消去しなさい(mMe_gmDlgID, rフォーム名ID, r表示True消去False)
        If wRet_rMe_gmDlgIDウインドウを消去しなさい Then
            Call btn閉じる_Click(Nothing, Nothing)
        End If
    End Sub
#End Region

End Class