Option Strict Off
Option Explicit On
Imports System.Windows.Forms
'------------------------------------ 2023/11/09 ------------------------------------
Public Class 五clsUrouroPoipoi

#Region "宣言"
    '********************************************************************************
    Private mUser_Uro1_Poi2 As Integer
    '********************************************************************************
    Private WithEvents イベントgAppEventMaker As 五clsEventMaker
    '********************************************************************************
    Private ooRandMode As 五clsRandMode
    '********************************************************************************
    Private WithEvents ooユラユラ As 五clsユラユラ
    Private mMvZm受け左, mMvZm受け上, mMvZm受け幅, mMvZm受け高, mMvZm送り左, mMvZm送り上, mMvZm送り幅, mMvZm送り高 As Integer
    Private mループの最初の呼び出し As Boolean
    '********************************************************************************
    Public WithEvents DlgFileゲーム用 As 四frmDlgPctFilesList
    Public WithEvents 標準サウンド設定Dlg As 四frmDlgSound
    Public WithEvents ウロウロオプション設定Dlg As 四frmDlgOptionUrouro 'const gmDlgウロウロオプション設定Dlg
    Public WithEvents 背景画像ユラユラ設定Dlg As frmDlg背景画像ユラユラ
    '********************************************************************************
    Private m受け元幅, m受け元左, m受け元上, m受け元高 As Single
    Private mゲーム実行中_画像使用モード切替, flgaa_inゲーム_画像使用モード切替 As Boolean
    Public m画像の移動とズーム As Boolean
    '********************************************************************************
    Private mImgウロウロ現在のサイズ As Image = Nothing : Private mImgウロウロ原画のサイズ As Image = Nothing
    '********************************************************************************
    Private Const cAddChkStr四角 As String = "■■■", cAddChkStr星星 As String = "★★★", cAddChkStr米米 As String = "※※※"
    '********************************************************************************
    Private Const cユーザー As String = "ユーザー"
    Private Const cUserCardスケール基数WD As Short = 1000
    Private Const cUserCardスケール基数HT As Short = 1000
    '********************************************************************************
    Private Structure typeカード型
        Dim メニュータイトルDEF As String '   ' Dim capDEF As String 
        Dim メニュータイトル As String '   '    Dim capUSER As String
        Dim 基準比率 As Single
        Dim potsDEF() As POINTAPI
        Dim potsUSER() As POINTAPI
        'Dim メニューに表示 As Boolean '
        'Dim 縦横比率 As Single '
        'Dim 基準の倍数値横 As Single '
        'Dim 基準の倍数値縦 As Single '
        'Dim ポリゴン要素数 As Integer '
        'Dim ポリゴン() As POINTAPI '
    End Structure
    Private mカード型データー基本設定(cカード型Allmax) As typeカード型 '全てのカード型データー  0　から始まり、cカード型Allmax になる。
    '--------------------------------------------------------------------------------
    Private Const 星 As String = "★"
    Private m使用カード群 As String, m使用カード群BKUP As String
    '--------------------------------------------------------------------------------
    Private Const c四角形 As Integer = 0 : Private Const c円形 As Integer = 1 : Private Const c六角形 As Integer = 2 : Private Const cひし形 As Integer = 3 : Private Const c四つ葉形 As Integer = 4
    Private Const cダルマ形 As Integer = 5 : Private Const c十字形 As Integer = 6 : Private Const cダイヤ形 As Integer = 7 : Private Const cハート形 As Integer = 8
    Private Const cUser0形 As Integer = 9 : Private Const cUser1形 As Integer = 10 : Private Const cUser2形 As Integer = 11 : Private Const cUser3形 As Integer = 12
    Private Const cUser4形 As Integer = 13 : Private Const cUser5形 As Integer = 14 : Private Const cUser6形 As Integer = 15 : Private Const cUser7形 As Integer = 16
    '--------------------------------------------------------------------------------
    Public Const cカード型ALLmin As Integer = c四角形  '0
    Public Const cカード型APPmax As Integer = cハート形  '8
    Public Const cカード型USERmin As Integer = cUser0形 '9
    Public Const cカード型Allmax As Integer = cUser7形  '16
    '********************************************************************************
    '2023/04/11 add new    'ズームしながら外へ出ていくカードのビットマップは、少し大きめに、別に作っておいたほうが、拡大時のギザギザが少なくなくなる。
    Private Const cヒットカード移動描画の品質確保の最小サイズ = 150 'pixel
    '********************************************************************************
    '2023/06/06 add new
    Private Const cズームサイズ倍数MAX As Single = 1.5
    '********************************************************************************
    Private Structure POINTSINGLE
        Dim X As Single
        Dim Y As Single
    End Structure
    Private Structure 円弧移動ウロウロ
        '-------------------------------
        Dim 再作成 As Integer '0 = 全て再作成    1 = カードサイズ    2 = bmp のみ フォントと色   4 = カード型の変更   5 = 大中小モード   6 = カードスピード     569 = aaForm_Resize_カードを再作成
        '---------------------------------
        Dim 当り済み As Boolean
        '---------------------------------
        Dim カード型 As Integer
        Dim カード型倍数 As Single
        Dim 大中小倍数 As Single
        Dim 大中小倍数設定済み As Single
        '---------------------------------
        Dim bmp As Integer '2017/09/28 Add  -----  OR Copy + AND Copy　をするための画像
        Dim bmpWD As Integer
        Dim bmpHT As Integer
        Dim RGN本体 As Integer '2017/12/06 Add  -----  マウス入力のヒットをチェックするためのリージョン
        Dim RGN描画 As Integer
        Dim RGN外枠 As Integer
        '---------------------------------
        '---------------------------------
        '2023/06/05 add new
        Dim ズーム倍数MAX As Integer   '0 は使用しない。　ズーム倍数MAX まで行くと 1 に戻る。リングとして使用する。　1 to 100,200,300,,,　各カードのズーム周期により変わる
        Dim ズーム倍数IDX As Integer   '0 は使用しない。　ズーム倍数MAX まで行くと 1 に戻る。リングとして使用する。　1 to 100,200,300,,,　各カードのズーム周期により変わる
        Dim ズーム倍数bmpWD() As Integer       'カードのそれぞれの瞬間のズーム bmpWD
        Dim ズーム倍数bmpHT() As Integer       'カードのそれぞれの瞬間のズーム bmpHT
        Dim ズーム倍数offsetX() As Integer     'カードのそれぞれの瞬間のズーム offsetX
        Dim ズーム倍数offSetY() As Integer     'カードのそれぞれの瞬間のズーム offSetY
        Dim ズームbmp As Integer      '2017/09/28 Add  -----  OR Copy + AND Copy　をするための画像
        Dim ズームbmpWD As Integer
        Dim ズームbmpHT As Integer
        '---------------------------------
        '---------------------------------
        Dim 背景色 As Integer
        Dim 文字色 As Integer
        Dim Brsh枠 As Integer
        Dim 枠幅実寸 As Integer
        '---------------------------------
        Dim ミックス As String
        Dim 文字がな As String
        Dim 文字カナ As String
        Dim 文字漢字 As String
        Dim 文字英字 As String
        Dim ナンバー As String
        Dim 記号 As String
        Dim アイコン As String
        Dim いろイロ As String
        '2023/03/18 add---------------------------------
        Dim 移動IDX As Integer
        Dim 移動ARY() As POINTAPI
        Dim 移動ズーム() As Single
        Dim 移動円カラー As Integer
        '2023/03/18 add---------------------------------
        '2023/04/10 add---------------------------------
        '移動ズームで画像が荒くなる場合のみ、これらのBMPを使用する。
        Dim 移動bmp As Integer  '存在したり、しなかったりするので注意
        Dim 移動bmpWD As Integer
        Dim 移動bmpHT As Integer
        Dim 移動RGN描画 As Integer
        Dim 移動RGN外枠 As Integer
        Dim 移動消えるカードの背景サイズ As Single
        '2023/04/10 add---------------------------------
    End Structure
    Private mmSD(400) As 円弧移動ウロウロ
    Private mmSDIDX As Integer
    Private mmSD描画順番(400) As Integer
    Private mmCurHitSDIDX As Integer = 0
    '---------------------------------
    Private Structure ソレコレData文字
        Dim ミックス As String
        Dim 文字がな As String
        Dim 文字カナ As String
        Dim 文字漢字 As String
        Dim 文字英字 As String
        Dim ナンバー As String
        Dim 記号 As String
        Dim アイコン As String
        Dim いろイロ As String
    End Structure
    Private mmSD文字(815) As ソレコレData文字
    '********************************************************************************
    Private mmBrshヒット, mmBrsh黒色線 As Integer 'ブラシハンドル
    Private mm文字色(5) As Integer
    Private mm文字色Count As Integer
    '********************************************************************************
    Private mmゲームを停止する As Boolean
    Private mm現在のカード, mmカード枚数, mm前回のカード枚数, mm現在の残り枚数, mm前回のカード文字コピースタート位置 As Integer
    Private mmウインドウ比率幅, mmウインドウ比率高 As Single
    Private mm現在のウインドウ面積 As Double
    '--------------------------------------
    Private mLists() As RECT
    Private mListMax As Integer
    '--------------------------------------
    Private mmリサイズ比率幅, mmリサイズ比率高 As Single
    '********************************************************************************
    Private mまとめ描画HDC As Integer = 0
    Private m文字画像用BMP As Integer = 0
    Private m文字用フォントGDI文字用 As Integer = 0
    Private m文字用フォントGDI数字用 As Integer = 0
    '********************************************************************************
    Public Function ppcカード型USERmin() As Integer
        Return cカード型USERmin 'cUser0形 '9
    End Function
    Public Function ppcカード型Allmax() As Integer
        Return cカード型Allmax 'cUser7形  '16
    End Function
#End Region

#Region "初期化と終了処理"
    Public Sub New()
        '********************************************************************************
        '2022/09/02  このクラスの .New() は　frmMain.New() から呼び出されるので、循環参照の無限ループに注意すること。
        '********************************************************************************
    End Sub
    Protected Overrides Sub Finalize()
        If mImgウロウロ原画のサイズ IsNot Nothing Then mImgウロウロ原画のサイズ.Dispose()
        If mImgウロウロ現在のサイズ IsNot Nothing Then mImgウロウロ現在のサイズ.Dispose()
        If mまとめ描画HDC <> 0 Then
            gggint = DeleteDC(mまとめ描画HDC) : mまとめ描画HDC = 0
        End If
        If m文字画像用BMP <> 0 Then
            gggint = DeleteObject(m文字画像用BMP) : m文字画像用BMP = 0
        End If
        gggbol = aaフォントGDI作成と破棄(2)

        MyBase.Finalize()
    End Sub

    Public Function aaフォントGDI作成と破棄(ByVal op As Integer) As Boolean
        Const strFontChk As String = "MS ゴシック--MS Pゴシック-- MS 明朝--MS P明朝"
        Select Case op
            Case 1 'Make
                If m文字用フォントGDI文字用 <> 0 Then Return True
                '-----------------------------------------------------
                Dim fn As String = frmMain.pフォント名
                Dim fb As FontStyle = IIf(frmMain.pフォント太字, FontStyle.Bold, FontStyle.Regular)
                Dim fs As Single = 96   ''''''  108 '''''''''''/ .カード型倍数
                Dim Font1 As New Font(fn, fs, fb)
                m文字用フォントGDI文字用 = Font1.ToHfont()
                '-----------------------------------------------------
                'フォント　MS...　だけは大きくする
                If InStr(strFontChk, fn) > 0 Then
                    fs = fs * 1.1
                Else
                    fs = fs * 0.6
                End If
                Dim Font2 As New Font(fn, fs, fb)
                m文字用フォントGDI数字用 = Font2.ToHfont()
            Case 2 'Delete
                If m文字用フォントGDI文字用 <> 0 Then DeleteObject(m文字用フォントGDI文字用)
                If m文字用フォントGDI数字用 <> 0 Then DeleteObject(m文字用フォントGDI数字用)
                m文字用フォントGDI文字用 = 0
                m文字用フォントGDI数字用 = 0
            Case 4 'property change 
                If m文字用フォントGDI文字用 = 0 Then Return False
                gggbol = aaフォントGDI作成と破棄(2)
                gggbol = aaフォントGDI作成と破棄(1)
        End Select
        Return True
    End Function

#End Region

#Region "外部インターフェイス"
    Friend Function aa初期設定オブジェ設定(ByRef rUser_Uro1_Poi2 As Integer) As Boolean
        mUser_Uro1_Poi2 = rUser_Uro1_Poi2
        '----------------------------------------
        '2022/09/02  このクラスの Sub New() は　frmMain.New() から呼び出されるので、Sub New()内に以下のコードを入れると循環参照の無限ループになる。
        With frmMain
            .pct文字画像用.Image = New Bitmap(300, 300)
            .pctメイン.Image = New Bitmap(2000, 1200)
            mImgウロウロ原画のサイズ = .pctメイン.Image.Clone
            mImgウロウロ現在のサイズ = .pctメイン.Image.Clone
        End With
        '----------------------------------------
        イベントgAppEventMaker = gAppEventMaker
        '----------------------------------------
        If mまとめ描画HDC = 0 Then
            Dim hdc As Integer = GetDC(frmMain.Handle)
            If hdc <> 0 Then
                mまとめ描画HDC = CreateCompatibleDC(hdc)
                gggint = ReleaseDC(frmMain.Handle, hdc)
            End If
        End If
        If m文字画像用BMP = 0 Then
            Dim imgbmp As Bitmap = frmMain.pct文字画像用.Image
            m文字画像用BMP = imgbmp.GetHbitmap
        End If
        ooユラユラ = New 五clsユラユラ
        '***************************************************************************
        DlgFileゲーム用 = New 四frmDlgPctFilesList
        gggbol = DlgFileゲーム用.aa初期設定オブジェ設定("ゲーム背景画像ファイルを設定", gmDlgFileゲーム用, &HAAFFFF&, False)
        '----------------------------------------
        '2023/03/10  このクラス固有のカスタマイズ
        With DlgFileゲーム用
            .mn00選択画像で実行.Text = "選択画像を背景に設定 (&P)"
            .mn00pop選択画像で実行.Text = "選択画像を背景に設定 (&P)"
            .pファイル選択でダイアログ閉じる = False
        End With
        '----------------------------------------
        ooRandMode = New 五clsRandMode
        Call ooRandMode.aa移動体群配列作成(UBound(mmSD))
        mmリサイズ比率幅 = 1
        mmリサイズ比率高 = 1
        Call aaカード型データー読み書き(1001, "")
        '----------------------------------------
        m画像の移動とズーム = False : mゲーム実行中_画像使用モード切替 = False
        '----------------------------------------
        gggbol = frmMain.ゲームデーター表示(3, 0, 0)
        '----------------------------------------
        Return True
    End Function

    Friend Function aaDlgFileゲーム用_aaウインドウ初期化作成_After_Ini_Read() As String
        If DlgFileゲーム用 Is Nothing Then Return ""
        gggstr = DlgFileゲーム用.aaウインドウ初期化作成()
        Dim ファイル As String = DlgFileゲーム用.p画像ファイル現在使用()
        Return zzゲーム描画用ファイル新規設定(ファイル, False)
    End Function

    Friend Function aa配色データーを全ての実体に設定(ByRef 配色() As Integer, ByRef brs枠色() As Integer, ByRef TypeID As Integer) As Boolean
        '-----------------------------------------
        If mmBrsh黒色線 = 0 Then mmBrsh黒色線 = GetStockObject(BLACK_BRUSH)
        '-----------------------------------------
        With frmMain
            If System.Drawing.ColorTranslator.ToWin32(.BackColor) <> 配色(1) Then .BackColor = System.Drawing.ColorTranslator.FromWin32(配色(1))
            If System.Drawing.ColorTranslator.ToWin32(.pct現在のカード.BackColor) <> 配色(2) Then .pct現在のカード.BackColor = System.Drawing.ColorTranslator.FromWin32(配色(2))
        End With
        '-----------------------------------------
        mmBrshヒット = brs枠色(8)
        '-----------------------------------------
        Dim a As Integer
        Dim mBrsh枠(4) As Integer 'ブラシハンドル
        Dim m文字色(5) As Integer '色の値
        For a = 1 To 4 : mBrsh枠(a) = brs枠色(a + 8) : Next
        For a = 1 To 5 : m文字色(a) = 配色(a + 2) : mm文字色(a) = m文字色(a) : Next
        Dim ccc As Integer = 0
        Dim cbr As Integer = 0
        For a = 1 To UBound(mmSD)
            cbr = cbr + 1
            If cbr > 4 Then cbr = 1
            ccc = ccc + 1
            If ccc > 5 Then ccc = 1
            With mmSD(a)
                .Brsh枠 = mBrsh枠(cbr)
                .文字色 = m文字色(ccc)
            End With
        Next
    End Function

    Friend Function aaゲーム終了時の_BMPとRGNの削除() As Boolean
        Dim a As Integer
        For a = 1 To UBound(mmSD)
            With mmSD(a)
                If .bmp <> 0 Then gggint = DeleteObject(.bmp)
                If .RGN本体 <> 0 Then gggint = DeleteObject(.RGN本体)
                If .RGN描画 <> 0 Then gggint = DeleteObject(.RGN描画)
                If .RGN外枠 <> 0 Then gggint = DeleteObject(.RGN外枠)
                '---------------------------------
                .再作成 = 0 '0 = 全て再作成    1 = カードサイズ    2 = bmp のみ フォントと色   4 = カード型の変更   5 = 大中小モード   6 = カードスピード   569 = aaForm_Resize_カードを再作成
                '---------------------------------
                .当り済み = False
                '---------------------------------
                .カード型 = 0
                .大中小倍数 = 0
                .大中小倍数設定済み = 0
                '---------------------------------
                .bmp = 0 '2017/09/28 Add  -----  OR Copy + AND Copy　をするための画像
                .bmpWD = 0
                .bmpHT = 0
                .RGN本体 = 0 '2017/12/06 Add  -----  マウス入力のヒットをチェックするためのリージョン
                .RGN描画 = 0
                .RGN外枠 = 0
                '---------------------------------
                '---------------------------------
                '2023/06/06 new １．５倍サイズの、カードズーム用の BMP を作る   Private Const cズームサイズ倍数MAX As Single = 1.5
                '2023/06/05 new new
                .ズーム倍数MAX = 0       '0 は使用しない。　ズーム倍数MAX まで行くと 1 に戻る。リングとして使用する。　1 to 100,200,300,,,　各カードのズーム周期により変わる
                .ズーム倍数IDX = 0       '0 は使用しない。　ズーム倍数MAX まで行くと 1 に戻る。リングとして使用する。　1 to 100,200,300,,,　各カードのズーム周期により変わる
                ReDim .ズーム倍数bmpWD(0)       'カードのそれぞれの瞬間のズーム bmpWD
                ReDim .ズーム倍数bmpHT(0)       'カードのそれぞれの瞬間のズーム bmpHT
                ReDim .ズーム倍数offsetX(0)     'カードのそれぞれの瞬間のズーム offsetX
                ReDim .ズーム倍数offSetY(0)     'カードのそれぞれの瞬間のズーム offSetY
                If .ズームbmp <> 0 Then gggint = DeleteObject(.ズームbmp)
                .ズームbmp = 0          '2023/06/06 Add  -----  OR Copy + AND Copy　をするための　１．５倍　画像
                .ズームbmpWD = 0
                .ズームbmpHT = 0
                '---------------------------------
                '---------------------------------
                .背景色 = -1
                '.文字色
                '.Brsh枠
                .枠幅実寸 = 0
                '---------------------------------
                gggint = zz当りカードの移動データー消去(mmSD(a))
                '---------------------------------
            End With
        Next
    End Function
    Private Function zz当りカードの移動データー消去(ByRef SD As 円弧移動ウロウロ) As Integer
        With SD
            .移動IDX = 0
            ReDim .移動ARY(0)
            ReDim .移動ズーム(0)
            .移動円カラー = 0
            '2023/04/10 add---------------------------------
            '移動ズームで画像が荒くなる場合のみ、これらのBMPを使用する。
            .移動bmpWD = 0
            .移動bmpHT = 0
            If .移動bmp <> 0 Then gggint = DeleteObject(.移動bmp) '存在したり、しなかったりするので注意
            .移動bmp = 0
            If .移動RGN描画 <> 0 Then gggint = DeleteObject(.移動RGN描画) '存在したり、しなかったりするので注意
            .移動RGN描画 = 0
            If .移動RGN外枠 <> 0 Then gggint = DeleteObject(.移動RGN外枠) '存在したり、しなかったりするので注意
            .移動RGN外枠 = 0
            .移動消えるカードの背景サイズ = 2.0
        End With
    End Function

    Friend Function aa背景の設定(ByVal p画像ファイル現在使用_を読み込む As Boolean) As Boolean
        If gmアプリ終了する Then Return False
        '*****************************************************
        If Not gmflag_FrmMain_LoadEnd Then Return False
        '*****************************************************
        If p画像ファイル現在使用_を読み込む Then gggstr = zzゲーム描画用ファイル新規設定(DlgFileゲーム用.p画像ファイル現在使用, True) 'ここで、mImgウロウロ現在のサイズ　は現在のフォームサイズに設定済みである
        '*****************************************************
        With frmMain
            Dim MNHT As Integer = .mMenuHight
            Dim WD As Integer = Math.Max(100, .ClientSize.Width)
            Dim HT As Integer = Math.Max(100, .ClientSize.Height - MNHT)
            With .pctメイン
                .SetBounds(0, MNHT, WD, HT)
                If .Image IsNot Nothing Then
                    .Image.Dispose()
                End If
                .Image = mImgウロウロ現在のサイズ.Clone
                If Not pゲーム背景画像を表示BOOL Then  '2023/05/23
                    gggbol = ⅩImageFillRect(.Image, (frmMain.p配色データー背景色), 0, 0, WD, HT, False)
                End If
            End With
            If ppゲーム実行中 Then
                gmウロウロポイポイ実行中_FormReSize = True
            Else
                .pct現在のカード.Visible = False
                .pctメイン.Visible = True
            End If
        End With
        Return True
    End Function

    Friend Function aaファイル画像ゲーム用DlgShow(ByVal rOwner As frmMain) As Boolean
        If gmアプリ終了する Then Return False
        Return DlgFileゲーム用.aaファイル画像DlgShow(rOwner)
    End Function

#End Region

#Region "内部処理"

    Private Function zzゲーム描画用ファイル新規設定(ByVal ファイル As String, ByVal 無条件で再ロードをする As Boolean) As String
        If gmアプリ終了する Then Return ""
        Static oldファイル As String, oldWD As Integer, oldHT As Integer, oldゲーム背景画像の明るさ As Single, oldFormWD As Integer, oldFormHT As Integer
        With frmMain
            '---------------------------------------------
            If 無条件で再ロードをする Then
                'no op
            Else
                If mImgウロウロ原画のサイズ IsNot Nothing Then
                    If oldファイル = ファイル And oldWD = mImgウロウロ原画のサイズ.Width And oldHT = mImgウロウロ原画のサイズ.Height And oldゲーム背景画像の明るさ = pゲーム背景画像の明るさ And oldFormWD = .ClientSize.Width And oldFormHT = .ClientSize.Height Then
                        'qqqqq("zzゲーム描画用ファイル新規設定() @@@@@@@@ 変更なし")
                        Return ファイル
                    End If
                End If
            End If
            '---------------------------------------------
            Dim wPctCurBmp縦横比率 As Single : Dim w使用中リストIDX As Integer
            Dim imf As Image = Nothing
            Dim OpenOKfile As String = DlgFileゲーム用.aa画像ファイルオープン_into_ImageBox_IfError_SetNextFile_自動的に(ファイル, imf, wPctCurBmp縦横比率, w使用中リストIDX)
            '---------------------------------------------
            'qqqqq("zzゲーム描画用ファイル新規設定()")
            gggbol = ⅩImage_Copy_or_Clone(mImgウロウロ現在のサイズ, imf)
            gggbol = ⅩImage_Copy_or_Clone(mImgウロウロ原画のサイズ, imf)
            '---------------------------------------------
            'グレーにする
            gggbol = ⅩグレーImageMake(imf, mImgウロウロ原画のサイズ, mImgウロウロ現在のサイズ, True, (pゲーム背景画像の明るさ))
            imf.Dispose()
            '---------------------------------------------
            pゲーム背景画像の切り替え_カレントカウント = 0
            Dim fff As String = DlgFileゲーム用.aa画像ファイル新規設定後のリスト選択表示処理(OpenOKfile)
            '---------------------------------------------
            If mImgウロウロ原画のサイズ IsNot Nothing Then
                oldファイル = ファイル : oldWD = mImgウロウロ原画のサイズ.Width : oldHT = mImgウロウロ原画のサイズ.Height : oldゲーム背景画像の明るさ = pゲーム背景画像の明るさ : oldFormWD = .ClientSize.Width : oldFormHT = .ClientSize.Height
            End If
            '---------------------------------------------
            Return zz描画用_pctBoxs_セットImage(frmMain, ファイル, 無条件で再ロードをする)
        End With
    End Function

    Private Function zz描画用_pctBoxs_セットImage(ByRef fom As frmMain, ByVal rNewファイル As String, ByVal 無条件で再ロードをする As Boolean) As Boolean
        If gmアプリ終了する Then Return False
        Static Old使用画像名 As String = "" : Static OldWD As Integer : Static OldHT As Integer
        '2022/05/01
        'ウインドウサイズが１ピクセルでもずれると、描画エラーになる
        'かすかな背景のずれは、ここの　Ⅹサイズ計算_受けに合わせて_送りをトリミング　呼び出しでで発生する
        With fom
            If mImgウロウロ原画のサイズ Is Nothing Then Return False
            Dim YY As Integer = .mMenuHight
            Dim WD As Integer = Math.Max(100, .ClientSize.Width)
            Dim HT As Integer = Math.Max(100, .ClientSize.Height - .mMenuHight)
            Dim ファイル As String = IIf(rNewファイル = "", DlgFileゲーム用.p画像ファイル現在使用, rNewファイル)
            If 無条件で再ロードをする Or (Old使用画像名 <> ファイル) Or OldWD <> WD Or OldHT <> HT Or gmスイスイ画像を再設定すべし = True Then
                If Not ⅩImage_新規作成_再作成(mImgウロウロ現在のサイズ, WD, HT) Then Return False
                Dim sz As Size = mImgウロウロ原画のサイズ.Size
                Dim 送り幅 As Integer = sz.Width
                Dim 送り高 As Integer = sz.Height
                Dim wLeft, wTop, wWidth, wHeight As Integer
                gggbol = Ⅹサイズ計算_受けに合わせて_送りをトリミング(WD, HT, 送り幅, 送り高, wLeft, wTop, wWidth, wHeight)
                gggbol = Ⅹ受けImage全域に_送Imageの選択領域を_Copy(mImgウロウロ現在のサイズ, mImgウロウロ原画のサイズ, wLeft, wTop, wWidth, wHeight)
                'qqqqq("     aa描画用_pctBoxs_セットImage()")
                OldWD = WD : OldHT = HT : Old使用画像名 = ファイル
            End If
            gmスイスイ画像を再設定すべし = False
        End With
        Return True
    End Function

#End Region

#Region "カード型作成のインタフェイス"
    Friend Function aaフォームサイズ_カードサイズ_データー設定() As Boolean
        '共用ファイルのためのダミー関数。
    End Function
    Friend Function aaDlgCardRgnMakeIO(ByRef op As Integer, Optional ByRef rw使用カード群 As String = "", Optional ByRef DlgList As ListBox = Nothing, Optional ByRef カード型 As Integer = 0, Optional ByRef カードWDHT As Integer = 0, Optional ByRef 枠幅実寸 As Integer = 0, Optional ByRef Rgn画 As Integer = 0, Optional ByRef Rgn枠 As Integer = 0, Optional ByRef wカード幅 As Integer = 0, Optional ByRef wカード高 As Integer = 0, Optional ByRef wRgn画DefUser As Integer = 0, Optional ByRef wRgn枠DefUser As Integer = 0, Optional ByRef wカード幅DefUser As Integer = 0, Optional ByRef wカード高DefUser As Integer = 0) As Integer
        Select Case op
            Case 2000, 2002, 2009 '***********2022/10/07 chg
                Return aaユーザーカード作成後にカードを上書き保存(op, rw使用カード群, DlgList, カード型, カードWDHT, 枠幅実寸, Rgn画, Rgn枠, wカード幅, wカード高, wRgn画DefUser, wRgn枠DefUser, wカード幅DefUser, wカード高DefUser)
            Case 10020, 10021, 10022, 10023 '
                Return aaユーザーカードを標準に戻すコマンド(op, rw使用カード群, DlgList, カード型, カードWDHT, 枠幅実寸, Rgn画, Rgn枠, wカード幅, wカード高, wRgn画DefUser, wRgn枠DefUser, wカード幅DefUser, wカード高DefUser)
            Case 30001, 30000  '2022/10/07  もし、ゲーム実行中で、変更カードが使用されていれば、再描画する。
                Return aaユーザーカードを標準に戻すコマンド(op, rw使用カード群, DlgList, カード型)
        End Select
        Return 0
    End Function
    Friend Function aaDlgCardRgnMakeIOEX(ByRef rOldカード型 As Integer, ByRef rメニュータイトル As String, ByRef rメニューに表示 As Boolean, ByRef r縦横比率 As Single, ByRef r基準の倍数値横 As Single, ByRef r基準の倍数値縦 As Single, ByRef rポリゴン要素数 As Integer, ByRef rポリゴン() As POINTAPI, ByRef rUserCardMakeBoxスケール基数WD As Integer, ByRef rUserCardMakeBoxスケール基数HT As Integer) As Boolean
        aaDlgCardRgnMakeIOEX = aaカード作成データー設定(rOldカード型, rメニュータイトル, rメニューに表示, r縦横比率, r基準の倍数値横, r基準の倍数値縦, rポリゴン要素数, rポリゴン, rUserCardMakeBoxスケール基数WD, rUserCardMakeBoxスケール基数HT)
    End Function
    Private Function pユーザーカードのデーター_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "") As String
        Const PropName As String = "pユーザーカードのデーター" : Const cut As String = Chr(14) + "★★★★★★★★★" + Chr(14)
        Dim 値 As String = ""
        Dim rw使用カード群 As String = ""
        Dim b As Integer
        Select Case プロパコマンド
            Case gcoプロパ名
                Return PropName
            Case gcoプロパ初期化
                gggbol = aaカード型データー読み書き(1001, "", 0)

            Case gcoプロパiniWR
                値 = "" : rw使用カード群 = "" : b = 0 ' = cカード型APPmax
                Do
                    b = b + 1
                    gggbol = aaカード型データー読み書き(1005, rw使用カード群, b)
                    If rw使用カード群 <> "" Then
                        値 = 値 + rw使用カード群 + cut : rw使用カード群 = ""
                    Else
                        Exit Do
                    End If
                Loop
                Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, 値)

            Case gcoプロパiniRD
                値 = ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)
                Dim rwAry() As String = {""}
                Dim max As Integer = Ⅹ文をカットして配列にする(値, cut, rwAry)
                For b = 1 To max
                    rw使用カード群 = rwAry(b)
                    gggbol = aaカード型データー読み書き(1004, rw使用カード群, b)
                Next

        End Select
        Return 値
    End Function
    Private Function zzカード型の名前(ByVal rカード型 As Integer, ByVal capDEF0_capUSER1 As Integer) As String
        Dim a As Integer = Ⅹ数値範囲Int(cカード型ALLmin, cカード型Allmax, rカード型)
        If a <= cカード型APPmax Then
            Select Case a
                Case c四角形 : Return "四角形"
                Case c円形 : Return "円形"
                Case c六角形 : Return "六角形"
                Case cひし形 : Return "ひし形"
                Case c四つ葉形 : Return "四つ葉形"
                Case cダルマ形 : Return "ダルマ形"
                Case c十字形 : Return "十字形"
                Case cダイヤ形 : Return "ダイヤ形"
                Case cハート形 : Return "ハート形"
            End Select
            Return "四角形"
        Else
            a = Ⅹ数値範囲Int(cカード型USERmin, cカード型Allmax, a) 'mカード型データー基本設定( 0 - 16 ) As USERCARD   'using 9 to 16
            If capDEF0_capUSER1 = 0 Then Return mカード型データー基本設定(a).メニュータイトルDEF Else Return mカード型データー基本設定(a).メニュータイトル
        End If
    End Function
    Friend Function aaカード型リージョンを作る_UserCardMake(ByVal rRgn枠も必要 As Boolean, ByRef rカード型ユーザー型IDX As Integer, ByRef r画幅高平均 As Integer, ByRef r枠幅実寸 As Integer, ByRef wRgn画 As Integer, ByRef wRgn枠 As Integer, ByRef w画幅 As Integer, ByRef w画高 As Integer) As Boolean
        Dim idx As Integer = cカード型USERmin + rカード型ユーザー型IDX
        gggbol = aaゲームカード型リージョンを作る(False, idx, r画幅高平均, r画幅高平均, wRgn画, wRgn枠, 0, 0, w画幅, w画高)
        If Not rRgn枠も必要 Then
            If wRgn枠 <> 0 Then DeleteObject(wRgn枠)
            wRgn枠 = 0
        End If
        Return True
    End Function
    Friend Function aaゲームカード型リージョンを作る(ByRef r規定型指定 As Boolean, ByRef rカード型 As Integer, ByRef rPRE画幅 As Integer, ByRef rPRE画高 As Integer, ByRef wRGN本体 As Integer, ByRef wRGN外枠 As Integer, _
                            Optional ByRef wカード型倍数 As Single = 0, Optional ByRef wフレームライン幅 As Integer = 0, Optional ByRef wカードのサイズ幅 As Integer = 0, Optional ByRef wカードのサイズ高 As Integer = 0) As Boolean
        '-----------------------------------------------------
        'rカード型 = 0 to 8 (appdef)  +  9 to 16 (user)  合計　 0 to 16 max
        '-----------------------------------------------------
        If wRGN本体 <> 0 Then gggint = DeleteObject(wRGN本体)
        wRGN本体 = 0
        If wRGN外枠 <> 0 Then gggint = DeleteObject(wRGN外枠)
        wRGN外枠 = 0
        '-----------------------------------------------------
        If rカード型 <= cカード型APPmax Then
            Select Case rカード型
                Case c四角形 : wカード型倍数 = 0.9
                Case c円形 : wカード型倍数 = 1.0#
                Case c六角形 : wカード型倍数 = 1.04
                Case cひし形 : wカード型倍数 = 1.04
                Case c四つ葉形 : wカード型倍数 = 1.0#
                Case cダルマ形 : wカード型倍数 = 1.0#
                Case c十字形 : wカード型倍数 = 1.0#
                Case cダイヤ形 : wカード型倍数 = 1.05
                Case cハート形 : wカード型倍数 = 1.0#
            End Select
        Else
            wカード型倍数 = 0.9
        End If
        'wカード型倍数 = 1   '2018/07/17  テストコード
        Dim pt(0) As POINTAPI
        Dim a, m, n As Integer
        Dim o画幅 As Integer = rPRE画幅 * wカード型倍数 : o画幅 = (o画幅 \ 2) * 2
        Dim o画高 As Integer = rPRE画高 * wカード型倍数 : o画高 = (o画高 \ 2) * 2
        wフレームライン幅 = Math.Max(2, (o画幅 + o画高) * pカードサイズ枠の太さ実効値_現在())
        Dim o枠幅 As Integer
        o枠幅 = Math.Max(2, wフレームライン幅)
        '-----------------------------------------------------
        If rカード型 >= cカード型USERmin Then
            Dim userIDX As Integer = Ⅹ数値範囲Int(cカード型USERmin, cカード型Allmax, rカード型)
            Dim ユーザーカードpotsUSER無効 As Boolean = (UBound(mカード型データー基本設定(userIDX).potsUSER) < 3)
            If r規定型指定 Or ユーザーカードpotsUSER無効 Then m = UBound(mカード型データー基本設定(userIDX).potsDEF) Else m = UBound(mカード型データー基本設定(userIDX).potsUSER)
            If m > 0 Then
                With mカード型データー基本設定(userIDX)
                    ReDim pt(m)
                    For a = 0 To m
                        If r規定型指定 Or ユーザーカードpotsUSER無効 Then
                            pt(a).X = CInt((o画幅 * .potsDEF(a).X) / cUserCardスケール基数WD) : pt(a).Y = CInt((o画高 * .potsDEF(a).Y) / cUserCardスケール基数HT)
                        Else
                            pt(a).X = CInt((o画幅 * .potsUSER(a).X) / cUserCardスケール基数WD) : pt(a).Y = CInt((o画高 * .potsUSER(a).Y) / cUserCardスケール基数HT)
                        End If
                    Next
                End With
                If m > 30 Then wフレームライン幅 = wフレームライン幅 * 0.8 '2018/05/26 曲線の多い図形では、外枠の幅を小さくする
                n = m
                If m > 50 Then n = GMCOMⅩ画像の外枠の_POINT_配列を作成_縦線横線データーダブり削除(pt, False)
                '---------------------------------------------------------------------------
                'If m > 50 Then qqqqq CStr(m) + " ---> " + CStr(n)
                '---------------------------------------------------------------------------
                wRGN本体 = CreatePolygonRgn(pt, n + 1, WINDING)
                '---------------------------------------------------------------------------
            End If
        Else
            Dim x0, x1, x2, x3, y0, y1, y2, y3, xx, xxx, yy, yyy, addxy, sft As Integer
            Dim rc0, rc1, rc2, rc3, rc4, rcCur, RectTMP As RECT
            Dim rgnTMP, rgnTMP1 As Integer
            Select Case rカード型
                Case c四角形
                    xx = o画幅 \ 8 : yy = o画高 \ 8
                    wRGN本体 = CreateRoundRectRgn(0, 0, o画幅, o画高, xx, yy)

                Case c円形
                    wRGN本体 = CreateEllipticRgn(0, 0, o画幅, o画高)
                    wRGN外枠 = CreateEllipticRgn(o枠幅, o枠幅, o画幅 - o枠幅, o画高 - o枠幅)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, wRGN本体, RGN_XOR)

                Case c六角形
                    ReDim pt(20)
                    x0 = 0 : x1 = CInt((o画幅 * 0.5) * System.Math.Cos(30 * app角度からラジアンへの変換数)) : x2 = CInt(x1 * 2)
                    yyy = CInt(o画高 * 0.5) : y0 = 0 : yy = CInt(yyy * System.Math.Sin(30 * app角度からラジアンへの変換数)) : y1 = yyy - yy
                    y2 = yyy + yy
                    y3 = o画高
                    pt(0).X = x1 : pt(0).Y = 0 : pt(1).X = x2 : pt(1).Y = y1 : pt(2).X = x2 : pt(2).Y = y2
                    pt(3).X = x1 : pt(3).Y = y3 : pt(4).X = 0 : pt(4).Y = y2 : pt(5).X = 0 : pt(5).Y = y1
                    wRGN本体 = CreatePolygonRgn(pt, 6, WINDING)
                    'Call GetRgnBox(wRGN本体, rc0): qqqqq "wRGN本体 X,Y  " + CStr(rc0.left) + ", " + CStr(rc0.ttt)
                    yy = CInt(o枠幅 * System.Math.Tan(30 * app角度からラジアンへの変換数))
                    yyy = CInt(o枠幅 / System.Math.Cos(30 * app角度からラジアンへの変換数))
                    pt(0).X = x1 : pt(0).Y = 0 + yyy : pt(1).X = x2 - o枠幅 : pt(1).Y = y1 + yy : pt(2).X = x2 - o枠幅 : pt(2).Y = y2 - yy
                    pt(3).X = x1 : pt(3).Y = y3 - yyy : pt(4).X = 0 + o枠幅 : pt(4).Y = y2 - yy : pt(5).X = 0 + o枠幅 : pt(5).Y = y1 + yy
                    wRGN外枠 = CreatePolygonRgn(pt, 6, WINDING)
                    'Call GetRgnBox(wRGN外枠, rc0): qqqqq "wRGN外枠 X,Y  " + CStr(rc0.left) + ", " + CStr(rc0.ttt)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, wRGN本体, RGN_XOR)

                Case cひし形
                    ReDim pt(20)
                    x0 = 0 : x1 = CInt(o画幅 * 0.4) : x2 = CInt(o画幅 * 0.6) : x3 = o画幅 : y0 = 0 : y1 = CInt(o画高 * 0.4) : y2 = CInt(o画高 * 0.6) : y3 = o画高
                    pt(0).X = x1 : pt(0).Y = y0 : pt(1).X = x2 : pt(1).Y = y0 : pt(2).X = x3 : pt(2).Y = y1 : pt(3).X = x3 : pt(3).Y = y2
                    pt(4).X = x2 : pt(4).Y = y3 : pt(5).X = x1 : pt(5).Y = y3 : pt(6).X = x0 : pt(6).Y = y2 : pt(7).X = x0 : pt(7).Y = y1
                    wRGN本体 = CreatePolygonRgn(pt, 8, WINDING)
                    xx = CInt(o枠幅 * System.Math.Tan(22.5 * app角度からラジアンへの変換数))
                    pt(0).X = x1 + xx : pt(0).Y = y0 + o枠幅 : pt(1).X = x2 - xx : pt(1).Y = pt(0).Y : pt(2).X = x3 - o枠幅 : pt(2).Y = y1 + xx : pt(3).X = pt(2).X : pt(3).Y = y2 - xx
                    pt(4).X = x2 - xx : pt(4).Y = y3 - o枠幅 : pt(5).X = x1 + xx : pt(5).Y = pt(4).Y : pt(6).X = x0 + o枠幅 : pt(6).Y = y2 - xx : pt(7).X = pt(6).X : pt(7).Y = y1 + xx
                    wRGN外枠 = CreatePolygonRgn(pt, 8, WINDING)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, wRGN本体, RGN_XOR)

                Case c四つ葉形
                    gggint = SetRect(RectTMP, 0, 0, o画幅, o画高)
                    xxx = ⅩRect幅(RectTMP) : yyy = ⅩRect高(RectTMP) : x0 = RectTMP.lll : y0 = RectTMP.ttt : xx = (xxx \ 2) : yy = (yyy \ 2)
                    addxy = Math.Max(2, CInt(xxx * 0.05))
                    sft = 0
                    gggint = SetRect(rc0, x0, y0, x0 + xx + addxy - sft, y0 + yy + addxy - sft)
                    wRGN本体 = CreateEllipticRgnIndirect(rc0)
                    gggint = OffsetRect(rc0, xx - addxy + sft, 0)
                    rgnTMP = CreateEllipticRgnIndirect(rc0) : gggint = CombineRgn(wRGN本体, wRGN本体, rgnTMP, RGN_OR)
                    gggint = OffsetRgn(rgnTMP, 0, yy - addxy + sft) : gggint = CombineRgn(wRGN本体, wRGN本体, rgnTMP, RGN_OR)
                    gggint = OffsetRgn(rgnTMP, -xx + addxy - sft, 0) : gggint = CombineRgn(wRGN本体, wRGN本体, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = SetRect(rc0, x0 + CInt(xx * 0.2), y0 + CInt(yy * 0.2), x0 + CInt(xx * 1.8), y0 + CInt(yy * 1.8))
                    rgnTMP = CreateRectRgnIndirect(rc0)
                    gggint = CombineRgn(wRGN本体, wRGN本体, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    '---------------------------------------------------------------------------------------------------
                    Call InflateRect(RectTMP, -o枠幅, -o枠幅)
                    xxx = ⅩRect幅(RectTMP) : yyy = ⅩRect高(RectTMP) : x0 = RectTMP.lll : y0 = RectTMP.ttt : xx = (xxx \ 2) : yy = (yyy \ 2)
                    addxy = Math.Max(2, CInt(xxx * 0.05))
                    sft = o枠幅
                    gggint = SetRect(rc0, x0, y0, x0 + xx + addxy - sft, y0 + yy + addxy - sft)
                    wRGN外枠 = CreateEllipticRgnIndirect(rc0)
                    gggint = OffsetRect(rc0, xx - addxy + sft, 0)
                    rgnTMP = CreateEllipticRgnIndirect(rc0) : gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = OffsetRgn(rgnTMP, 0, yy - addxy + sft) : gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = OffsetRgn(rgnTMP, -xx + addxy - sft, 0) : gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = SetRect(rc0, x0 + CInt(xx * 0.2), y0 + CInt(yy * 0.2), x0 + CInt(xx * 1.8), CInt(y0 + yy * 1.8))
                    rgnTMP = CreateRectRgnIndirect(rc0)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    '---------------------------------------------------------------------------------------------------
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, wRGN本体, RGN_XOR)
                    '---------------------------------------------------------------------------------------------------

                Case cダルマ形
                    yy = CInt(o画高 * 0.3)
                    gggint = SetRect(rc0, 0, 0, o画幅, o画高 - yy)
                    rgnTMP = CreateEllipticRgnIndirect(rc0) : gggint = OffsetRgn(rgnTMP, 0, yy)
                    wRGN本体 = CreateEllipticRgnIndirect(rc0) : gggint = CombineRgn(wRGN本体, wRGN本体, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = InflateRect(rc0, -o枠幅, -o枠幅)
                    rgnTMP = CreateEllipticRgnIndirect(rc0) : gggint = OffsetRgn(rgnTMP, 0, yy)
                    wRGN外枠 = CreateEllipticRgnIndirect(rc0) : gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    '-----------------------------
                    xx = o画幅 \ 8
                    yy = o画高 \ 6
                    gggint = SetRect(rc0, xx, yy, o画幅 - xx, o画高 - yy)
                    rgnTMP = CreateEllipticRgnIndirect(rc0)
                    '-----------------------------
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, wRGN本体, RGN_XOR)

                Case c十字形
                    xx = o画幅 \ 6
                    yy = o画高 \ 6
                    gggint = SetRect(rc0, xx, 0, o画幅 - xx, o画高) : rgnTMP = CreateRectRgnIndirect(rc0)
                    gggint = SetRect(rcCur, 0, yy, o画幅, o画高 - yy) : wRGN本体 = CreateRectRgnIndirect(rcCur)
                    gggint = CombineRgn(wRGN本体, wRGN本体, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = InflateRect(rc0, -o枠幅, -o枠幅) : rgnTMP = CreateRectRgnIndirect(rc0)
                    gggint = InflateRect(rcCur, -o枠幅, -o枠幅) : wRGN外枠 = CreateRectRgnIndirect(rcCur)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, wRGN本体, RGN_XOR)

                Case cダイヤ形
                    ReDim pt(10)
                    xx = CInt(o画幅 * 1.05) : yy = CInt(o画高 * 0.9)
                    pt(0).X = 0 : pt(0).Y = CInt(yy * 0.3)
                    pt(1).X = CInt(xx * 0.2) : pt(1).Y = 0
                    pt(2).X = CInt(xx * 0.8) : pt(2).Y = 0
                    pt(3).X = xx : pt(3).Y = pt(0).Y
                    pt(4).X = CInt(xx * 0.75) : pt(4).Y = yy
                    pt(5).X = CInt(xx * 0.25) : pt(5).Y = yy
                    wRGN本体 = CreatePolygonRgn(pt, 6, WINDING)
                    wRGN外枠 = CreatePolygonRgn(pt, 6, WINDING)
                    pt(0).X = pt(0).X + CInt(o枠幅 * 1.4) : pt(0).Y = pt(0).Y + CInt(o枠幅 * 0.2)
                    pt(1).X = pt(1).X + CInt(o枠幅 * 0.5) : pt(1).Y = pt(1).Y + o枠幅
                    pt(2).X = pt(2).X - CInt(o枠幅 * 0.5) : pt(2).Y = pt(1).Y
                    pt(3).X = pt(3).X - CInt(o枠幅 * 1.4) : pt(3).Y = pt(3).Y + CInt(o枠幅 * 0.2)
                    pt(4).X = pt(4).X - CInt(o枠幅 * 0.8) : pt(4).Y = pt(4).Y - o枠幅
                    pt(5).X = pt(5).X + CInt(o枠幅 * 0.8) : pt(5).Y = pt(4).Y
                    rgnTMP = CreatePolygonRgn(pt, 6, WINDING)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_XOR)
                    gggint = DeleteObject(rgnTMP)

                Case cハート形
                    xx = CInt(o画幅 * 0.6) : xxx = CInt(o画幅 * 0.4)
                    yy = CInt(o画高 * 0.6) : yyy = CInt(o画高 * 0.7)
                    gggint = SetRect(rc1, 0, 0, xx, yy) : wRGN本体 = CreateEllipticRgnIndirect(rc1)
                    gggint = SetRect(rc2, xxx, 0, xxx + xx, yy) : rgnTMP = CreateEllipticRgnIndirect(rc2)
                    gggint = CombineRgn(wRGN本体, wRGN本体, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = SetRect(rc3, 0, CInt(-o画高 * 0.4), o画幅, o画高) : rgnTMP = CreateEllipticRgnIndirect(rc3)
                    gggint = SetRect(rc4, 0, CInt(o画高 * 0.3), o画幅, o画高) : rgnTMP1 = CreateRectRgnIndirect(rc4)
                    gggint = CombineRgn(rgnTMP, rgnTMP, rgnTMP1, RGN_AND)
                    gggint = CombineRgn(wRGN本体, wRGN本体, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = DeleteObject(rgnTMP1)
                    gggint = InflateRect(rc1, -o枠幅, -o枠幅) : wRGN外枠 = CreateEllipticRgnIndirect(rc1)
                    gggint = InflateRect(rc2, -o枠幅, -o枠幅) : rgnTMP = CreateEllipticRgnIndirect(rc2)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = SetRect(rc1, o枠幅 + 1, CInt(o画高 * 0.3), o画幅 - o枠幅 - 2, CInt(o画高 * 0.39)) : rgnTMP = CreateRectRgnIndirect(rc1)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = InflateRect(rc3, -o枠幅, -o枠幅) : rgnTMP = CreateEllipticRgnIndirect(rc3)
                    yyy = rc4.ttt
                    gggint = InflateRect(rc4, -o枠幅, -o枠幅)
                    rc4.ttt = yyy
                    rgnTMP1 = CreateRectRgnIndirect(rc4)
                    gggint = CombineRgn(rgnTMP, rgnTMP, rgnTMP1, RGN_AND)
                    gggint = CombineRgn(wRGN外枠, wRGN外枠, rgnTMP, RGN_OR)
                    gggint = DeleteObject(rgnTMP)
                    gggint = DeleteObject(rgnTMP1)
                    gggint = CombineRgn(wRGN外枠, wRGN本体, wRGN外枠, RGN_XOR)

            End Select
        End If
        '-----------------------------------------------------
        If wRGN本体 <> 0 Then
            Dim rrr As RECT
            gggint = GetRgnBox(wRGN本体, rrr)
            wカードのサイズ幅 = ⅩRect幅(rrr)
            wカードのサイズ高 = ⅩRect高(rrr)
            With rrr
                If .lll <> 0 Or .ttt <> 0 Then
                    gggint = OffsetRgn(wRGN本体, -.lll, -.ttt)
                    If wRGN外枠 <> 0 Then gggint = OffsetRgn(wRGN外枠, -.lll, -.ttt)
                End If
                '            '---------------------------------------------------------------------------
                '            2018/05/27
                '            マウスクリックで直線の集まりで作ったリージョンでは､　 pt(n).Y = 0 になっていても
                '　　　　　　作られたリージョンのその位置  pt(n).Y は、--> 1 になってしまう。
                '　　　　　　CreatePolygonRgn()　関数での問題なのか．．．原因不明。
                '            '---------------------------------------------------------------------------
            End With
        Else
            wカードのサイズ幅 = 1
            wカードのサイズ高 = 1
        End If
        Return (wRGN本体 <> 0)
        'qqqqq CStr(rPRE画幅) + ", " + CStr(rPRE画高) + " ---> " + CStr(wカードのサイズ幅) + ", " + CStr(wカードのサイズ高) + ", "
    End Function

    Friend Function aaユーザーカードヘッド文字列() As String
        aaユーザーカードヘッド文字列 = cユーザー
    End Function

    Friend Function aaユーザーカードを標準に戻すコマンド(ByRef op As Integer, Optional ByRef Title As String = "", Optional ByRef DlgList As ListBox = Nothing, Optional ByRef カード型 As Integer = 0, Optional ByRef カードWDHT As Integer = 0, Optional ByRef 枠幅実寸 As Integer = 0, Optional ByRef Rgn画 As Integer = 0, Optional ByRef Rgn枠 As Integer = 0, Optional ByRef wカード幅 As Integer = 0, Optional ByRef wカード高 As Integer = 0, Optional ByRef wRgn画DefUser As Integer = 0, Optional ByRef wRgn枠DefUser As Integer = 0, Optional ByRef wカード幅DefUser As Integer = 0, Optional ByRef wカード高DefUser As Integer = 0) As Integer
        'ユーザーカードを標準に戻すためのコマンド群
        Dim n, a As Integer
        Dim s As String
        Select Case op
            Case 10020 'from  mnuユーザーカードを標準に戻す ---> zzユーザーカードを標準に戻すEnabledSet()
                n = 0
                For a = cカード型USERmin To cカード型Allmax
                    If UBound(mカード型データー基本設定(a).potsUSER) > 0 Then n = n + 1
                Next
                Return n
            Case 10021 'from  mnuユーザーカードを標準に戻す_Click()
                With DlgList
                    .Items.Clear()
                    For a = cカード型USERmin To cカード型Allmax
                        If UBound(mカード型データー基本設定(a).potsUSER) > 0 Then .Items.Add(CStr(a - cカード型USERmin) & " : " & mカード型データー基本設定(a).メニュータイトル) '2023/01/16 chg ***  Then .Items.Add(mカード型データー基本設定(a).メニュータイトル)
                    Next
                End With
            Case 10022 'from  frmUserCardReset.lst_Click()
                Call aaユーザーカード作成後にカードを上書き保存(2022, Title, DlgList, カード型, カードWDHT, 枠幅実寸, Rgn画, Rgn枠, wカード幅, wカード高, wRgn画DefUser, wRgn枠DefUser, wカード幅DefUser, wカード高DefUser)
            Case 10023 'from  frmUserCardReset.btn_Click() '選択したユーザーカードの形を標準に戻す
                s = Title
                For a = cカード型USERmin To cカード型Allmax
                    With mカード型データー基本設定(a)

                        '2023/02/07 .メニュータイトル = "" になっている
                        'If s = .メニュータイトル Then qqqqq("カード型 *** " & CStr(カード型))

                        If (s = "" And a = カード型) Then
                            .メニュータイトル = Mid(.メニュータイトルDEF, 2)
                            .基準比率 = 1.0#
                            ReDim .potsUSER(0)
                            Exit Function
                        End If
                    End With
                Next
        End Select
    End Function

    Friend Function aaユーザーカード作成後にカードを上書き保存(ByRef op As Integer, Optional ByRef Title As String = "", Optional ByRef DlgList As ListBox = Nothing, Optional ByRef カード型 As Integer = 0, Optional ByRef カードWDHT As Integer = 0, Optional ByRef 枠幅実寸 As Integer = 0, Optional ByRef Rgn画 As Integer = 0, Optional ByRef Rgn枠 As Integer = 0, Optional ByRef wカード幅 As Integer = 0, Optional ByRef wカード高 As Integer = 0, Optional ByRef wRgn画DefUser As Integer = 0, Optional ByRef wRgn枠DefUser As Integer = 0, Optional ByRef wカード幅DefUser As Integer = 0, Optional ByRef wカード高DefUser As Integer = 0) As Integer
        Dim a, カード型IDX As Integer, ee1, ee2 As Boolean
        Dim s As String
        Select Case op 'aaIO_frmRgnCardSet
            Case 2000 'List Box Set --- from mnuユーザーカードとして保存_Click
                DlgList.Items.Clear()
                For a = cカード型USERmin To cカード型Allmax
                    With mカード型データー基本設定(a)
                        DlgList.Items.Add(IIf(UBound(.potsUSER) > 0, .メニュータイトル, .メニュータイトルDEF))
                    End With
                Next
            Case 2002, 2022 'Rturn RGN                              2022 'from  frmUserCardReset.lst_Click()
                s = Title
                For a = cカード型USERmin To cカード型Allmax
                    カード型IDX = a            'カード型IDX = a + cカード型APPmax
                    With mカード型データー基本設定(a)
                        '2023/01/16 chg ---------------------------------------------------------------------
                        ee1 = (s = "" And a = カード型) Or (s <> "" And (s = .メニュータイトルDEF Or s = .メニュータイトル))
                        ee2 = (s = "" And a = カード型) Or (s <> "" And s = .メニュータイトル)
                        '2023/01/16 chg ---------------------------------------------------------------------
                        If (op = 2002 And ee1) Or (op = 2022 And ee2) Then
                            Call aaゲームカード型リージョンを作る(False, カード型IDX, カードWDHT, カードWDHT, Rgn画, Rgn枠, , , wカード幅, wカード高)
                            If op = 2022 Then 'from  frmUserCardReset.lst_Click()
                                Call aaゲームカード型リージョンを作る(True, カード型IDX, カードWDHT, カードWDHT, wRgn画DefUser, wRgn枠DefUser, , , wカード幅DefUser, wカード高DefUser)
                                Title = mカード型データー基本設定(a).メニュータイトルDEF ' 2022 'from  frmUserCardReset.lst_Click()  return 標準のユーザーカード メニュータイトル
                            End If
                            Exit Function
                        End If
                    End With
                Next
        End Select
    End Function

    Friend Function aaカード作成データー設定(ByRef rOldカード型 As Integer, ByRef rメニュータイトル As String, ByRef rメニューに表示 As Boolean, ByRef r縦横比率 As Single, ByRef r基準の倍数値横 As Single, ByRef r基準の倍数値縦 As Single, ByRef rポリゴン要素数 As Integer, ByRef rポリゴン() As POINTAPI, ByRef rUserCardMakeBoxスケール基数WD As Integer, ByRef rUserCardMakeBoxスケール基数HT As Integer) As Boolean
        Dim y1, wd, x1, m, idx, a, n, x2, ht, y2 As Integer
        Dim xbai, ybai As Single
        '-----------------------------------------------------------
        'Private Const cカード型USERmin As Integer = cUser0形 '9
        'Private Const cカード型Allmax As Integer = cUser7形  '16
        idx = rOldカード型 + cカード型USERmin  '2022/10/10          rOldカード型はリストのインデックスで、０　から　７
        '-----------------------------------------------------------
        With mカード型データー基本設定(idx)
            '2018/05/25 タイトルのダブりをチェックしてはいけない。　同じカードを別の形で上書きする場合もある。
            .メニュータイトル = Left(rメニュータイトル, 16)
            '-----------------------------------------------------------
            m = rポリゴン要素数 : ReDim .potsUSER(m)
            For a = 0 To m
                .potsUSER(a).X = rポリゴン(a).X : .potsUSER(a).Y = rポリゴン(a).Y
            Next
            x1 = rUserCardMakeBoxスケール基数WD : x2 = 0 : y1 = rUserCardMakeBoxスケール基数HT : y2 = 0
            For a = 0 To m
                With .potsUSER(a)
                    If x1 > .X Then x1 = .X
                    If x2 < .X Then x2 = .X
                    If y1 > .Y Then y1 = .Y
                    If y2 < .Y Then y2 = .Y
                End With
            Next
            wd = (x2 - x1) : ht = (y2 - y1)
            .基準比率 = (CSng(ht) * r基準の倍数値縦) / (CSng(wd) * r基準の倍数値横)
            'qqqqq Format(r基準の倍数値横, "#.######") + ",   " + Format(r基準の倍数値縦, "#.######")
            'qqqqq Format(.基準比率, "#.######")
            '-----------------------------------------------------------
            xbai = rUserCardMakeBoxスケール基数WD / CSng(wd) * CSng(cUserCardスケール基数WD) / CSng(rUserCardMakeBoxスケール基数WD)
            ybai = rUserCardMakeBoxスケール基数HT / CSng(ht) * CSng(cUserCardスケール基数HT) / CSng(rUserCardMakeBoxスケール基数HT)
            For a = 0 To m
                With .potsUSER(a)
                    .X = CInt(xbai * CSng(.X - x1))
                    .Y = CInt(ybai * CSng(.Y - y1))
                    'If .Y = 0 Then qqqqq CStr(a) + " ---> .Y=0"
                End With
            Next
            If m > 50 Then
                n = GMCOMⅩ画像の外枠の_POINT_配列を作成_縦線横線データーダブり削除(.potsUSER, True)
            End If
            'qqqqq CStr(m) + " ---> " + CStr(n)
            '-----------------------------------------------------------
            'カード型IDX = idx + 9
            'Call frmMain.pカード型のユーザー型メニュー文字列切り替え(カード型IDX, .メニュータイトル)
        End With
        Return True
    End Function

    Friend Function aaカード型データー読み書き(ByRef op As Integer, ByRef rwカードデーター As String, Optional ByRef idx As Integer = 0) As Boolean
        Dim d, b, a, c, n As Integer
        Dim s As String = "", cap As String = ""
        Dim TTT() As String = {""}
        Dim ppp() As String = {""}
        Select Case op
            Case 1001 'Me.Class_Initialize()
                '-------------------------------------------------------------
                For a = cカード型ALLmin To cカード型APPmax
                    With mカード型データー基本設定(a)
                        Select Case a
                            Case c四角形 : .メニュータイトルDEF = "四角形"
                            Case c円形 : .メニュータイトルDEF = "円形"
                            Case c六角形 : .メニュータイトルDEF = "六角形"
                            Case cひし形 : .メニュータイトルDEF = "ひし形"
                            Case c四つ葉形 : .メニュータイトルDEF = "四つ葉形"
                            Case cダルマ形 : .メニュータイトルDEF = "ダルマ形"
                            Case c十字形 : .メニュータイトルDEF = "十字形"
                            Case cダイヤ形 : .メニュータイトルDEF = "ダイヤ形"
                            Case cハート形 : .メニュータイトルDEF = "ハート形"
                        End Select
                        .メニュータイトル = .メニュータイトルDEF
                        .基準比率 = 1.0
                        ReDim .potsDEF(0)
                        ReDim .potsUSER(0)
                    End With
                Next
                '-------------------------------------------------------------
                For a = cカード型USERmin To cカード型Allmax
                    Select Case a
                        Case cUser0形 : s = "●ユーザー０型<>ユーザー０型<>1<>9<>185,0,815,0,1000,152,1000,808,818,1000,188,1000,0,811,0,161,185,0,<>"
                        Case cUser1形 : s = "●ユーザー１型<>ユーザー１型<>1<>12<>0,117,247,0,919,0,919,660,1000,660,997,1000,0,1000,3,660,103,660,103,355,0,359,0,117,<>"
                        Case cUser2形 : s = "●ユーザー２型<>ユーザー２型<>1<>13<>0,129,194,0,860,0,1000,102,1000,517,871,694,1000,699,997,1000,5,1000,8,578,140,420,8,417,0,129,<>"
                        Case cUser3形 : s = "●ユーザー３型<>ユーザー３型<>1<>16<>0,102,215,0,831,0,1000,102,1000,422,895,483,1000,552,1000,877,831,997,215,1000,3,877,3,634,118,634,118,355,3,355,0,102,<>"
                        Case cUser4形 : s = "●ユーザー４型<>ユーザー４型<>1<>12<>236,0,896,0,896,483,997,485,1000,882,896,882,896,1000,470,1000,472,882,0,882,0,449,236,0,<>"
                        Case cUser5形 : s = "●ユーザー５型<>ユーザー５型<>1<>14<>117,0,989,0,989,342,883,342,1000,568,997,825,806,1000,177,998,0,821,6,566,154,524,154,380,0,373,117,0,<>"
                        Case cUser6形 : s = "●ユーザー６型<>ユーザー６型<>1<>13<>191,0,814,0,997,105,997,352,884,352,884,484,1000,597,1000,856,881,1000,172,1000,0,856,0,105,191,0,<>"
                        Case cUser7形 : s = "●ユーザー７型<>ユーザー７型<>1<>8<>5,0,997,0,1000,334,818,1000,3,1000,130,463,0,461,5,0,<>"
                    End Select
                    Call aaカード型データー読み書き(1004, s, a)
                    With mカード型データー基本設定(a)
                        n = UBound(.potsUSER) : ReDim .potsDEF(n) : For b = 0 To n : .potsDEF(b).X = .potsUSER(b).X : .potsDEF(b).Y = .potsUSER(b).Y : Next
                        ReDim .potsUSER(0)
                    End With
                Next
                '-------------------------------------------------------------
            Case 1004 'Open from INI
                Dim nnn As Integer
                If idx < cカード型USERmin Then
                    nnn = cカード型APPmax + idx  ' from pユーザーカードのデーター_RW
                Else
                    nnn = idx ' from this function Case 1001 'Me.Class_Initialize()
                End If
                If nnn < cカード型USERmin Or nnn > cカード型Allmax Then Return False

                If 5 = Ⅹ文をカットして配列にする(rwカードデーター, "<>", TTT) Then
                    With mカード型データー基本設定(nnn)
                        .メニュータイトルDEF = TTT(1)
                        .メニュータイトル = TTT(2)
                        .基準比率 = Val(TTT(3))
                        'UBound(.potsUSER()) + 1 = Val(ttt(4))
                        ReDim .potsUSER(0)
                        c = Ⅹ文をカットして配列にする(TTT(5), ",", ppp)
                        If c > 1 Then
                            ReDim .potsUSER(c \ 2) : d = -1
                            For b = 1 To c Step 2
                                d = d + 1 : .potsUSER(d).X = Val(ppp(b)) : .potsUSER(d).Y = Val(ppp(b + 1))
                            Next
                            ReDim Preserve .potsUSER(d)
                        End If
                        cap = IIf(UBound(.potsUSER) > 1, .メニュータイトル, .メニュータイトルDEF)
                    End With
                End If
                '-------------------------------------------------------------
            Case 1005 'Save into INI   '2018/07/14  Me.Class_Initialize() で作成した .potsUSER() 配列が０になっているが、ユーザーが独自のデザインを作成しない状態では、これで正しい。
                rwカードデーター = ""
                Dim nnn As Integer = cカード型APPmax + idx
                If nnn < cカード型USERmin Or nnn > cカード型Allmax Then Return False

                With mカード型データー基本設定(nnn)
                    rwカードデーター = .メニュータイトルDEF & "<>" & .メニュータイトル & "<>" & CStr(.基準比率) & "<>" & CStr(UBound(.potsUSER) + 1) & "<>"
                    For a = 0 To UBound(.potsUSER)
                        rwカードデーター = rwカードデーター & CStr(.potsUSER(a).X) & "," & CStr(.potsUSER(a).Y) & ","
                    Next
                    rwカードデーター = rwカードデーター & "<>"
                End With
        End Select
        Return True
    End Function

#End Region

#Region "移動描画用のBMPを描画 / zz移動描画のサイズを設定してBMPとRGNデーターを作る / 現在のカードを描画 / ダミー計算"
    Private Function zz移動描画のサイズを設定してBMPとRGNデーターを作る(ByVal HDCTMP As Integer, ByRef SD As 円弧移動ウロウロ, ByRef r最初のデーター作成 As Boolean, ByRef r全画幅 As Integer, ByRef r全画高 As Integer, ByRef rw現在のカード型 As Integer, ByRef r文字描画のRECT As RECT) As Boolean
        '-----------------------------------------------------
        If mmゲームを停止する Then Return True
        '-----------------------------------------------------
        Dim dPRE画幅, dPRE画高 As Integer : Dim dPRE画幅オリジナル, dPRE画高オリジナル As Integer
        With SD

            ' '' ''2023/06/07 ???????????????????　ERROR!!  このコードを有効にすると、 ユーザー型のカードだけが、少しづつ小さくなっていく。
            ' '' ''If .再作成 = 759 And .RGN本体 <> 0 Then          'イベントgAppEventMaker_ユーザーカード型のデザインが変更されました   759 = ユーザーカード型のデザインが変更されました
            ' '' ''    dPRE画幅 = .bmpWD
            ' '' ''    dPRE画高 = .bmpHT
            ' '' ''2023/06/07 ???????????????????　ERROR!!  このコードを有効にすると、 カードサイズ枠の太さ  を変更するたびに、ユーザー型のカードだけが、少しづつ小さくなっていく。
            ' '' ''ElseIf .再作成 = 391 And .RGN本体 <> 0 Then      '2023/05/08 chande new   '391 = カードサイズ枠の太さ   
            ' '' ''    dPRE画幅 = .bmpWD
            ' '' ''    dPRE画高 = .bmpHT
            ' '' ''Else
            ''''''''''''''''''''''''''''
            ''''''''''''''''''''''''''''
            ' '' ''End If
            '-----------------------------------------------------
            '-----------------------------------------------------
            '-----------------------------------------------------
            '移動描画のカードサイズ計算
            Dim bai As Single = 0.07 * pゲームカードのサイズ
            dPRE画幅 = r全画幅 * bai : dPRE画高 = r全画高 * bai
            '-----------------------------------------------------
            If .大中小倍数 = 0 Then 'first time
                .大中小倍数設定済み = 0.6 + (Rnd() * 0.7)
            End If
            If pゲームカードのサイズ大中小BOOL Then  'True
                .大中小倍数 = .大中小倍数設定済み
            Else
                .大中小倍数 = 1.0#
            End If
            '-----------------------------------------------------
            dPRE画幅 = dPRE画幅 * .大中小倍数
            dPRE画高 = dPRE画高 * .大中小倍数
            '-----------------------------------------------------
            If p残り枚数でカードサイズ変更BOOL Then
                Dim jj As Single = Math.Max(10, aa残りカード枚数())
                bai = 7 / System.Math.Sqrt(jj ^ 0.75)            '残りカード枚数に合わせて　カードを大きくする
            Else
                bai = 7 / System.Math.Sqrt(mmカード枚数 ^ 0.75)  '枚数比でサイズ変更 (10, 25, 50, 100, 200, 300. 400)   2023/03/09
            End If
            dPRE画幅 = dPRE画幅 * bai : dPRE画高 = dPRE画高 * bai
            '-----------------------------------------------------
            dPRE画幅 = Math.Min(dPRE画幅, r全画幅 \ 5)
            dPRE画高 = Math.Min(dPRE画高, r全画高 \ 5)
            '-----------------------------------------------------
            dPRE画幅オリジナル = dPRE画幅
            dPRE画高オリジナル = dPRE画高
            '-----------------------------------------------------
            'リージョンと全範囲RECTと枠幅実寸を再設定
            '-----------------------------------------------------
            If r最初のデーター作成 Or .再作成 = 4 Or .再作成 = 8 Then
                rw現在のカード型 = pゲームカード型使用中の現在のIDX_NextSet()
                .カード型 = rw現在のカード型
            End If
            '-----------------------------------------------------
            If .背景色 = -1 Then
                Dim dcolors(5) As Integer
                Call Ⅹ色GradationColors5(ⅩHalfColor明るい(Ⅹ色RndColor(), 0.7), dcolors, 6)
                .背景色 = dcolors(5)
            End If
            '-----------------------------------------------------
            '移動描画用のBMPとRGNを削除と次の移動描画用のBMPとRGNを作る
            '-----------------------------------------------------
            '移動描画用のBMPとRGNを削除
            If r最初のデーター作成 Then .当り済み = False
            '-----------------------------------------------------
            If .bmp <> 0 Then Call DeleteObject(.bmp)
            If .RGN本体 <> 0 Then Call DeleteObject(.RGN本体)
            If .RGN描画 <> 0 Then Call DeleteObject(.RGN描画)
            If .RGN外枠 <> 0 Then Call DeleteObject(.RGN外枠)
            .bmp = 0 : .RGN本体 = 0 : .RGN描画 = 0 : .RGN外枠 = 0
            '****************************************************************
            '2023/03/02  かなカナのコードではフォームの縦横比に比例しているが、ウロウロでは、フォーム縦横比に合わせたズームは使用しない。　追加変更　場所
            Dim wカードのサイズ幅 As Integer, wカードのサイズ高 As Integer
            Dim wwhh = (dPRE画幅 + dPRE画高) \ 2
            dPRE画幅 = wwhh : dPRE画高 = wwhh
            '****************************************************************
            'qqqqq("zz移動描画....RGNデーターを作る() " & CStr(dPRE画幅))
            gggbol = aaゲームカード型リージョンを作る(False, .カード型, dPRE画幅, dPRE画高, .RGN本体, .RGN外枠, .カード型倍数, .枠幅実寸, wカードのサイズ幅, wカードのサイズ高)
            '-----------------------------------------------------
            .RGN描画 = CreateRectRgn(0, 0, 1, 1)
            gggint = CombineRgn(.RGN描画, .RGN本体, .RGN本体, RGN_COPY)
            '-----------------------------------------------------
            '****************************************************************
            '2023/06/05 new new
            '常時ズーム用の　.ズームbmp　も作るためのデーター
            wwhh = (dPRE画幅オリジナル + dPRE画高オリジナル) \ 2
            dPRE画幅オリジナル = wwhh
            dPRE画高オリジナル = wwhh
            gggbol = zzmm移動描画用のBMPを描画(SD, r文字描画のRECT, HDCTMP, dPRE画幅, dPRE画高, dPRE画幅オリジナル, dPRE画高オリジナル)
            '-----------------------------------------------------
            '常時ズーム用の　.ズームbmp　も作るためのデーター
            If .ズーム倍数MAX = 0 Then '最初の作成
                Dim mmm As Integer = 300 * (0.3 + Rnd())
                .ズーム倍数MAX = mmm
                ReDim .ズーム倍数bmpWD(mmm)       'カードのそれぞれのズーム bmpWD
                ReDim .ズーム倍数bmpHT(mmm)       'カードのそれぞれのズーム bmpHT
                ReDim .ズーム倍数offsetX(mmm)     'カードのそれぞれのズーム offsetX
                ReDim .ズーム倍数offSetY(mmm)     'カードのそれぞれのズーム offSetY
                .ズーム倍数IDX = Math.Max(1, mmm * Rnd())
            End If
            Dim mmmmm = .ズーム倍数MAX
            Dim psin As Single = 6.28 / CSng(mmmmm)
            Dim sng As Single
            Dim zmWD, zmHT As Integer
            For n As Integer = 1 To mmmmm
                sng = (2.0 + Math.Sin(psin * n)) / 3.0
                zmWD = .ズームbmpWD * sng
                zmHT = .ズームbmpHT * sng
                .ズーム倍数bmpWD(n) = zmWD
                .ズーム倍数bmpHT(n) = zmHT
                .ズーム倍数offsetX(n) = (.bmpWD - zmWD) \ 2
                .ズーム倍数offSetY(n) = (.bmpHT - zmHT) \ 2
            Next
            'qqqqq(CStr(" .ズーム倍数MAX = " & CStr(.ズーム倍数MAX)))
            '-----------------------------------------------------
            ReDim .移動ARY(0)
            .移動IDX = 0
        End With
    End Function

    Private Function zzmm移動描画用のBMPを描画(ByRef SD As 円弧移動ウロウロ, ByRef r文字描画のRECT As RECT, ByVal HDCTMP As Integer, ByVal dPRE画幅 As Integer, ByVal dPRE画高 As Integer, ByVal dPRE画幅オリジナル As Integer, ByVal dPRE画高オリジナル As Integer) As Boolean
        '-----------------------------------------------------
        If HDCTMP = 0 Then Return False
        If m文字画像用BMP = 0 Then Return False
        '-----------------------------------------------------
        '2021/04/10 ------------------------------------------------------------
        'ズームしながら外へ出ていくカードのビットマップ 移動RGN描画 --> 移動bmp は、少し大きめに、別に作っておいたほうが、拡大時のギザギザが少なくなくなる。
        '-----------------------------------------------------
        With SD
            If .移動RGN描画 <> 0 Then gggint = DeleteObject(.移動RGN描画) '存在したり、しなかったりするので注意
            .移動RGN描画 = 0
            If .移動RGN外枠 <> 0 Then gggint = DeleteObject(.移動RGN外枠) '存在したり、しなかったりするので注意
            .移動RGN外枠 = 0
            If .移動bmp <> 0 Then gggint = DeleteObject(.移動bmp)
            .移動bmp = 0
            '-----------------------------------------------------
            If .RGN描画 = 0 Then Return False
            '-----------------------------------------------------
            If dPRE画幅 = 0 Or dPRE画高 = 0 Then
                Dim xx, yy As Integer
                If Not Ⅹリージョンの位置とサイズ(.RGN描画, xx, yy, dPRE画幅, dPRE画高, 0, 0) Then Return False
            End If
            If dPRE画幅 < cヒットカード移動描画の品質確保の最小サイズ Then
                Dim wカードのサイズ幅 As Integer, wカードのサイズ高 As Integer
                dPRE画幅 = cヒットカード移動描画の品質確保の最小サイズ
                dPRE画高 = cヒットカード移動描画の品質確保の最小サイズ
                gggbol = aaゲームカード型リージョンを作る(False, .カード型, dPRE画幅, dPRE画高, .移動RGN描画, .移動RGN外枠, .カード型倍数, .枠幅実寸, wカードのサイズ幅, wカードのサイズ高)
            End If
        End With
        '2021/04/10 ------------------------------------------------------------
        '-----------------------------------------------------
        Dim oldbmp As Integer = SelectObject(HDCTMP, m文字画像用BMP)
        If oldbmp = 0 Then Return False
        '-----------------------------------------------------
        Dim RET As Boolean = False
        '-----------------------------------------------------
        Dim sss As String = ""
        With SD
            If .RGN描画 <> 0 Then
                Select Case frmMain.p基本モード
                    Case 1 : sss = .ミックス
                    Case 2 : sss = .文字がな ''''''''''2023/06/05  delete --- If frmMain.pがなガナも使用BOOL Then sss = .文字がな Else sss = .文字カナ
                    Case 3 : sss = .文字漢字
                    Case 4 : sss = .文字英字
                    Case 5 : sss = .ナンバー
                    Case 6 : sss = .記号
                    Case 7 : sss = .アイコン
                    Case 8 : sss = .いろイロ
                End Select
                ''-----------------------------------------------------
                'If True Then
                '    If True Then    
                '        qqqqq("***zzmm移動描画用のBMPを描画() " & sss)
                '    End If
                'End If
                ''-----------------------------------------------------
                Dim Rect幅 As Integer = ⅩRect幅(r文字描画のRECT)
                Dim Rect高 As Integer = ⅩRect高(r文字描画のRECT)
                '-----------------------------------------------------
                If InStr(sss, cAddChkStr星星) > 0 Then 'いろイロ or .ミックス
                    Call ⅩRectDraw(HDCTMP, r文字描画のRECT, Val(sss), 0, 0, 0, 0, False)
                ElseIf InStr(sss, cAddChkStr四角) > 0 Then  'アイコン or .ミックス
                    Dim wwhh As Integer = 128
                    '-----------------------------------------------------
                    Call SetStretchBltMode(HDCTMP, COLORONCOLOR)
                    Call PatBlt(HDCTMP, 0, 0, Rect幅, Rect高, WHITENESS)
                    Dim IcoIDX As Integer = Ⅹ数値範囲Int(1, mListMax, Val(sss))
                    Dim bmp = frmMain.mmpctICON_GDIBMP
                    If bmp <> 0 Then
                        Dim oldbmpbmp As Integer = SelectObject(ghDC2, bmp)
                        'HDCTMP = ghDC1 を使用している
                        gggint = StretchBlt(HDCTMP, (Rect幅 - wwhh) \ 2, (Rect高 - wwhh) \ 2, wwhh, wwhh, ghDC2, mLists(IcoIDX).lll, mLists(IcoIDX).ttt, 32, 32, SRCCOPY)
                        gggint = SelectObject(ghDC2, oldbmpbmp)
                    End If
                Else
                    Call ⅩRectDraw(HDCTMP, r文字描画のRECT, .背景色, 0, 0, 0, 0, False)
                    Dim nnn As Integer : Dim GDIfont As Integer
                    Dim bbb As Integer = InStr(sss, cAddChkStr米米)
                    If bbb > 0 Then
                        sss = Left(sss, bbb - 1)
                        nnn = 3 : GDIfont = m文字用フォントGDI数字用
                    Else
                        nnn = 2 : GDIfont = m文字用フォントGDI文字用
                    End If
                    Dim ccc As Integer
                    If frmMain.p基本モード = 6 Then
                        mm文字色Count = mm文字色Count + 1
                        ccc = mm文字色(1 + (mm文字色Count Mod 5))
                    Else
                        ccc = .文字色
                    End If
                    gggbol = Ⅹフォント描画_FromGDI(HDCTMP, GDIfont, r文字描画のRECT, sss, ccc)
                End If
                '-----------------------------------------------------
                Dim xx, yy, wd, ht As Integer
                Dim 枠幅実寸cur As Integer

                If Not Ⅹリージョンの位置とサイズ(.RGN描画, xx, yy, wd, ht, 1, 1) Then GoTo EXIT_POS '2018/05/27  修正　リージョンのサイズは０からカウントするので、実寸は +１大きくなる
                Dim n As Integer = ⅩBmpMakeMaskBackColorSet(ghDC2, wd, ht)
                If n <> 0 Then
                    'テストカウント = テストカウント + 1
                    'If テストカウント Mod 100 = 0 Then qqqqq CStr(テストカウント)
                    '-----------------------------------------------------
                    '2019/05/08  エラー修正
                    If .bmp <> 0 Then
                        'qqqqq CStr(.bmp)
                        gggint = DeleteObject(.bmp) : .bmp = 0
                    End If
                    '-----------------------------------------------------
                    .bmp = n : .bmpWD = wd : .bmpHT = ht
                    gggbol = ⅩBmpDrawMakeMask(ghDC2, .bmp, .RGN描画, 0, 0, True)
                    gggint = OffsetRgn(.RGN描画, .bmpWD, 0)
                    If .RGN外枠 <> 0 Then gggint = OffsetRgn(.RGN外枠, .bmpWD, 0)
                    '-----------------------------------------------------
                    枠幅実寸cur = pカードサイズ枠の太さ_描画用実寸_現在(.bmpWD, .bmpHT)             '.bmpWD * pカードサイズ枠の太さ実効値_現在() * 2
                    '-----------------------------------------------------
                    gggbol = ⅩBmpDrawStretchBlt(ghDC2, .bmp, .RGN描画, .RGN外枠, .bmpWD, 0, .bmpWD, .bmpHT, HDCTMP, 0, 0, Rect幅, Rect高, .Brsh枠, 枠幅実寸cur, mmBrsh黒色線, 1)
                    '-----------------------------------------------------
                    gggint = OffsetRgn(.RGN描画, -.bmpWD, 0)
                    If .RGN外枠 <> 0 Then gggint = OffsetRgn(.RGN外枠, -.bmpWD, 0)
                    RET = True
                    '-----------------------------------------------------
                    '**************************************************************************************************************************************
                    '**************************************************************************************************************************************
                    '**************************************************************************************************************************************
                    '**************************************************************************************************************************************
                    '**************************************************************************************************************************************
                    '2023/06/06 new １．５倍サイズ　(　cズームサイズ倍数MAX　)　の、カードズーム用の  .ズームbmp  を作る  ．．．ズームモードでない場合も作っておく。少し時間の無駄だが、モード切替に便利。
                    If True Then
                        '-----------------------------------------------------
                        If .ズームbmp <> 0 Then
                            gggint = DeleteObject(.ズームbmp) : .ズームbmp = 0
                        End If
                        '-----------------------------------------------------
                        If dPRE画幅オリジナル = 0 Then
                            gggbol = Ⅹリージョンの位置とサイズ(.RGN描画, xx, yy, dPRE画幅オリジナル, dPRE画高オリジナル, 0, 0)
                        End If
                        '-----------------------------------------------------
                        'Dim nn倍数 As Single = 1.5
                        '-----------------------------------------------------
                        Dim nnwd As Integer = dPRE画幅オリジナル * cズームサイズ倍数MAX : Dim nnht As Integer = dPRE画高オリジナル * cズームサイズ倍数MAX
                        '-----------------------------------------------------
                        Dim nn移動RGN描画, nn移動RGN外枠, wカードのサイズ幅, wカードのサイズ高 As Integer
                        '-----------------------------------------------------
                        If Not aaゲームカード型リージョンを作る(False, .カード型, nnwd, nnht, nn移動RGN描画, nn移動RGN外枠, .カード型倍数, .枠幅実寸, wカードのサイズ幅, wカードのサイズ高) Then
                            Debug.Print("Error Not Made ズームbmp RGN mmSD Index = " & CStr(mmSDIDX) & "  " & CStr(nnwd) & ", " & CStr(nnht))
                        Else
                            gggbol = Ⅹリージョンの位置とサイズ(nn移動RGN描画, xx, yy, nnwd, nnht, 1, 1) '2023/06/06  修正　リージョンのサイズは０からカウントするので、実寸は +１大きくなる
                            Dim nnn As Integer = ⅩBmpMakeMaskBackColorSet(ghDC2, nnwd, nnht)
                            If nnn = 0 Then
                                Debug.Print("Error Not Made ズームbmp mmSD Index = " & CStr(mmSDIDX) & "  " & CStr(nnwd) & ", " & CStr(nnht))
                            Else
                                .ズームbmp = nnn : .ズームbmpWD = nnwd : .ズームbmpHT = nnht
                                gggbol = ⅩBmpDrawMakeMask(ghDC2, .ズームbmp, nn移動RGN描画, 0, 0, True)
                                gggint = OffsetRgn(nn移動RGN描画, .ズームbmpWD, 0)
                                If nn移動RGN外枠 <> 0 Then gggint = OffsetRgn(nn移動RGN外枠, .ズームbmpWD, 0)
                                '-----------------------------------------------------
                                枠幅実寸cur = pカードサイズ枠の太さ_描画用実寸_現在(.ズームbmpWD, .ズームbmpHT)
                                '-----------------------------------------------------
                                gggbol = ⅩBmpDrawStretchBlt(ghDC2, .ズームbmp, nn移動RGN描画, nn移動RGN外枠, .ズームbmpWD, 0, .ズームbmpWD, .ズームbmpHT, HDCTMP, 0, 0, Rect幅, Rect高, .Brsh枠, 枠幅実寸cur, mmBrsh黒色線, 1)   '??????????? , 2)
                                '-----------------------------------------------------
                            End If
                        End If
                        If nn移動RGN描画 <> 0 Then
                            gggint = DeleteObject(nn移動RGN描画) : nn移動RGN描画 = 0
                        End If
                        If nn移動RGN外枠 <> 0 Then
                            gggint = DeleteObject(nn移動RGN外枠) : nn移動RGN外枠 = 0
                        End If

                    End If
                    '**************************************************************************************************************************************
                    '**************************************************************************************************************************************
                    '**************************************************************************************************************************************
                    '**************************************************************************************************************************************
                    '**************************************************************************************************************************************
                    '2023/04/10 new-----------------------------------------
                    'ズームしながら外へ出ていくカードのビットマップは、少し大きめに、別に作っておいたほうが、拡大時のギザギザがなくなる
                    '-----------------------------------------------------
                    If .移動RGN描画 <> 0 Then
                        If Not Ⅹリージョンの位置とサイズ(.移動RGN描画, xx, yy, wd, ht, 1, 1) Then GoTo EXIT_POS '2018/05/27  修正　リージョンのサイズは０からカウントするので、実寸は +１大きくなる
                        n = ⅩBmpMakeMaskBackColorSet(ghDC2, wd, ht)
                        If n <> 0 Then
                            '-----------------------------------------------------
                            '2019/05/08  エラー修正
                            If .移動bmp <> 0 Then
                                'qqqqq CStr(.bmp)
                                gggint = DeleteObject(.移動bmp) : .移動bmp = 0
                            End If
                            '-----------------------------------------------------
                            .移動bmp = n : .移動bmpWD = wd : .移動bmpHT = ht
                            gggbol = ⅩBmpDrawMakeMask(ghDC2, .移動bmp, .移動RGN描画, 0, 0, True)
                            gggint = OffsetRgn(.移動RGN描画, .移動bmpWD, 0)
                            If .移動RGN外枠 <> 0 Then gggint = OffsetRgn(.移動RGN外枠, .移動bmpWD, 0)

                            枠幅実寸cur = pカードサイズ枠の太さ_描画用実寸_現在(.移動bmpWD, .移動bmpHT)

                            gggbol = ⅩBmpDrawStretchBlt(ghDC2, .移動bmp, .移動RGN描画, .移動RGN外枠, .移動bmpWD, 0, .移動bmpWD, .移動bmpHT, HDCTMP, 0, 0, Rect幅, Rect高, .Brsh枠, 枠幅実寸cur, mmBrsh黒色線, 1)
                            gggint = OffsetRgn(.移動RGN描画, -.移動bmpWD, 0)
                            If .移動RGN外枠 <> 0 Then gggint = OffsetRgn(.移動RGN外枠, -.移動bmpWD, 0)
                            RET = True
                            'If True Then
                            '    テストカウント = テストカウント + 1
                            '    If テストカウント Mod 10 = 0 Then qqqqq(CStr(テストカウント) & " ビットマップ大　" & CStr(wd) & ", " & CStr(ht))
                            'End If
                        Else
                            Debug.Print("Error Not Made 移動RGN描画BMP mmSD Index = " & CStr(mmSDIDX) & "  " & CStr(wd) & ", " & CStr(ht))
                        End If
                    End If
                    If .移動RGN描画 <> 0 Then
                        gggint = DeleteObject(.移動RGN描画) : .移動RGN描画 = 0
                    End If
                    If .移動RGN外枠 <> 0 Then
                        gggint = DeleteObject(.移動RGN外枠) : .移動RGN外枠 = 0
                    End If
                Else
                    Debug.Print("Error Not Made 移動描画用BMP mmSD Index = " & CStr(mmSDIDX) & "  " & CStr(wd) & ", " & CStr(ht))
                End If
            Else
                Debug.Print("Error Not Made 移動描画用BMP mmSD Index = " & CStr(mmSDIDX) & "   .RGN描画 = 0 ")
            End If
            '-----------------------------------------------------
            'If True Then
            '    If pカード枚数CURVAL <= 50 Then
            '        qqqqq("***zzmm移動描画用のBMPを描画() " & sss)
            '    End If
            'End If
            '-----------------------------------------------------
        End With
        '-----------------------------------------------------
EXIT_POS:
        If oldbmp <> 0 Then
            gggint = SelectObject(HDCTMP, oldbmp)
        End If
        '-----------------------------------------------------
        Return RET
    End Function

    Friend Function aa現在のカードを描画() As Boolean
        Return zzmm現在のカードを描画(0, 0)
    End Function

    Private Function zzmm現在のカードを描画(ByRef Index As Integer, ByRef d全画幅 As Integer) As Boolean
        Static CurIndex, Cur全画幅 As Integer
        Dim pct現在のカード As PictureBox = frmMain.pct現在のカード
        If Index = 0 Then
            Index = CurIndex : d全画幅 = Cur全画幅
        End If
        Dim xx As Integer = mmSD(Index).bmpWD + 30
        Dim yy As Integer = mmSD(Index).bmpHT + 30
        With pct現在のカード
            Dim dx As Integer = (.Width - xx) \ 2
            Dim dy As Integer = (.Height - yy) \ 2
            .SetBounds((.Left + dx), (.Top + dy), xx, yy)
            Call frmMain.p現在のカードボックスの位置を設定()
        End With
        Dim g As Graphics = Graphics.FromImage(pct現在のカード.Image)
        If g IsNot Nothing Then
            Dim brs As New SolidBrush(ⅩColor構造体_from_色値(Ⅹ色LONG値(frmMain.p配色データー背景色pct現在のカード)))
            If brs IsNot Nothing Then
                g.FillRectangle(brs, 0, 0, pct現在のカード.Image.Width, pct現在のカード.Image.Height)
            End If
            Dim hDC As Integer = g.GetHdc
            If hDC <> 0 Then
                With mmSD(Index)
                    Dim oldBmp As Integer = SelectObject(ghDC2, .bmp)
                    If oldBmp <> 0 Then
                        xx = (pct現在のカード.ClientRectangle.Width - .bmpWD) \ 2
                        yy = (pct現在のカード.ClientRectangle.Height - .bmpHT) \ 2
                        gggint = BitBlt(hDC, xx, yy, .bmpWD, .bmpHT, ghDC2, 0, 0, SRCPAINT)
                        gggint = BitBlt(hDC, xx, yy, .bmpWD, .bmpHT, ghDC2, .bmpWD, 0, SRCAND)
                        gggint = SelectObject(ghDC2, oldBmp)
                    End If
                End With
                g.ReleaseHdc(hDC)
            End If
            g.Dispose()
        End If
        pct現在のカード.Refresh()
        CurIndex = Index
        Cur全画幅 = d全画幅
        pct現在のカード.Visible = True
        Return True
    End Function

    Private Function zzスピード調整ダミー計算_画面サイズの大小に合わせて() As Integer
        Dim n, d As Double
        Dim a As Integer
        n = 1920 * 1080 / mm現在のウインドウ面積
        If n > 1.5 Then
            n = n * n * n * n
            For a = 1 To n
                d = a * 1.123456 / 3.2598 * 1.55897 / 300.256 * 987.268 / 5698.2358 / 0.236598 * 0.45698 / 1.2356 / 2.36598 * 123.698 / 123.59874 * 1000
            Next
        End If
        zzスピード調整ダミー計算_画面サイズの大小に合わせて = 1
    End Function

#End Region

#Region "ゲームの開始 / ゲームの停止 / ゲーム実行中です / 再作成モードの設定 /"

    '***********************************************************************
    Friend Function aaゲームの停止() As Boolean
        mmゲームを停止する = True
    End Function
    '***********************************************************************
    Friend Function aaゲームの開始() As Boolean
        'qqqqq "aaゲームの開始()"
        '**********************************************************
        Static dDoEventsCall As Boolean, dDoLoopCount As Integer, drc全画面 As RECT, d全画高 As Integer, d全画幅 As Integer, d最大全長 As Integer
        Static OLD全画幅 As Integer, OLD全画高 As Integer, OLDp画像ファイル現在使用 As String, OLDpゲーム背景画像の明るさ As Single
        '**********************************************************
        Dim d現在のカード型, d現在の前の枚数, d現在の枚数, d現在の前のカード As Integer
        Dim d最初のデーター作成, dリセット再スタート As Boolean
        Dim m残りの枚数前回 As Integer
        '------------------------------------------------------------------
        Dim d文字描画のRECT As RECT : Dim rc As RECT
        '------------------------------------------------------------------
        Dim x0, x1, y0, y1, n, a, IDX, oldBmp As Integer : Dim nnn(20) As Integer
        Dim ループの最初の呼び出し As Boolean
        Dim まとめ描画BMP As Integer = 0 : Dim まとめ描画BMP_old As Integer = 0
        Dim ghDC2BMP As Integer = 0 : Dim ghDC2BMP_old As Integer = 0
        '------------------------------------------------------------------
        If mまとめ描画HDC = 0 Then
            qqqqq("ERROR in aaゲームの開始()  mまとめ描画HDC = 0")
            Return False
        End If
        '------------------------------------------------------------------
        If dDoEventsCall Then
            qqqqq("dDoEventsCall")
            Return True
        End If
        '******************************************************************
        gggstr = イベントgAppEventMaker.MakeEventゲーム開始と停止(True, "")
        '******************************************************************
        gmウロウロポイポイ実行中_FormReSize = False
        mmゲームを停止する = False
        ppゲーム実行中 = True
        mmカード枚数 = 0
        '------------------------------------------------------------------
        pゲーム背景画像の切り替え_カレントカウント = 0
        gggbol = イベントgAppEventMaker.MakeEventタイマーのオンオフonスイスイonff(gmDlgFileゲーム用, True) 'ppゲーム実行中=True が必要
        '------------------------------------------------------------------
        Call SetRect(d文字描画のRECT, 0, 0, 200, 200) '文字と画像カード用に pct文字画像用 を設定する
        gggbol = aaフォントGDI作成と破棄(1)
        '******************************************************************
        '------------------------------------------------------------------
        '2023/04/04 new
        gggint = zz当りカードの移動操作(100, mmSD(0), 0, 0, 0, 0, 0)
        '------------------------------------------------------------------
リセット再スタート:
        qqqqq("リセット再スタート")
        If mmカード枚数 <> pカード枚数CURVAL Then
            gggbol = frmMain.ゲームデーター表示(0, (pカード枚数CURVAL), (pカード枚数CURVAL))
        End If
        dリセット再スタート = False
        m画像の移動とズーム = True
        '******************************************************************
        gggbol = aaゲームの開始_sub_SetFormSizeData(d全画幅, d全画高, d最大全長, drc全画面)          'GoSub SetFormSizeData '実行中に Form_ReSize のイベントが入った場合に、別の関数から呼び出されている。
        '*****************************************************
        gggstr = zzゲーム描画用ファイル新規設定(DlgFileゲーム用.p画像ファイル現在使用, True)       'ここで、mImgウロウロ現在のサイズ　は現在のフォームサイズに設定済みである
        '*****************************************************
        With mImgウロウロ現在のサイズ
            Call イベントgAppEventMaker_ユラユラ移動コピー用データーができました(0, 0, .Width, .Height, 0, 0, .Width, .Height)
        End With
        '*****************************************************
        Dim 全画幅 As Integer = frmMain.ClientSize.Width
        Dim 全画高 As Integer = frmMain.ClientSize.Height - frmMain.mMenuHight
        Dim 最大全長 As Integer = System.Math.Sqrt(全画幅 * 全画高) * 2.0#  '配列の延長は、１．５から２倍になるので、その補正。
        '*****************************************************
        '複数回の描画操作をまとめるための BMP を用意する。
        If OLD全画幅 <> 全画幅 Or OLD全画高 <> 全画高 Or ghDC2BMP = 0 Or OLDpゲーム背景画像の明るさ <> pゲーム背景画像の明るさ Then
            If まとめ描画BMP_old <> 0 Then SelectObject(mまとめ描画HDC, まとめ描画BMP_old)
            まとめ描画BMP_old = 0
            If まとめ描画BMP <> 0 Then gggint = DeleteObject(まとめ描画BMP)
            まとめ描画BMP = ⅩBmpMakeFromImage(mImgウロウロ現在のサイズ)
            '-----------------------------------
            If ghDC2BMP_old <> 0 Then SelectObject(ghDC2, ghDC2BMP_old)
            ghDC2BMP_old = 0
            If ghDC2BMP <> 0 Then gggint = DeleteObject(ghDC2BMP)
            ghDC2BMP = ⅩBmpMakeFromImage(mImgウロウロ現在のサイズ)
            '-----------------------------------
            OLDp画像ファイル現在使用 = DlgFileゲーム用.p画像ファイル現在使用
            '-----------------------------------
            '消えるカード用のデーターを消す
            If OLD全画幅 <> 全画幅 Or OLD全画高 <> 全画高 Then
                gggint = zz当りカードの移動操作(1000, mmSD(0), 0, 0, 0, 0, 0)
            End If
            '-----------------------------------
        End If
        If OLDp画像ファイル現在使用 <> DlgFileゲーム用.p画像ファイル現在使用 Then
            If ghDC2BMP_old <> 0 Then SelectObject(ghDC2, ghDC2BMP_old)
            ghDC2BMP_old = 0
            If ghDC2BMP <> 0 Then gggint = DeleteObject(ghDC2BMP)
            ghDC2BMP = ⅩBmpMakeFromImage(mImgウロウロ現在のサイズ)
        End If
        OLD全画幅 = 全画幅 : OLD全画高 = 全画高 : OLDp画像ファイル現在使用 = DlgFileゲーム用.p画像ファイル現在使用 : OLDpゲーム背景画像の明るさ = pゲーム背景画像の明るさ
        '*****************************************************
        まとめ描画BMP_old = SelectObject(mまとめ描画HDC, まとめ描画BMP)
        gggint = SetStretchBltMode(mまとめ描画HDC, COLORONCOLOR)
        ghDC2BMP_old = SelectObject(ghDC2, ghDC2BMP)
        gggint = SetStretchBltMode(ghDC2, COLORONCOLOR)
        '*****************************************************
        '*****************************************************
        '*****************************************************
        If gmウロウロポイポイ実行中_FormReSize = True Then
            gmウロウロポイポイ実行中_FormReSize = False
        Else
            mmカード枚数 = pカード枚数CURVAL
            '------------------------------------------------------------------
            'ゲームスタート時のカード枚数による文字群の再設定
            x0 = mm前回のカード文字コピースタート位置
            If (dリセット再スタート = False) Or (mm前回のカード枚数 = mmカード枚数) Then x0 = x0 + 1 '新しいスタートでは、前回の文字位置から１文字ずらして文字をセットする。リセット再スタートでは前回のまま
            If x0 > 10 Or x0 < 1 Then x0 = 1
            Call aa文字データー使用配列の設定(mmカード枚数, x0)
            mm前回のカード文字コピースタート位置 = x0
            '------------------------------------------------------------------
            '------------------------------------------------------------------
            d現在の前のカード = 0 : mm現在のカード = 0 : d現在のカード型 = 0
            '------------------------------------------------------------------
            Call aaゲーム終了時の_BMPとRGNの削除()
            '------------------------------------------------------------------
            d最初のデーター作成 = True
            Randomize()
            For mmSDIDX = 1 To mmカード枚数
                Call zz移動描画のサイズを設定してBMPとRGNデーターを作る(ghDC1, mmSD(mmSDIDX), d最初のデーター作成, d全画幅, d全画高, d現在のカード型, d文字描画のRECT)
                With mmSD(mmSDIDX)
                    Call ooRandMode.aa移動体を一つ作成(mmSDIDX, .bmpWD, .bmpHT, x1, y1)
                    Call GetRgnBox(.RGN本体, rc)
                    Call OffsetRgn(.RGN本体, x1 - rc.lll, y1 - rc.ttt)
                End With
            Next
            d最初のデーター作成 = False
            '------------------------------------------------------------------
            mm現在のカード = Math.Max(1, CInt(Rnd() * mmカード枚数))
            d現在の前の枚数 = mmカード枚数 : d現在の枚数 = mmカード枚数 : dDoLoopCount = 0
            '------------------------------------------------------------------
            mm現在の残り枚数 = mmカード枚数 : m残りの枚数前回 = mm現在の残り枚数
            '------------------------------------------------------------------
            For IDX = 1 To mmカード枚数 : mmSD描画順番(IDX) = IDX : Next
            '------------------------------------------------------------------
            gggbol = zzmm現在のカードを描画(0, 0)
            '------------------------------------------------------------------
            '2018/08/19  タイマーカウントを停止させるために
            'If g表示frmDlgModeSet Then gmタイマー停止する = True '
            'If g表示frmDlgCardUseSet Then gmタイマー停止する = True '
            'If g表示frmDlgColorSet Then gmタイマー停止する = True '
            '------------------------------------------------------------------
            If m画像の移動とズーム Then ループの最初の呼び出し = True Else ループの最初の呼び出し = False
            '------------------------------------------------------------------
        End If

        '' '' ''@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        ' '' ''If True Then  'デバッグコード
        ' '' ''    '------------------------------------------------------------------
        ' '' ''    For a = 1 To 180 : qqqqq(Format(a, "000") + "  " + CStr(mmSD(a).文字カナ)) : Next : qqqqq("******** x0 index=" + CStr(x0))
        ' '' ''    For a = 1 To 100 : qqqqq(CStr(mmSD(a).文字漢字)) : Next : qqqqq("******** x0 index=" + CStr(x0))
        ' '' ''    For a = 1 To 100 : qqqqq(CStr(mmSD(a).文字英字)) : Next : qqqqq("******** x0 index=" + CStr(x0))
        ' '' ''    For a = 1 To 100 : qqqqq(CStr(mmSD(a).ナンバー)) : Next : qqqqq("******** x0 index=" + CStr(x0))
        ' '' ''    For a = 1 To 100 : qqqqq(CStr(mmSD(a).記号)) : Next : qqqqq("******** x0 index=" + CStr(x0))
        ' '' ''    For a = 1 To 400 : qqqqq(CStr(mmSD(a).アイコン)) : Next : qqqqq("******** x0 index=" + CStr(x0))
        ' '' ''    For a = 1 To 200 : qqqqq(CStr(mmSD(a).ミックス)) : Next : qqqqq("******** x0 index=" + CStr(x0))
        ' '' ''    '------------------------------------------------------------------
        ' '' ''    qqqqq(CStr(mmカード枚数) + " *********************")
        ' '' ''    For a = 1 To mmカード枚数
        ' '' ''        ss = mmSD(a).ミックス
        ' '' ''        For b = 1 To mmカード枚数
        ' '' ''            If a <> b Then
        ' '' ''                If ss = mmSD(b).ミックス Then
        ' '' ''                    qqqqq("文字重複エラー  " + CStr(a) + " -- " + CStr(b) + " - " + ss)
        ' '' ''                End If
        ' '' ''            End If
        ' '' ''        Next
        ' '' ''    Next
        ' '' ''End If
        '------------------------------------------------------------------          '' '' ''------------------------------------------------------------------
        ' '' ''If True Then   'デバッグコード
        ' '' ''    m = 0
        ' '' ''    For a = 1 To mmカード枚数
        ' '' ''        ss = mmSD(a).文字カナ   ' .文字がな
        ' '' ''        '    ss = mmSD(a).文字英字
        ' '' ''        '    ss = mmSD(a).記号
        ' '' ''        n = mmSD(a).カード型
        ' '' ''        For b = 1 To mmカード枚数
        ' '' ''            If a <> b Then
        ' '' ''                tt = mmSD(b).文字カナ
        ' '' ''                '            tt = mmSD(b).文字英字
        ' '' ''                '            tt = mmSD(b).記号
        ' '' ''                If ss = tt Then
        ' '' ''                    If n = mmSD(b).カード型 Then
        ' '' ''                        '                    qqqqq "カード型 and 文字重複エラー  " + CStr(a) + " -- " + CStr(b) + " - " + ss
        ' '' ''                        m = m + 1
        ' '' ''                    End If
        ' '' ''                End If
        ' '' ''            End If
        ' '' ''        Next
        ' '' ''    Next
        ' '' ''    qqqqq("****** " + CStr(mmカード枚数) + " / " + CStr(m \ 2))
        ' '' ''End If
        '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        Do
            '*****************************************************
            If gmウロウロポイポイ実行中_FormReSize = True Then
                GoTo リセット再スタート
            ElseIf dリセット再スタート Then
                GoTo リセット再スタート
            ElseIf mmカード枚数 <> pカード枚数CURVAL Then
                GoTo リセット再スタート
            End If
            '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            gggint = SetStretchBltMode(mまとめ描画HDC, COLORONCOLOR)
            '' ''Dim 全画幅 As Integer = frmMain.ClientSize.Width
            '' ''Dim 全画高 As Integer = frmMain.ClientSize.Height - frmMain.mMenuHight
            If pゲーム背景画像を表示BOOL Then  '2023/05/23
                If m画像の移動とズーム Then    ' (gmスイスイユラユラ実行中 <> 1) Then
                    mループの最初の呼び出し = ループの最初の呼び出し '(カード枚数OLD <> カード枚数)
                    Call ooユラユラ.aa描画の移動一ステップ(mループの最初の呼び出し, frmMain)
                    mループの最初の呼び出し = False '2019/10/19 add
                    ループの最初の呼び出し = False
                    gggint = StretchBlt(mまとめ描画HDC, 0, 0, mMvZm受け幅, mMvZm受け高, ghDC2, mMvZm送り左, mMvZm送り上, mMvZm送り幅, mMvZm送り高, SRCCOPY)
                Else
                    gggint = BitBlt(mまとめ描画HDC, 0, 0, 全画幅, 全画高, ghDC2, 0, 0, SRCCOPY)
                End If
            Else
                Dim rrcc As RECT
                gggbol = ⅩRectDraw(mまとめ描画HDC, rrcc, (frmMain.p配色データー背景色), 0, 0, 全画幅, 全画高, False)
            End If
            '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            '------------------------------------------------------------------
            Dim カードをズーミングする As Boolean = pカードをズーミングBOOL : Dim eee, wwww, hhhh, xxxx, yyyy As Integer
            '------------------------------------------------------------------
            mm現在の残り枚数 = 0
            For IDX = 1 To mmカード枚数
                mmSDIDX = mmSD描画順番(IDX)
                With mmSD(mmSDIDX)
                    If .当り済み = False Then
                        mm現在の残り枚数 = mm現在の残り枚数 + 1
                        If ooRandMode.aa現在と前回の位置データー(mmSDIDX, x1, y1, x0, y0) = True Then ' この呼び出し前にウインドウが小さくなっていると、Loop Over　エラーが発生するが問題はない。
                            '-----------------------------------------------------
                            If カードをズーミングする And .ズームbmp <> 0 Then
                                oldBmp = SelectObject(ghDC1, .ズームbmp)
                                If oldBmp <> 0 Then
                                    .ズーム倍数IDX = .ズーム倍数IDX + 1
                                    If .ズーム倍数IDX > .ズーム倍数MAX Then .ズーム倍数IDX = 1
                                    eee = .ズーム倍数IDX
                                    wwww = .ズーム倍数bmpWD(eee)
                                    hhhh = .ズーム倍数bmpHT(eee)
                                    xxxx = .ズーム倍数offsetX(eee)
                                    yyyy = .ズーム倍数offSetY(eee)
                                    a = StretchBlt(mまとめ描画HDC, x1 + xxxx, y1 + yyyy, wwww, hhhh, ghDC1, 0, 0, .ズームbmpWD, .ズームbmpHT, SRCPAINT)
                                    a = StretchBlt(mまとめ描画HDC, x1 + xxxx, y1 + yyyy, wwww, hhhh, ghDC1, .ズームbmpWD, 0, .ズームbmpWD, .ズームbmpHT, SRCAND)
                                    a = SelectObject(ghDC1, oldBmp)
                                End If
                            Else
                                oldBmp = SelectObject(ghDC1, .bmp)
                                If oldBmp <> 0 Then
                                    a = BitBlt(mまとめ描画HDC, x1, y1, .bmpWD, .bmpHT, ghDC1, 0, 0, SRCPAINT)
                                    a = BitBlt(mまとめ描画HDC, x1, y1, .bmpWD, .bmpHT, ghDC1, .bmpWD, 0, SRCAND)
                                    a = SelectObject(ghDC1, oldBmp)
                                End If
                            End If
                            '-----------------------------------------------------
                            x0 = x1 - x0 : y0 = y1 - y0
                            If x0 <> 0 Or y0 <> 0 Then
                                Call OffsetRgn(.RGN本体, x0, y0)
                                'Call GetRgnBox(.RGN本体, rc)
                                'If mmSDIDX = 10 Then qqqqq "rgn = " + CStr(rc.left) + ", " + CStr(rc.ttt) + "    card = " + CStr(x1) + ", " + CStr(y1)
                            End If
                        End If
                        '-----------------------------------------------------
                        '569 = aaForm_Resize_カードを再作成  この呼び出し前にウインドウが小さくなっていると、直前の呼び出し　aa現在と前回の位置データー() 内で　Loop Over　エラーが発生するが問題はない。
                        If .再作成 = 569 Then
                            Call zz移動描画のサイズを設定してBMPとRGNデーターを作る(ghDC1, mmSD(mmSDIDX), d最初のデーター作成, d全画幅, d全画高, d現在のカード型, d文字描画のRECT)
                            Call ooRandMode.aa移動体のサイズ変更(mmSDIDX, mmリサイズ比率幅, mmリサイズ比率高, .bmpWD, .bmpHT, x1, y1)
                            Call GetRgnBox(.RGN本体, rc)
                            Call OffsetRgn(.RGN本体, x1 - rc.lll, y1 - rc.ttt)
                            d現在の前のカード = 0
                            '--------------------------------------------------------------------
                            '--------------------------------------------------------------------
                        ElseIf a = 9875 Then  'ズームモード　on / off
                            '2023/06/07.... 取り消し...  常にズーム用の BMP も作成しておく。
                            '--------------------------------------------------------------------
                            '--------------------------------------------------------------------
                            '2 = bmp のみ フォントと色   
                            '9 = p基本モードのミックスモード変更実行
                        ElseIf .再作成 = 2 Or .再作成 = 9 Then  '
                            Call zzmm移動描画用のBMPを描画(mmSD(mmSDIDX), d文字描画のRECT, ghDC1, 0, 0, 0, 0)
                            If mmSDIDX = mm現在のカード Then Call zzmm現在のカードを描画(mm現在のカード, d全画幅)
                            '--------------------------------------------------------------------
                            'リアルタイムでモードが変更された場合の処理
                            '--------------------------------------------------------------------
                            '--------------------------------------------------------------------
                            '1 = カードサイズ  or  p残り枚数でカードサイズ変更 = 0
                            '4 = カード型の変更    
                            '5 = 大中小モード   
                            '8 = pカード型のミックスモード変更実行
                            '391 = カードサイズ枠の太さ     
                            '392 =ゲームカードのサイズ     
                            '759 = ユーザーカード型のデザインが変更されました
                        ElseIf .再作成 = 1 Or .再作成 = 4 Or .再作成 = 5 Or .再作成 = 8 Or .再作成 = 391 Or .再作成 = 392 Or .再作成 = 759 Then
                            If .再作成 = 8 Or .再作成 = 4 Then
                                '????????????? a = frmMain.ooポイウロ.pカード型のミックスモードIDXS実行用(d現在のカード型IDX)
                            End If
                            Call zz移動描画のサイズを設定してBMPとRGNデーターを作る(ghDC1, mmSD(mmSDIDX), d最初のデーター作成, d全画幅, d全画高, d現在のカード型, d文字描画のRECT)
                            If mmSDIDX = mm現在のカード Then Call zzmm現在のカードを描画(mm現在のカード, d全画幅)
                            Call ooRandMode.aa移動体のサイズ変更(mmSDIDX, 1.0#, 1.0#, .bmpWD, .bmpHT, x1, y1)
                            Call GetRgnBox(.RGN本体, rc)
                            Call OffsetRgn(.RGN本体, x1 - rc.lll, y1 - rc.ttt)
                            '--------------------------------------------------------------------
                            '--------------------------------------------------------------------
                        ElseIf .再作成 = 6 Then
                            Call ooRandMode.aaAll_Set0_次の軌道中心変更までの角ラジアンABS()
                        End If
                        '--------------------------------------------------------------------
                        .再作成 = 0 '0 = 全て再作成
                    End If
                End With
                'x0 = zzスピード調整ダミー計算_画面サイズの大小に合わせて()
            Next
            '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            '*****************************************************
            '------------------------------------------------------------------
            gggint = zz当りカードの移動操作(1, mmSD(mmCurHitSDIDX), 0, mまとめ描画HDC, ghDC1, 0, 0)
            '------------------------------------------------------------------
            '*****************************************************
            '------------------------------------------------------------------
            If frmMain.pctメイン.Visible Then frmMain.pctメイン.Visible = False
            '------------------------------------------------------------------
            Dim HDCfrmMain As Integer = GetDC(frmMain.Handle)
            If HDCfrmMain <> 0 Then
                gggint = BitBlt(HDCfrmMain, 0, frmMain.mMenuHight, d全画幅, d全画高, mまとめ描画HDC, 0, 0, SRCCOPY)
                gggint = ReleaseDC(frmMain.Handle, HDCfrmMain)
            End If
            '-----------------------------------------------------
            If d現在の前のカード <> mm現在のカード Then
                Call zzmm現在のカードを描画(mm現在のカード, d全画幅)
                d現在の前のカード = mm現在のカード
            End If
            '-----------------------------------------------------
            If mm現在の残り枚数 > 10 Then
                If p残り枚数でカードサイズ変更BOOL Then
                    Dim bbb As Integer = mm現在の残り枚数 \ 10  '400 \ 10    20 \ 10
                    If m残りの枚数前回 - mm現在の残り枚数 >= bbb Then
                        m残りの枚数前回 = mm現在の残り枚数
                        Call aa再作成モードの設定(1)
                        'qqqqq("Call aa再作成モードの設定(1)")
                    End If
                End If
            End If
            '-----------------------------------------------------
            d現在の枚数 = mm現在の残り枚数
            If d現在の前の枚数 <> d現在の枚数 Then
                d現在の前の枚数 = d現在の枚数
            End If
            '-----------------------------------------------------
            If d現在の枚数 = 0 And mmCurHitSDIDX = 0 Then Exit Do '2023/03/19  change If d現在の枚数 = 0 Then Exit Do
            '-----------------------------------------------------
            If mmゲームを停止する Then Exit Do
            If gmアプリ終了する Then Exit Do
            '*****************************************************
            '2018/03/15 add  探すカードを最上位置に移す。
            If mmSD描画順番(mmカード枚数) <> mm現在のカード Then
                'qqqqq "mmSD描画順番(mmカード枚数) <> mm現在のカード"
                For a = 1 To mmカード枚数
                    If mmSD描画順番(a) = mm現在のカード Then
                        For n = a To mmカード枚数 - 1
                            mmSD描画順番(n) = mmSD描画順番(n + 1)
                        Next
                        mmSD描画順番(mmカード枚数) = mm現在のカード
                        Exit For
                    End If
                Next
            End If
            '*****************************************************
            '*****************************************************
            '重要　ウインドウがアイコン化されているときは、このコード群の処理は中断する。
            Dim LoopInFlag As Boolean = True
            Do While (frmMain.WindowState = FormWindowState.Minimized)
                If LoopInFlag Then
                    gggint = zz当りカードの移動操作(2000, mmSD(0), 0, 0, 0, 0, 0)
                    LoopInFlag = False
                End If
                dDoEventsCall = True : Application.DoEvents() : dDoEventsCall = False
                If (frmMain.WindowState <> FormWindowState.Minimized) Then Exit Do
                Call Sleep(500)
            Loop
            '*****************************************************
            '*****************************************************
            '2018/07/06 マウス位置とカードの位置のズレをなくすため、マウスイベントがあればすぐに実行できるようにする
            '重要
            dDoLoopCount = dDoLoopCount + 1
            If dDoLoopCount Mod 2 = 0 Then '2018/07/06 変更    If dDoLoopCount Mod 10 = 0 Then
                '重要'重要'重要'重要
                gmDoEventsゲームループ内で呼び出し中 = True
                dDoEventsCall = True : Application.DoEvents() : dDoEventsCall = False
                gmDoEventsゲームループ内で呼び出し中 = False
                '重要'重要'重要'重要
            End If
            '2018/07/06 マウス位置とカードの位置のズレをなくすため、マウスイベントがあればすぐに実行できるようにする
            '-----------------------------------------------------
            'Call ⅩDebugCountOutPutgg("in Game loop ", デバッグカウント, 500, 500)
            '-----------------------------------------------------
            If mmゲームを停止する Then Exit Do
            If gmアプリ終了する Then Exit Do
        Loop
        '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        '*****************************************************
        Call aaゲーム終了時の_BMPとRGNの削除()
        '*****************************************************
        If まとめ描画BMP_old <> 0 Then
            SelectObject(mまとめ描画HDC, まとめ描画BMP_old) : まとめ描画BMP_old = 0
        End If
        If まとめ描画BMP <> 0 Then
            gggint = DeleteObject(まとめ描画BMP) : まとめ描画BMP = 0
        End If
        '*****************************************************
        If ghDC2BMP_old <> 0 Then
            SelectObject(ghDC2, ghDC2BMP_old) : ghDC2BMP_old = 0
        End If
        If ghDC2BMP <> 0 Then
            gggint = DeleteObject(ghDC2BMP) : ghDC2BMP = 0
        End If
        '-----------------------------------------------------
        If gmアプリ終了する Then Return True '重要'重要'重要'重要
        '*****************************************************
        m画像の移動とズーム = False
        mmゲームを停止する = False : mm現在のカード = 0 : mm前回のカード枚数 = mmカード枚数
        ppゲーム実行中 = False
        ppゲームクリア状態 = True
        '----------------------------------------------
        If d現在の枚数 = 0 Then
            If pサウンドを鳴らす Then
                Dim cur As Cursor = frmMain.Cursor
                frmMain.Cursor = Cursors.WaitCursor
                Dim sfile As String = IIf(pサウンドファイルを順次変更する, pサウンドファイルの配列_NEXT(), pサウンドファイル)
                gggbol = イベントgAppEventMaker.MakeEventサウンドファイルの実行を開始します(sfile)
                gggbol = Ⅹサウンドを鳴らす(sfile, 1, True, False)
                frmMain.Cursor = cur
            End If
        End If
        '----------------------------------------------
        If frmMain.pctメイン.Visible = False Then Call aa背景の設定(True)
        dDoEventsCall = False
        '------------------------------------------------------------------
        d全画幅 = 0 : d全画高 = 0 : d最大全長 = 0
        '------------------------------------------------------------------
        '******************************************************************
        gggbol = イベントgAppEventMaker.MakeEventタイマーのオンオフonスイスイonff(gmDlgFileゲーム用, False)
        gggstr = イベントgAppEventMaker.MakeEventゲーム開始と停止(False, "")
        '******************************************************************
        '***********************************************************************
        gggbol = frmMain.ゲームデーター表示(2, (pカード枚数CURVAL), mm現在の残り枚数)
        '***********************************************************************
        'qqqqq "loop out ゲーム停止"
        Return True
    End Function
    Private Function aaゲームの開始_sub_SetFormSizeData(ByRef d全画幅 As Integer, ByRef d全画高 As Integer, ByRef d最大全長 As Integer, ByRef drc全画面 As RECT) As Boolean
        With frmMain
            If d全画幅 = 0 Then
                mmウインドウ比率幅 = 1 : mmウインドウ比率高 = 1
            Else
                mmウインドウ比率幅 = .ClientRectangle.Width / d全画幅 : mmウインドウ比率高 = .ClientRectangle.Height / d全画高
            End If
            'qqqqq "mmウインドウ比率幅=" + CStr(mmウインドウ比率幅) + vbTab + "mmウインドウ比率高=" + CStr(mmウインドウ比率高)
            '--------------------------------------------------------------
            d全画幅 = .ClientRectangle.Width : d全画高 = .ClientRectangle.Height - .mMenuHight
            Call SetRect(drc全画面, 0, 0, d全画幅, d全画高) : d最大全長 = System.Math.Sqrt(d全画幅 * d全画高) * 2.0# '配列の延長は、１．５から２倍になるので、その補正。
            '--------------------------------------------------------------
        End With
        Call ooRandMode.aa移動範囲のサイズ変更(d全画幅, d全画高, mmリサイズ比率幅, mmリサイズ比率高)
        mm現在のウインドウ面積 = d全画幅 * d全画高
        Return True
    End Function
    '***********************************************************************
    Friend Function aa再作成モードの設定(ByRef r再作成 As Integer, Optional ByRef ダミー引数 As Boolean = False) As Boolean
        Dim a As Integer
        If Not ppゲーム実行中 Then Exit Function
        For a = 1 To mmカード枚数
            mmSD(a).再作成 = r再作成
        Next
        'qqqqq "aa再作成モードの設定 " + CStr(r再作成)
    End Function
    '***********************************************************************
    Friend Function aa残りカード枚数() As Integer
        Dim a, ccc As Integer
        ccc = 0
        For a = 1 To mmカード枚数
            With mmSD(a)
                If .当り済み = False Then ccc = ccc + 1
            End With
        Next
        Return ccc
    End Function
    '***********************************************************************
    Friend Function aa現在のカードを強制変更() As Boolean
        Dim a, m As Integer
        If ppゲーム実行中 = False Then Return False
        m = 0
        For a = mm現在のカード - 1 To 1 Step -1
            If mmSD(a).当り済み = False Then
                m = a : Exit For
            End If
        Next
        If m = 0 Then
            For a = mmカード枚数 To mm現在のカード + 1 Step -1
                If mmSD(a).当り済み = False Then
                    m = a : Exit For
                End If
            Next
        End If
        If m > 0 Then mm現在のカード = m
    End Function
    '***********************************************************************
    Private Function zzColorByIndex(ByRef IDX As Integer) As Integer
        Dim gg, bai, n, base, rr, bb As Integer
        zzColorByIndex = 0
        base = 20
        bai = 26
        n = IDX - 1
        rr = base + (bai * (1 + (n Mod 9)))
        gg = base + (bai * (1 + (n Mod 81) \ 9))
        bb = base + (bai * (1 + (n \ 81)))
        zzColorByIndex = RGB(rr, gg, bb)
    End Function
    '***********************************************************************

#End Region

#Region "文字データー基本配列 / 使用配列"
    '***********************************************************************
    Friend Function aa文字データー基本配列の設定(Optional ByRef アプリスタート時の設定 As Boolean = True) As Boolean
        Dim b, SD文字MAX, a, n, ModesMax As Integer
        Dim Indexs(0) As Integer
        Dim Lenアイコン, Lenナンバー, Len漢字, Lenカナ, Len英字, Len記号, Lenいろイロ As Integer
        Dim pアイコン, pナンバー, p英字, pカナ, p漢字, p記号, pいろイロ As Integer
        Dim addアイコン, addナンバー, add英字, addカナ, add漢字, add記号, addいろイロ As Integer
        'Dim eアイコン, eナンバー, e英字, eカナ, e漢字, e記号, eいろイロ As Boolean
        '--------------------------------------------------------
        SD文字MAX = UBound(mmSD文字) '815
        Lenアイコン = 400 : pアイコン = 1 'Len = 400
        Lenいろイロ = 729 : pいろイロ = 1 'Len = 729
        '--------------------------------------------------------
        If アプリスタート時の設定 Then
            '--------------------------------------------------------
            gmFlagアイコン設定Dlg_Load_Is_TMP = True  '**************************************
            frmMain.アイコン設定Dlg = New frmDlgIconList
            gggbol = frmMain.アイコン設定Dlg.aaアイコンリストデーター初期設定(mListMax, mLists) : mmウインドウ比率幅 = 1.0# : mmウインドウ比率高 = 1.0#
            frmMain.アイコン設定Dlg.Dispose()
            frmMain.アイコン設定Dlg = Nothing
            gmFlagアイコン設定Dlg_Load_Is_TMP = False  '**************************************
            '--------------------------------------------------------
            For a = 1 To SD文字MAX '815
                With mmSD文字(a)
                    b = a - 1
                    '-----------------------------------------
                    n = a : .文字カナ = Mid(gcカナかな, n, 1)
                    n = a : .文字がな = Mid(gcがなガナ, n, 1)
                    n = a : .文字英字 = Mid(gc英字数字, n, 1)
                    n = a : .文字漢字 = Mid(gc漢字文字, n, 1)
                    n = a : .ナンバー = Format(n, "000") & cAddChkStr米米
                    n = a : .記号 = Mid(gc記号, n, 1)
                    n = 1 + (b Mod Lenアイコン) : .アイコン = CStr(n) & cAddChkStr四角
                    n = 1 + (b Mod Lenいろイロ) : .いろイロ = CStr(zzColorByIndex(n)) & cAddChkStr星星
                    '-----------------------------------------
                End With
            Next
        End If
        '--------------------------------------------------------
        '以下は　　mmSD文字(a).ミックス　　の設定
        '--------------------------------------------------------
        Lenカナ = Len(gcカナかな) : pカナ = 1 'Len = 890
        Len漢字 = Len(gc漢字文字) : p漢字 = 1 'Len = 815
        Len英字 = Len(gc英字数字) : p英字 = 1 'Len = 847
        Len記号 = Len(gc記号) : p記号 = 1 'Len = 822
        Lenナンバー = SD文字MAX : pナンバー = 1 'Len = 815
        Lenアイコン = 400 : pアイコン = 1 'Len = 400
        Lenいろイロ = 729 : pいろイロ = 1 'Len = 729
        '--------------------------------------------------------
        ModesMax = frmMain.p基本モードのミックスモードIDXS_GETARY(Indexs)
        'For a = 1 To UBound(Indexs) : qqqqq(CStr(Indexs(a))) : Next
        '--------------------------------------------------------
        a = SD文字MAX \ ModesMax
        addカナ = Math.Max(1, Len(gcカナかな) \ a) 'Len = 890
        add漢字 = Math.Max(1, Len(gc漢字文字) \ a) 'Len = 815
        add英字 = Math.Max(1, Len(gc英字数字) \ a) 'Len = 847
        add記号 = Math.Max(1, Len(gc記号) \ a) 'Len = 822
        addナンバー = Math.Max(1, SD文字MAX \ a) 'Len = 815
        addアイコン = Math.Max(1, 400 \ a) 'Len = 400
        addいろイロ = Math.Max(1, 729 \ a) 'Len = 729
        '--------------------------------------------------------
        Dim ガナ使用 As Boolean = True  ''''''''''2023/06/05  delete ---  frmMain.pがなガナも使用BOOL
        a = 1
        Do  '  SD文字MAX = 815
            If a > SD文字MAX Then Exit Do
            If Indexs(2) <> 0 Then '文字カナ
                If ガナ使用 Then
                    mmSD文字(a).ミックス = Mid(gcがなガナ, pカナ, 1) : pカナ = pカナ + addカナ
                Else
                    mmSD文字(a).ミックス = Mid(gcカナかな, pカナ, 1) : pカナ = pカナ + addカナ
                End If
                If pカナ > Lenカナ Then pカナ = 1
                a = a + 1
            End If
            If a > SD文字MAX Then Exit Do
            If Indexs(3) <> 0 Then '文字漢字
                mmSD文字(a).ミックス = Mid(gc漢字文字, p漢字, 1) : p漢字 = p漢字 + add漢字
                If p漢字 > Len漢字 Then p漢字 = 2
                a = a + 1
            End If
            If a > SD文字MAX Then Exit Do
            If Indexs(4) <> 0 Then '文字英字
                mmSD文字(a).ミックス = Mid(gc英字数字, p英字, 1) : p英字 = p英字 + add英字
                If p英字 > Len英字 Then p英字 = 1
                a = a + 1
            End If
            If a > SD文字MAX Then Exit Do
            If Indexs(5) <> 0 Then 'ナンバー
                mmSD文字(a).ミックス = Format(pナンバー, "000") & cAddChkStr米米 : pナンバー = pナンバー + addナンバー
                If pナンバー > Lenナンバー Then pナンバー = 1
                a = a + 1
            End If
            If a > SD文字MAX Then Exit Do
            If Indexs(6) <> 0 Then '記号
                mmSD文字(a).ミックス = Mid(gc記号, p記号, 1) : p記号 = p記号 + add記号
                If p記号 > Len記号 Then p記号 = 1
                a = a + 1
            End If
            If a > SD文字MAX Then Exit Do
            If Indexs(7) <> 0 Then 'アイコン
                mmSD文字(a).ミックス = CStr(pアイコン) & cAddChkStr四角 : pアイコン = pアイコン + addアイコン
                If pアイコン > Lenアイコン Then pアイコン = 2
                a = a + 1
            End If
            If a > SD文字MAX Then Exit Do
            If Indexs(8) <> 0 Then 'いろイロ
                mmSD文字(a).ミックス = CStr(zzColorByIndex(pいろイロ)) & cAddChkStr星星 : pいろイロ = pいろイロ + addいろイロ
                If pいろイロ > Lenいろイロ Then pいろイロ = 2
                a = a + 1
            End If
        Loop
        '------------------------------------------------------------------
        'For a = 750 To 815: qqqqq CStr(mmSD文字(a - 749).ミックス) + "             " + CStr(mmSD文字(a).ミックス): Next
        'For a = 750 To 815: qqqqq CStr(mmSD文字(a).文字カナ): Next
        'For a = 750 To 815: qqqqq CStr(mmSD文字(a).文字漢字): Next
        'For a = 750 To 815: qqqqq CStr(mmSD文字(a).文字英字): Next
        'For a = 750 To 815: qqqqq CStr(mmSD文字(a).ナンバー): Next
        'For a = 750 To 815: qqqqq CStr(mmSD文字(a).記号): Next
        'For a = 750 To 815: qqqqq CStr(mmSD文字(a).アイコン): Next
        'For a = 390 To 410: qqqqq CStr(mmSD文字(a).いろイロ): Next
        '------------------------------------------------------------------
        'For a = 750 To 815: qqqqq Hex$(Val(CStr(mmSD文字(a).いろイロ))): Next
        '    Dim xx As Long, yy As Long, rc As RECT, hdc As Long
        '    hdc = frmMain.pcttmp.hdc
        '    For a = 0 To UBound(mmSD文字()) - 1 '815
        '        xx = 25 * (a Mod 27)
        '        yy = 25 * (a \ 27)
        '        Call SetRect(rc, xx, yy, xx + 23, yy + 23)
        '        Call ⅩRectDraw(hdc, rc, Val(mmSD文字(a + 1).いろイロ), 0, 0, 0, 0, False)
        '    Next
        '------------------------------------------------------------------
    End Function
    '***********************************************************************
    Friend Function aa文字データー使用配列の設定(ByRef rカード枚数 As Integer, Optional ByRef rSttIdx As Integer = 0) As Boolean
        Try
            Static mSttIdx As Integer
            Dim n, a, m, k, bbb, nnnn, ミックスIDX As Integer
            Dim ミックスモードのモード数 As Integer = frmMain.p基本モードのミックスモードのモード数
            If rSttIdx = 0 Then rSttIdx = mSttIdx
            If rSttIdx = 0 Then rSttIdx = 1
            If mmカード枚数 = 0 Then mmカード枚数 = pカード枚数CURVAL
            m = 800 \ rカード枚数
            bbb = 0
            For a = 1 To rカード枚数
                With mmSD(a)
                    .当り済み = False
                    '-----------------------------------------
                    k = rSttIdx + ((a - 1) * m)
                    If rカード枚数 > 200 Then n = rSttIdx + a Else n = k
                    '-----------------------------------------
                    .文字カナ = mmSD文字(n).文字カナ
                    .文字がな = mmSD文字(n).文字がな
                    .文字英字 = mmSD文字(n).文字英字
                    .ナンバー = mmSD文字(n).ナンバー
                    .記号 = mmSD文字(n).記号
                    .文字漢字 = mmSD文字(k).文字漢字
                    '-----------------------------------------
                    ミックスIDX = 0
                    Select Case mmカード枚数
                        Case 400
                            .アイコン = mmSD文字(rSttIdx + a).アイコン
                            .いろイロ = mmSD文字(rSttIdx + a * 1.8).いろイロ
                            ミックスIDX = rSttIdx + a * 1.8
                        Case 300
                            .アイコン = mmSD文字(rSttIdx + a * 1.33).アイコン
                            .いろイロ = mmSD文字(rSttIdx + a * 2.4).いろイロ
                            ミックスIDX = rSttIdx + a * 2.66
                        Case 200
                            .アイコン = mmSD文字(rSttIdx + a * 2).アイコン
                            .いろイロ = mmSD文字(rSttIdx + a * 3.6).いろイロ
                            ミックスIDX = rSttIdx + a * 3.75
                        Case 100
                            .アイコン = mmSD文字(rSttIdx + a * 4).アイコン
                            .いろイロ = mmSD文字(rSttIdx + a * 7.2).いろイロ
                            ミックスIDX = rSttIdx + a * 7.7
                            '2023/03/06 *********************************************
                        Case 50
                            .アイコン = mmSD文字(rSttIdx + a * 8).アイコン
                            .いろイロ = mmSD文字(rSttIdx + a * 14).いろイロ
                            ミックスIDX = rSttIdx + a * 15.5
                        Case 25
                            .アイコン = mmSD文字(rSttIdx + a * 16).アイコン
                            .いろイロ = mmSD文字(rSttIdx + a * 28).いろイロ
                            ミックスIDX = rSttIdx + a * 31
                        Case Else '10
                            .アイコン = mmSD文字(rSttIdx + a * 32).アイコン
                            .いろイロ = mmSD文字(rSttIdx + a * 56).いろイロ
                            ミックスIDX = rSttIdx + a * 62
                            '2023/03/06 *********************************************
                    End Select
                    '2023/03/06 *********************************************
                    If ミックスIDX > 0 Then
                        bbb = bbb + 1
                        If bbb > ミックスモードのモード数 Then bbb = 1
                        nnnn = (ミックスIDX \ ミックスモードのモード数) * ミックスモードのモード数 + bbb
                        .ミックス = mmSD文字(nnnn).ミックス
                    End If
                    '2023/03/06 *********************************************
                End With
                ''2023/03/06 *********************************************
                'If True Then    'If mmカード枚数 <= 50 Then
                '    If a = 1 Then
                '        qqqqq("***** aa文字データー使用配列の設定() カード枚数 = " & CStr(rカード枚数))
                '    End If
                '    If a <= 50 Then
                '        With mmSD(a)
                '            qqqqq(CStr(a) & "  " & .ミックス)   '& "  " & .文字カナ & "  " & .文字がな & "  " & .文字漢字 & "  " & .文字英字 & "  " & .ナンバー & "  " & .記号 & "  " & .アイコン & "  " & .いろイロ)
                '        End With
                '    End If
                'End If
                ''2023/03/06 *********************************************
            Next
            mSttIdx = rSttIdx
            ''2023/03/06 *********************************************
            'If True Then
            '    Dim w As String = ""
            '    For a = 1 To UBound(mmSD文字)
            '        w = w & mmSD文字(a).ミックス
            '    Next
            '    qqqqq("mmSD文字(a).ミックス hed200chr = " & Left(w, 200))

            '    'qqqqq("***** aa文字データー使用配列の設定() rSttIdx = " & CStr(rSttIdx))

            'End If
            ''2023/03/06 *********************************************
            Return True
        Catch ex As Exception
            MsgBox("ERROR in aa文字データー使用配列の設定()" & gggCR2 & ex.ToString)
            Return False
        End Try
    End Function

#End Region

#Region "マウスイベント"
    '***********************************************************************
    Friend Function aa現在のカードの中心XY(ByRef wX As Integer, ByRef wY As Integer) As Integer
        Dim a As Integer = mm現在のカード
        If a = 0 Then Return 0
        Dim rc As RECT
        gggint = GetRgnBox(mmSD(a).RGN本体, rc)
        If gggint = 0 Then Return 0
        With rc
            wX = .lll + ((.rrr - .lll) \ 2)
            wY = .ttt + ((.bbb - .ttt) \ 2)
        End With
        Return a
    End Function
    Friend Function aaマウスイベント(ByVal X As Integer, ByVal Y As Integer) As Integer
        Dim RET As Integer = 0
        If Not ppゲーム実行中 Then Return RET
        Dim a As Integer
        '--------------------------------------------
        Y = Y - frmMain.mMenuHight
        '--------------------------------------------
        For IDX As Integer = mmカード枚数 To 1 Step -1
            a = mmSD描画順番(IDX)
            With mmSD(a)
                If .当り済み = False Then
                    If PtInRegion(.RGN本体, X, Y) <> 0 Then
                        If a = mm現在のカード Then
                            RET = a
                            .当り済み = True
                            '-------------------------------------------------------------------------------------------------------------------------
                            Dim m As Integer = Rnd() * mmカード枚数
                            'qqqqq CStr(m)
                            If m = 0 Then m = 1
                            Dim count As Integer = 0
                            For b As Integer = m To mmカード枚数
                                If mmSD(b).当り済み = False Then
                                    mm現在のカード = b : Exit For
                                End If
                                If b = mmカード枚数 Then
                                    If count = 0 Then
                                        count = count + 1 : b = 0
                                    End If
                                End If
                            Next
                            '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                            'カード 移動ARY() のデーターを作る。
                            gggint = zz当りカードの移動操作(0, mmSD(a), a, 0, 0, frmMain.ClientSize.Width, frmMain.ClientSize.Height - frmMain.mMenuHight)
                            '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                            Dim 残り枚数 As Integer = aa残りカード枚数()
                            If 残り枚数 = 0 Then
                                frmMain.pct現在のカード.Visible = False
                            ElseIf pサウンドを鳴らす Then     'あたり音を鳴らす。
                                '2023/05/09 new
                                Dim sfile As String = IIf(pサウンドファイルを順次変更する, pサウンドファイルの配列_NEXT(), pサウンドファイル)
                                gggbol = イベントgAppEventMaker.MakeEventサウンドファイルの実行を開始します(sfile)
                                If Not Ⅹサウンドを鳴らす(sfile, 1, False, False) Then
                                    gggbol = frmMain.aaオートモード停止_もし実行中であれば(sfile)
                                End If
                                'qqqqq("pサウンドを鳴らす And (aa残りカード枚数() > 0)")
                            End If
                        End If
                        Exit For
                    End If
                End If
            End With
        Next
        Return RET
    End Function
    '***********************************************************************
    Private Function zz当りカードの移動操作(ByVal op As Integer, ByRef SD As 円弧移動ウロウロ, ByVal SDIDXcur As Integer, ByVal rフレームHDC As Integer, ByVal r作業用HDC As Integer, ByVal 全画幅 As Integer, ByVal 全画高 As Integer) As Integer
        Const cHitsMax As Integer = 30
        Static ssSDHitsIDX(cHitsMax) As Integer '2021/04/04 new   Add New Hit into HitsAry ssSDHitsIDX()
        '-------------------------------------------------------
        Dim a As Integer : Dim 移動ARYmax As Integer
        With SD
            Select Case op
                Case 1000, 2000 'form size changed
                    Dim n As Integer
                    For a = 1 To cHitsMax
                        n = ssSDHitsIDX(a)
                        If n > 0 Then gggint = zz当りカードの移動データー消去(mmSD(n))
                        ssSDHitsIDX(a) = 0
                    Next
                    mmCurHitSDIDX = 0
                    '-------------------------------------------------------------------------------------------
                    'イベントgAppEventMaker_pカード型が変更されました / pカード枚数が変更されました / p基本モードが変更されました / p基本モードのミックスモードが変更されました / 
                    If op = 2000 Then
                        For a = 1 To UBound(mmSD)
                            gggint = zz当りカードの移動データー消去(mmSD(a))
                        Next
                    End If
                    Return 0

                Case 100 'On Game Start
                    For a = 1 To cHitsMax : ssSDHitsIDX(a) = 0 : Next
                    mmCurHitSDIDX = 0
                    Return 0

                Case 0 'Make Data
                    '  全画幅 = frmMain.ClientSize.Width
                    '  全画高 = frmMain.ClientSize.Height - frmMain.mMenuHight
                    '-------------------------------------------------------
                    Dim rc As RECT
                    gggint = GetRgnBox(.RGN本体, rc)
                    Dim sttX As Integer = rc.lll
                    Dim sttY As Integer = rc.ttt
                    Dim mカードのサイズ幅 As Integer = rc.rrr - rc.lll
                    Dim mカードのサイズ高 As Integer = rc.bbb - rc.ttt
                    '-------------------------------------------------------
                    Dim 集合場所X, 集合場所Y As Integer
                    Dim カードズームの倍数 As Single = p消えるカードのサイズ変化_実効値 '{1.2, 1.4, 1.7, 2.1, 2.6}

                    .移動消えるカードの背景サイズ = p消えるカードの背景サイズ_実効値

                    Dim XXshift As Integer = .移動消えるカードの背景サイズ * ((mカードのサイズ幅 * カードズームの倍数) \ 2)
                    Dim YYshift As Integer = .移動消えるカードの背景サイズ * ((mカードのサイズ高 * カードズームの倍数) \ 2)
                    '-------------------------------------------------------
                    Randomize()
                    a = (Rnd() * 100)
                    If a < 25 Then
                        集合場所X = Rnd() * 全画幅 : 集合場所Y = 0 - YYshift
                    ElseIf a < 50 Then
                        集合場所X = 全画幅 + XXshift : 集合場所Y = Rnd() * 全画高
                    ElseIf a < 75 Then
                        集合場所X = Rnd() * 全画幅 : 集合場所Y = 全画高 + YYshift
                    Else
                        集合場所X = 0 - XXshift : 集合場所Y = Rnd() * 全画高
                    End If
                    Dim XXpointoffset As Integer = (カードズームの倍数 * mカードのサイズ幅) \ 2
                    Dim YYpointoffset As Integer = (カードズームの倍数 * mカードのサイズ幅) \ 2
                    集合場所X = 集合場所X - XXpointoffset
                    集合場所Y = 集合場所Y - YYpointoffset
                    '-------------------------------------------------------
                    移動ARYmax = p消えるカードのスピード_実効値   ' 200 - 600
                    'qqqqq(CStr(移動ARYmax))
                    Dim pxx As Single = (集合場所X - sttX) / 移動ARYmax  'カードサイズはズームで大きくなる  
                    Dim pyy As Single = (集合場所Y - sttY) / 移動ARYmax  'カードサイズはズームで大きくなる  
                    ReDim .移動ARY(移動ARYmax)
                    .移動ARY(1).X = sttX
                    .移動ARY(1).Y = sttY
                    For a = 2 To 移動ARYmax
                        .移動ARY(a).X = sttX + (pxx * a) : .移動ARY(a).Y = sttY + (pyy * a)
                    Next
                    ReDim Preserve .移動ARY(移動ARYmax)
                    ReDim .移動ズーム(移動ARYmax)
                    .移動IDX = 1
                    'qqqqq("x=" & CStr(.移動ARY(移動ARYmax).X) & "  , y=" & CStr(.移動ARY(移動ARYmax).Y) & "  , 集合場所X=" & CStr(集合場所X) & "  , 集合場所Y=" & CStr(集合場所Y))

                    Dim 波長係数 As Single = 2000 / ((全画幅 + 全画高) ^ 1.1)
                    'qqqqq(CStr(波長係数))

                    gggbol = GMCOMⅩユラユラデーター処理(1, .移動ズーム, 移動ARYmax, 0, 0, 0, 0, 0, 全画幅, 全画高, 波長係数, p消えるカードのサイズ変化_実効値)
                    mmCurHitSDIDX = SDIDXcur
                    'qqqqq("zz当りカードの移動操作()  Make Data")
                    '-----------------------------------------------------------.
                    .移動円カラー = Ⅹ色RndColor(IIf(p消えるカードの背景模様 = 0, 0.5, 1.0))
                    '-----------------------------------------------------------
                    '2021/04/04 new   Add New Htt into Hits ssSDHitsIDX()
                    For a = 1 To cHitsMax
                        If ssSDHitsIDX(a) = 0 Then
                            ssSDHitsIDX(a) = SDIDXcur : Exit For
                        End If
                    Next
                    If a > cHitsMax Then
                        qqqqq("zz当りカードの移動操作() a > cHitsMax=30 ")
                        For a = 1 To cHitsMax - 1 : ssSDHitsIDX(a) = ssSDHitsIDX(a + 1) : Next
                        ssSDHitsIDX(cHitsMax) = SDIDXcur
                    End If
                    Return 0

                Case 1 'Draw Card
                    Dim ssSDHitsIDX配列から削除する As Boolean = False
                    For b As Integer = 1 To UBound(ssSDHitsIDX)
                        If ssSDHitsIDX(b) <> 0 Then
                            With mmSD(ssSDHitsIDX(b))
                                移動ARYmax = UBound(.移動ARY)
                                If .移動IDX > 0 And .移動IDX < 移動ARYmax Then
                                    .移動IDX = .移動IDX + 1
                                    '-----------------------------------------------------------
                                    a = .移動IDX
                                    Dim ZoomWD, ZoomHT, xxx, yyy As Integer
                                    gggbol = GMCOMⅩユラユラデーター処理(3, .移動ズーム, 移動ARYmax, a, .bmpWD, .bmpHT, ZoomWD, ZoomHT, 0, 0, 0, 0)
                                    xxx = .移動ARY(a).X
                                    yyy = .移動ARY(a).Y
                                    Dim addXX As Integer = (ZoomWD * .移動消えるカードの背景サイズ - ZoomWD) \ 2
                                    Dim addYY As Integer = (ZoomHT * .移動消えるカードの背景サイズ - ZoomWD) \ 2
                                    '-----------------------------------------------------------
                                    If p消えるカードの背景模様 = 0 Then
                                        Dim X1, Y1, X2, Y2, X3, Y3, X4, Y4 As Integer
                                        X1 = xxx - addXX : Y1 = yyy - addYY
                                        X2 = xxx + ZoomWD + addXX : Y2 = yyy + ZoomHT + addYY
                                        Dim dx As Integer = Math.Max(2, (X2 - X1) / 35)  '/ 30
                                        Dim dy As Integer = Math.Max(2, (Y2 - Y1) / 35)  '/ 30
                                        Dim ペン, penwd As Integer
                                        For e As Integer = 1 To 8
                                            X1 = X1 + dx : Y1 = Y1 + dy : X2 = X2 - dx : Y2 = Y2 - dy
                                            penwd = (dx + dy) / 2 / 6
                                            penwd = Math.Max(1, penwd * e / 2.5) ' 2)
                                            ペン = CreatePen(PS_SOLID, penwd, .移動円カラー)
                                            If ペン Then
                                                Dim oldpen As Integer = SelectObject(rフレームHDC, ペン)
                                                If oldpen <> 0 Then
                                                    gggint = Arc(rフレームHDC, X1, Y1, X2, Y2, X3, Y3, X4, Y4)
                                                    SelectObject(rフレームHDC, oldpen)
                                                End If
                                                gggint = DeleteObject(ペン)
                                            End If
                                        Next
                                    Else
                                        Dim ブラシ As Integer = CreateSolidBrush(.移動円カラー)
                                        If ブラシ <> 0 Then
                                            Dim oldbrs As Integer = SelectObject(rフレームHDC, ブラシ)
                                            If oldbrs <> 0 Then
                                                gggint = Ellipse(rフレームHDC, xxx - addXX, yyy - addYY, xxx + ZoomWD + addXX, yyy + ZoomHT + addYY)
                                                SelectObject(rフレームHDC, oldbrs)
                                            End If
                                            gggint = DeleteObject(ブラシ)
                                        End If
                                    End If
                                    '-----------------------------------------------------------
                                    'ズームしながら外へ出ていくカードのビットマップは、少し大きめに、別に作っておいたほうが、拡大時のギザギザがなくなる
                                    Dim bbb As Boolean = (.移動bmp <> 0)
                                    Dim bmpbmp As Integer = IIf(bbb, .移動bmp, .bmp)
                                    Dim wwww As Integer = IIf(bbb, .移動bmpWD, .bmpWD)
                                    Dim hhhh As Integer = IIf(bbb, .移動bmpHT, .bmpHT)
                                    Dim oldBmp As Integer = SelectObject(r作業用HDC, bmpbmp)
                                    If oldBmp <> 0 Then
                                        gggint = StretchBlt(rフレームHDC, xxx, yyy, ZoomWD, ZoomHT, r作業用HDC, 0, 0, wwww, hhhh, SRCPAINT)
                                        gggint = StretchBlt(rフレームHDC, xxx, yyy, ZoomWD, ZoomHT, r作業用HDC, wwww, 0, wwww, hhhh, SRCAND)
                                        gggint = SelectObject(r作業用HDC, oldBmp)
                                    End If
                                    '-----------------------------------------------------------
                                    'qqqqq("zz当りカードの移動操作()  Draw Card ...")
                                    If a = 移動ARYmax Then
                                        'qqqqq(CStr(xxx - addxy))
                                        .移動IDX = 0 : ReDim .移動ARY(0)
                                        gggbol = GMCOMⅩユラユラデーター処理(2, .移動ズーム, 移動ARYmax, 0, 0, 0, 0, 0, 0, 0, 0, 0)
                                        '-----------------------------------------------------------
                                        ssSDHitsIDX配列から削除する = True
                                    End If
                                Else
                                    ssSDHitsIDX配列から削除する = True
                                End If
                            End With
                            If ssSDHitsIDX配列から削除する Then
                                '-----------------------------------------------------------
                                gggint = zz当りカードの移動データー消去(mmSD(ssSDHitsIDX(b)))
                                '-----------------------------------------------------------
                                For c As Integer = b To cHitsMax - 1
                                    ssSDHitsIDX(c) = ssSDHitsIDX(c + 1)
                                Next
                                ssSDHitsIDX(cHitsMax) = 0
                                b = b - 1
                                ssSDHitsIDX配列から削除する = False
                            End If
                        Else
                            Exit For
                        End If
                    Next
                    mmCurHitSDIDX = ssSDHitsIDX(1)
                    'qqqqq("zz当りカードの移動操作(1 ...)  Draw HitCards Ary() End")
                    Return mmCurHitSDIDX
            End Select
        End With
    End Function
    '***********************************************************************
#End Region

#Region "aaプロパティ初期化_INI読出し書込みsub"
    Friend Function aaプロパティ初期化_INI読出し書込みsub(ByRef プロパコマンド As Integer, ByRef ini配列() As String, ByRef CurIDX As Integer) As Boolean
        Dim AryMax As Integer = UBound(ini配列) : Dim ssss As String, hedend As String = "*********************" + "ポイウロデーター" + "*********************"
        Select Case プロパコマンド
            Case gcoプロパ初期化
                Call pユーザーカードのデーター_RW(プロパコマンド)
                Call pカード枚数_RW(プロパコマンド)
                Call pゲームカードのサイズ_RW(プロパコマンド)
                Call p残り枚数でカードサイズ変更_RW(プロパコマンド)
                Call pカードをズーミング_RW(プロパコマンド)
                Call pゲームカードのサイズ大中小_RW(プロパコマンド)
                Call pカードサイズ枠の太さ_RW(プロパコマンド)
                Call pカードスピードCPU性能差の補正_RW(プロパコマンド)
                Call pカードスピード_RW(プロパコマンド)
                Call p移動ライン曲率_RW(プロパコマンド)
                Call pサウンドを鳴らす_RW(プロパコマンド)
                Call pゲームカード型_RW(プロパコマンド)
                Call pゲームカード型使用中の現在のIDX_RW(プロパコマンド)
                Call pゲーム背景画像を表示_RW(プロパコマンド)
                Call pゲーム背景画像の明るさ_RW(プロパコマンド)
                Call pゲーム背景画像の切り替え時間間隔_RW(プロパコマンド)
                Call pサウンドファイル_RW(プロパコマンド)
                Call pサウンドファイルの配列_RW(プロパコマンド, gggstrary, "")
                Call pサウンドファイルを順次変更する_RW(プロパコマンド)
                Call p消えるカードのスピード_RW(プロパコマンド)
                Call p消えるカードのサイズ変化_RW(プロパコマンド)
                Call p消えるカードの背景模様_RW(プロパコマンド)
                Call p消えるカードの背景サイズ_RW(プロパコマンド)

            Case gcoプロパiniRD
                Const ads As String = "="
                Dim Hedpユーザーカードのデーター_RW As String = pユーザーカードのデーター_RW(gcoプロパ名) + ads
                Dim Hedpカード枚数_RW As String = pカード枚数_RW(gcoプロパ名) + ads
                Dim Hedpカードサイズ_RW As String = pゲームカードのサイズ_RW(gcoプロパ名) + ads
                Dim Hedp残り枚数でカードサイズ変更_RW As String = p残り枚数でカードサイズ変更_RW(gcoプロパ名) + ads
                Dim Hedpカードをズーミング_RW As String = pカードをズーミング_RW(gcoプロパ名) + ads
                Dim Hedpゲームカードのサイズ大中小_RW As String = pゲームカードのサイズ大中小_RW(gcoプロパ名) + ads
                Dim Hedpカードサイズ枠の太さ_RW As String = pカードサイズ枠の太さ_RW(gcoプロパ名) + ads
                Dim HedpカードスピードCPU性能差の補正_RW As String = pカードスピードCPU性能差の補正_RW(gcoプロパ名) + ads
                Dim Hedpカードスピード_RW As String = pカードスピード_RW(gcoプロパ名) + ads
                Dim Hedp移動ライン曲率_RW As String = p移動ライン曲率_RW(gcoプロパ名) + ads
                Dim Hedpサウンドを鳴らす_RW As String = pサウンドを鳴らす_RW(gcoプロパ名) + ads
                Dim Hedpゲームカード型_RW As String = pゲームカード型_RW(gcoプロパ名) + ads
                Dim Hedpゲームカード型使用中の現在のIDX_RW As String = pゲームカード型使用中の現在のIDX_RW(gcoプロパ名) + ads
                Dim Hedpゲーム背景画像を表示_RW As String = pゲーム背景画像を表示_RW(gcoプロパ名) + ads
                Dim Hedpゲーム背景画像の明るさ_RW As String = pゲーム背景画像の明るさ_RW(gcoプロパ名) + ads
                Dim Hedpゲーム背景画像の切り替え時間間隔_RW As String = pゲーム背景画像の切り替え時間間隔_RW(gcoプロパ名) + ads
                Dim Hedpサウンドファイル_RW As String = pサウンドファイル_RW(gcoプロパ名) + ads
                Dim Hedpサウンドファイルの配列_RW As String = pサウンドファイルの配列_RW(gcoプロパ名, gggstrary, "") + ads
                Dim Hedpサウンドファイルを順次変更する_RW As String = pサウンドファイルを順次変更する_RW(gcoプロパ名) + ads
                Dim Hedp消えるカードのスピード_RW As String = p消えるカードのスピード_RW(gcoプロパ名) + ads
                Dim Hedp消えるカードのサイズ変化_RW As String = p消えるカードのサイズ変化_RW(gcoプロパ名) + ads
                Dim Hedp消えるカードの背景模様_RW As String = p消えるカードの背景模様_RW(gcoプロパ名) + ads
                Dim Hedp消えるカードの背景サイズ_RW As String = p消えるカードの背景サイズ_RW(gcoプロパ名) + ads
                For CurIDX = 1 To UBound(ini配列)
                    ssss = ini配列(CurIDX)
                    If InStr(ssss, Hedpユーザーカードのデーター_RW) = 1 Then
                        Call pユーザーカードのデーター_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpカード枚数_RW) = 1 Then
                        Call pカード枚数_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpカードサイズ_RW) = 1 Then
                        Call pゲームカードのサイズ_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedp残り枚数でカードサイズ変更_RW) = 1 Then
                        Call p残り枚数でカードサイズ変更_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpカードをズーミング_RW) = 1 Then
                        Call pカードをズーミング_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpゲームカードのサイズ大中小_RW) = 1 Then
                        Call pゲームカードのサイズ大中小_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpカードサイズ枠の太さ_RW) = 1 Then
                        Call pカードサイズ枠の太さ_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, HedpカードスピードCPU性能差の補正_RW) = 1 Then
                        Call pカードスピードCPU性能差の補正_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpカードスピード_RW) = 1 Then
                        Call pカードスピード_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedp移動ライン曲率_RW) = 1 Then
                        Call p移動ライン曲率_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpサウンドを鳴らす_RW) = 1 Then
                        Call pサウンドを鳴らす_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpゲームカード型_RW) = 1 Then
                        Call pゲームカード型_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpゲームカード型使用中の現在のIDX_RW) = 1 Then
                        Call pゲームカード型使用中の現在のIDX_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpゲーム背景画像を表示_RW) = 1 Then
                        Call pゲーム背景画像を表示_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpゲーム背景画像の明るさ_RW) = 1 Then
                        Call pゲーム背景画像の明るさ_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpゲーム背景画像の切り替え時間間隔_RW) = 1 Then
                        Call pゲーム背景画像の切り替え時間間隔_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpサウンドファイル_RW) = 1 Then
                        Call pサウンドファイル_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedpサウンドファイルの配列_RW) = 1 Then
                        Call pサウンドファイルの配列_RW(プロパコマンド, gggstrary, ssss)
                    ElseIf InStr(ssss, Hedpサウンドファイルを順次変更する_RW) = 1 Then
                        Call pサウンドファイルを順次変更する_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedp消えるカードのスピード_RW) = 1 Then
                        Call p消えるカードのスピード_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedp消えるカードのサイズ変化_RW) = 1 Then
                        Call p消えるカードのサイズ変化_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedp消えるカードの背景模様_RW) = 1 Then
                        Call p消えるカードの背景模様_RW(プロパコマンド, ssss)
                    ElseIf InStr(ssss, Hedp消えるカードの背景サイズ_RW) = 1 Then
                        Call p消えるカードの背景サイズ_RW(プロパコマンド, ssss)
                    End If
                Next

            Case gcoプロパiniWR
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = hedend Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pユーザーカードのデーター_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pカード枚数_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pゲームカードのサイズ_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = p残り枚数でカードサイズ変更_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pカードをズーミング_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pゲームカードのサイズ大中小_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pカードサイズ枠の太さ_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pカードスピードCPU性能差の補正_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pカードスピード_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = p移動ライン曲率_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pサウンドを鳴らす_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pゲームカード型_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pゲームカード型使用中の現在のIDX_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pゲーム背景画像を表示_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pゲーム背景画像の明るさ_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pゲーム背景画像の切り替え時間間隔_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pサウンドファイル_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pサウンドファイルの配列_RW(プロパコマンド, gggstrary, "") Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = pサウンドファイルを順次変更する_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = p消えるカードのスピード_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = p消えるカードのサイズ変化_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = p消えるカードの背景模様_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = p消えるカードの背景サイズ_RW(プロパコマンド) Else Return True
                CurIDX = CurIDX + 1 : If CurIDX <= AryMax Then ini配列(CurIDX) = hedend Else Return True
        End Select

        gggbol = DlgFileゲーム用.aaプロパティ初期化_INI読出し書込みsub(プロパコマンド, ini配列, CurIDX)
        gggbol = ooユラユラ.aaプロパティ初期化_INI読出し書込みsub(プロパコマンド, ini配列, CurIDX)

        Return True
    End Function
#End Region

#Region "プロパティ群"
    '***********************************************************************
    Friend Function pカード枚数_現在の残り枚数() As Integer
        Return mm現在の残り枚数
    End Function
    Friend Property pカード枚数() As Integer
        Get
            Return CInt(pカード枚数_RW(gcoプロパGet))
        End Get
        Set(ByVal Value As Integer)
            Call pカード枚数_RW(gcoプロパLet, CStr(Value))
        End Set
    End Property
    Friend ReadOnly Property pカード枚数CURVAL() As Integer
        Get
            Return CInt(pカード枚数_RW(gcoプロパ実効値))
        End Get
    End Property
    Friend Function pカード枚数_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "") As String
        Const PropName As String = "pカード枚数" : Const DEF値 = 4 : Static 下, 値, 上 As Integer : Static メヌ() As ToolStripMenuItem : Dim a, 旧値 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパ名
                Return PropName
            Case gcoプロパ初期化
                値 = DEF値 : Call frmMain.aaメニューオブジェ設定(PropName, メヌ, 下, 上)
            Case gcoプロパ規定値
                Return CStr(DEF値)
            Case gcoプロパGet
                Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick
                値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR
                Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD
                値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
            Case gcoプロパ実効値   'from ... pカード枚数CURVAL() As Integer
                Select Case 値
                    Case 1 : Return "10" : Case 2 : Return "25" : Case 3 : Return "50" : Case 4 : Return "100" : Case 5 : Return "200" : Case 6 : Return "300" : Case 7 : Return "400" : Case Else : Return "200"
                End Select
        End Select
        Select Case プロパコマンド
            Case gcoプロパ初期化, gcoプロパLet, gcoプロパiniRD, gcoプロパMenuClick
                For a = 下 To 上 : メヌ(a).Checked = (値 = a) : Next
                With frmMain
                    If .aaCallCheck再作成モードの設定(値, 旧値, プロパコマンド) Then Call aaフォームサイズ_カードサイズ_データー設定()
                    Call .aaもしゲーム停止状態なら_画面クリア() 'ファイル共用のためのダミー関数も含む
                End With
        End Select
        Return CStr(値)
        '-------------------------------------------------------------------------------------------------------
        '2018/01/17  ゲーム実行中にカード枚数が変更されると、ループ内で自動的にリセットされ、再スタートが始まる。
        'If ●カード枚数 <> .pカード枚数CURVAL Then   'qqqqq "GoTo リセット再スタート"
        '-------------------------------------------------------------------------------------------------------
    End Function
    '***********************************************************************
    Friend Function pゲームカードのサイズ_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pゲームカードのサイズ_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend Sub pゲームカードのサイズListBoxに設定(ByRef box As ListBox)
        If box IsNot Nothing Then box.SelectedIndex = Ⅹ数値範囲Int(-1, box.Items.Count - 1, pゲームカードのサイズListIndex_0_4)
    End Sub
    Friend Sub pゲームカードのサイズListBoxから読出し(ByRef box As ListBox)
        If box IsNot Nothing Then pゲームカードのサイズListIndex_0_4 = box.SelectedIndex
    End Sub
    Friend ReadOnly Property pゲームカードのサイズListIndex_0_4_DEF() As Integer
        Get
            Return CInt(pゲームカードのサイズ_RW(45200))
        End Get
    End Property
    Friend Property pゲームカードのサイズListIndex_0_4() As Integer
        Get
            Return CInt(pゲームカードのサイズ_RW(45869))
        End Get
        Set(ByVal value As Integer)
            Call pゲームカードのサイズ_RW(45860, CStr(value))
        End Set
    End Property
    Friend ReadOnly Property pゲームカードのサイズDEF() As Single
        Get
            Return CSng(pゲームカードのサイズ_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property pゲームカードのサイズ() As Single
        Get
            Return CSng(pゲームカードのサイズ_RW(gcoプロパGet))
        End Get
        Set(ByVal Value As Single)
            Call pゲームカードのサイズ_RW(gcoプロパLet, CStr(Value))
        End Set
    End Property
    Friend Function pゲームカードのサイズ_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "pゲームカードのサイズ" : Const 値min As Single = 0.6 : Const 値DEF As Single = 0.8 : Const 値max As Single = 1.0
        Static 値 As Single : Dim 旧値 As Single : Dim a As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"小さい", "少し小さい", "ふつう", "少し大きい", "大きい"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, (pゲームカードのサイズListIndex_0_4))
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet : 値 = Ⅹ数値範囲Sng(値min, 値max, Val(s))
            Case gcoプロパMenuClick 'non op
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Sng(値min, 値max, CSng(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
            Case 45869 'Get pゲームカードのサイズListIndex_0_4() :
                Select Case 値 : Case Is <= 0.6 : a = 0 : Case Is <= 0.7 : a = 1 : Case Is <= 0.8 : a = 2 : Case Is <= 0.9 : a = 3 : Case Else : a = 4 : End Select
                Return CStr(a)
            Case 45860 'Let pゲームカードのサイズListIndex_0_4()
                a = Ⅹ数値範囲Int(0, 4, Val(s))
                Select Case a : Case Is <= 0 : 値 = 0.6 : Case 1 : 値 = 0.7 : Case 2 : 値 = 0.8 : Case 3 : 値 = 0.9 : Case Else : 値 = 1.0 : End Select
                If 旧値 <> 値 Then
                    プロパコマンド = gcoプロパLet '45860 = gcoプロパLet 代入
                End If
                'qqqqq("pゲームカードのサイズ_RW(45860) " & CStr(値))
            Case 45200 'pゲームカードのサイズ変更比率ListIndex_0_4_DEF
                Return CStr(2) '(Listbox index)
        End Select
        '---------------------------------------------------------------
        Select Case プロパコマンド
            Case gcoプロパ初期化, gcoプロパLet, gcoプロパiniRD
                Try
                    With frmMain
                        If .aaCallCheck再作成モードの設定(値, 旧値, プロパコマンド) Then Call aa再作成モードの設定(392, True)
                        Call .aaもしゲーム停止状態なら_画面クリア() 'ファイル共用のためのダミー関数も含む
                    End With
                Catch ex As Exception
                    MsgBox(ex.TargetSite)
                End Try
        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    Friend Function pカードをズーミング_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pカードをズーミング_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property pカードをズーミングDEF() As Integer
        Get
            Return CInt(pカードをズーミング_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property pカードをズーミングBOOL() As Boolean
        Get
            Return (0 = CInt(pカードをズーミング_RW(gcoプロパGet)))
        End Get
        Set(ByVal value As Boolean)
            Call pカードをズーミング_RW(gcoプロパLet, IIf(value, "0", "1"))
        End Set
    End Property
    Friend Property pカードをズーミング() As Integer
        Get
            Return CInt(pカードをズーミング_RW(gcoプロパGet))
        End Get
        Set(ByVal value As Integer)
            Call pカードをズーミング_RW(gcoプロパLet, CStr(value))
        End Set
    End Property
    Private Function pカードをズーミング_RW(ByVal プロパコマンド As Integer, Optional ByVal s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "pカードをズーミング" : Const 値DEF As Integer = 0 : Const 下 As Integer = 0 : Const 上 As Integer = 1   '0, 1
        Static 値 As Integer : Dim 旧値 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"する", "しない"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, 値)
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick : 値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
        End Select
        Select Case プロパコマンド
            Case gcoプロパLet, gcoプロパMenuClick
                If 旧値 <> 値 Then
                    'If ppゲーム実行中 Then Call aa再作成モードの設定(9875, True)
                End If
        End Select
        Return CStr(値)
    End Function
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    '***********************************************************************
    Friend Function pゲームカードのサイズ大中小_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pゲームカードのサイズ大中小_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property pゲームカードのサイズ大中小DEF() As Integer
        Get
            Return CInt(pゲームカードのサイズ大中小_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property pゲームカードのサイズ大中小BOOL() As Boolean
        Get
            Return (0 = CInt(pゲームカードのサイズ大中小_RW(gcoプロパGet)))
        End Get
        Set(ByVal value As Boolean)
            Call pゲームカードのサイズ大中小_RW(gcoプロパLet, IIf(value, "0", "1"))
        End Set
    End Property
    Friend Property pゲームカードのサイズ大中小() As Integer
        Get
            Return CInt(pゲームカードのサイズ大中小_RW(gcoプロパGet))
        End Get
        Set(ByVal value As Integer)
            Call pゲームカードのサイズ大中小_RW(gcoプロパLet, CStr(value))
        End Set
    End Property
    Private Function pゲームカードのサイズ大中小_RW(ByVal プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "pゲームカードのサイズ大中小" : Const 値DEF As Integer = 0 : Const 下 As Integer = 0 : Const 上 As Integer = 1   '0, 1
        Static 値 As Integer : Dim 旧値 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"する", "しない"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, 値)
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick : 値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
        End Select
        Select Case プロパコマンド
            Case gcoプロパMenuClick, gcoプロパLet
                With frmMain
                    If .aaCallCheck再作成モードの設定(CInt(値), CInt(旧値), プロパコマンド) Then Call aa再作成モードの設定(5, True)
                    Call .aaもしゲーム停止状態なら_画面クリア() 'ファイル共用のためのダミー関数も含む
                End With
        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend Function p残り枚数でカードサイズ変更_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(p残り枚数でカードサイズ変更_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property p残り枚数でカードサイズ変更DEF() As Integer
        Get
            Return CInt(p残り枚数でカードサイズ変更_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property p残り枚数でカードサイズ変更BOOL() As Boolean
        Get
            Return (0 = CInt(p残り枚数でカードサイズ変更_RW(gcoプロパGet)))
        End Get
        Set(ByVal value As Boolean)
            Call p残り枚数でカードサイズ変更_RW(gcoプロパLet, IIf(value, "0", "1"))
        End Set
    End Property
    Friend Property p残り枚数でカードサイズ変更() As Integer
        Get
            Return CInt(p残り枚数でカードサイズ変更_RW(gcoプロパGet))
        End Get
        Set(ByVal value As Integer)
            Call p残り枚数でカードサイズ変更_RW(gcoプロパLet, CStr(value))
        End Set
    End Property
    Private Function p残り枚数でカードサイズ変更_RW(ByVal プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "p残り枚数でカードサイズ変更" : Const 値DEF As Integer = 0 : Const 下 As Integer = 0 : Const 上 As Integer = 1   '0, 1
        Static 値 As Integer : Dim 旧値 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"する", "しない"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, 値)
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick : 値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend Function pカードサイズ枠の太さ_描画用実寸_現在(ByVal カードBMP_WD As Integer, ByVal カードBMP_HT As Integer) As Integer
        Return (カードBMP_WD + カードBMP_HT) * pカードサイズ枠の太さ実効値_現在()
    End Function
    Friend Function pカードサイズ枠の太さ_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pカードサイズ枠の太さ_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend Sub pカードサイズ枠の太さListBoxに設定(ByRef box As ListBox)
        If box IsNot Nothing Then box.SelectedIndex = Ⅹ数値範囲Int(-1, box.Items.Count - 1, pカードサイズ枠の太さ)
    End Sub
    Friend Sub pカードサイズ枠の太さListBoxから読出し(ByRef box As ListBox)
        If box IsNot Nothing Then pカードサイズ枠の太さ = box.SelectedIndex
    End Sub
    Friend Function pカードサイズ枠の太さ実効値(ByVal Idx As Integer) As Single 'インデックス 0 - 5 から実際の値  Single 0.02 - 0.06 を返す。
        Return CSng(pカードサイズ枠の太さ_RW(gcoプロパGet現在の実効値を, CStr(Idx)))
    End Function
    Friend Function pカードサイズ枠の太さ実効値_現在() As Single              '現在のインデックス設定の　実際の値  Single 0.02 - 0.06 を返す。
        Return CSng(pカードサイズ枠の太さ_RW(gcoプロパGet現在の実効値を, CStr(pカードサイズ枠の太さ)))
    End Function
    Friend ReadOnly Property pカードサイズ枠の太さDEF() As Integer
        Get
            Return CInt(pカードサイズ枠の太さ_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property pカードサイズ枠の太さ() As Integer
        Get
            Return CInt(pカードサイズ枠の太さ_RW(gcoプロパGet))
        End Get
        Set(ByVal Value As Integer)
            Call pカードサイズ枠の太さ_RW(gcoプロパLet, CStr(Value))
        End Set
    End Property
    Friend Function pカードサイズ枠の太さ_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        'val 0.02 - 0.05  Index 0 - 4
        Const PropName As String = "pカードサイズ枠の太さ" : Const idxMAX As Integer = 4 : Const idxDEF As Integer = 2
        Static 値() As Single = {0.02, 0.0275, 0.035, 0.0425, 0.05}
        Static idx現在 As Integer : Dim idxOLD As Integer
        idxOLD = idx現在
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"細い", "少し細い", "ふつう", "少し太い", "太い"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, (pカードサイズ枠の太さ))
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : idx現在 = idxDEF
            Case gcoプロパ規定値 : Return CStr(idxDEF)
            Case gcoプロパGet : Return CStr(Ⅹ数値範囲Int(0, idxMAX, idx現在))
            Case gcoプロパLet : idx現在 = Ⅹ数値範囲Int(0, idxMAX, Val(s)) '0 - idxMAX 
            Case gcoプロパMenuClick : idx現在 = Ⅹ数値範囲Int(0, idxMAX, Val(s)) '0 - idxMAX  
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(idx現在))
            Case gcoプロパiniRD : idx現在 = Ⅹ数値範囲Int(0, idxMAX, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s))) '0 - idxMAX 
            Case gcoプロパGet現在の実効値を : Return CStr(値(Ⅹ数値範囲Int(0, idxMAX, Val(s)))) 'インデックスから実際の値  Integer 0.02 - 0.06 を返す。
        End Select
        'If idxOLD <> idx現在 Then プロパコマンドthis = 112233 Else プロパコマンドthis = プロパコマンド
        Select Case プロパコマンド
            Case gcoプロパMenuClick, gcoプロパLet  ', gcoプロパ初期化
                With frmMain
                    If .aaCallCheck再作成モードの設定(idx現在, idxOLD, プロパコマンド) Then Call aa再作成モードの設定(391)
                    Call .aaもしゲーム停止状態なら_画面クリア() 'ファイル共用のためのダミー関数も含む
                End With
        End Select
        Return CStr(Ⅹ数値範囲Int(0, idxMAX, idx現在))
    End Function
    '***********************************************************************
    Friend Function pカードスピードCPU性能差の補正_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pカードスピードCPU性能差の補正_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property pカードスピードCPU性能差の補正DEF() As Integer   'index value mmm(x) = 1 to 5   list index = 0 to 4
        Get
            Return CInt(pカードスピードCPU性能差の補正_RW(gcoプロパ規定値)) - 1   'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Get
    End Property
    Friend Property pカードスピードCPU性能差の補正() As Integer   'index value mmm(x) = 1 to 5   list index = 0 to 4
        Get
            Return CInt(pカードスピードCPU性能差の補正_RW(gcoプロパGet)) - 1   'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Get
        Set(ByVal Value As Integer)
            Call pカードスピードCPU性能差の補正_RW(gcoプロパLet, CStr(Value + 1))   'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Set
    End Property
    Friend Function pカードスピードCPU性能差の補正_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String 'index value mmm(x) = 1 to 5  
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"0.25　倍", "0.50　倍", "1.00　倍", "2.00　倍", "4.00　倍"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, (pカードスピードCPU性能差の補正))
            Case Else
                Static 値 As Integer : Dim 旧値 As Integer : Dim sss As String
                旧値 = 値
                sss = ooRandMode.p移動スピードCPU性能差の補正_RW(プロパコマンド, s, Nothing, Nothing, Nothing, Nothing, Nothing)
                値 = Val(sss)
                With frmMain
                    If .aaCallCheck再作成モードの設定(値, 旧値, プロパコマンド) Then Call aa再作成モードの設定(6)
                End With
                Return sss
        End Select
    End Function
    '***********************************************************************
    Friend Function pカードスピード_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pカードスピード_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property pカードスピードDEF() As Integer   'index value mmm(x) = 1 to 5   list index = 0 to 4
        Get
            Return CInt(pカードスピード_RW(gcoプロパ規定値)) - 1 'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Get
    End Property
    Friend Property pカードスピード() As Integer  'index value mmm(x) = 1 to 5   list index = 0 to 4
        Get
            Return CInt(pカードスピード_RW(gcoプロパGet)) - 1 'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Get
        Set(ByVal Value As Integer)
            Call pカードスピード_RW(gcoプロパLet, CStr(Value + 1)) 'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Set
    End Property
    Friend Function pカードスピード_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String        'index value mmm(x) = 1 to 5   list index = 0 to 4
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"おそい", "少しおそい", "ふつう", "少しはやい", "はやい"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, (pカードスピード))
            Case Else
                Static 値 As Integer : Dim 旧値 As Integer : Dim sss As String
                旧値 = 値
                sss = ooRandMode.p移動スピード_RW(プロパコマンド, s, Nothing, Nothing, Nothing, Nothing, Nothing)
                値 = Val(sss) 'index value mmm(x) = 1 to 5
                With frmMain
                    If .aaCallCheck再作成モードの設定(値, 旧値, プロパコマンド) Then Call aa再作成モードの設定(6)
                End With
                Return sss
        End Select
    End Function
    '***********************************************************************
    Friend Function p移動曲線の半径_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(p移動ライン曲率_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property p移動ライン曲率DEF() As Integer   'index value mmm(x) = 1 to 5   list index = 0 to 4
        Get
            Return CInt(p移動ライン曲率_RW(gcoプロパ規定値)) - 1   'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Get
    End Property
    Friend Property p移動ライン曲率() As Integer   'index value mmm(x) = 1 to 5   list index = 0 to 4
        Get
            Return CInt(p移動ライン曲率_RW(gcoプロパGet)) - 1   'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Get
        Set(ByVal Value As Integer)
            Call p移動ライン曲率_RW(gcoプロパLet, CStr(Value + 1))   'index value mmm(x) = 1 to 5   list index = 0 to 4
        End Set
    End Property
    Friend Function p移動ライン曲率_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"小さい", "少し小さい", "ふつう", "少し大きい", "大きい"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, (p移動ライン曲率))
            Case Else
                Static 値 As Integer : Dim 旧値 As Integer : Dim sss As String
                旧値 = 値
                sss = ooRandMode.p移動曲線の半径_RW(プロパコマンド, s, Nothing, Nothing, Nothing, Nothing, Nothing)
                値 = Val(sss)
                With frmMain
                    If .aaCallCheck再作成モードの設定(値, 旧値, プロパコマンド) Then Call aa再作成モードの設定(6)
                End With
                Return sss
        End Select
    End Function
    '***********************************************************************
    Friend Sub pサウンドを鳴らすCheckBoxに設定(ByRef box As CheckBox)
        If box IsNot Nothing Then box.Checked = pサウンドを鳴らす
    End Sub
    Friend Sub pサウンドを鳴らすCheckBoxから読出し(ByRef box As CheckBox)
        If box IsNot Nothing Then pサウンドを鳴らす = box.Checked
    End Sub
    Friend ReadOnly Property pサウンドを鳴らすDEF() As Boolean
        Get
            Return CBool(pサウンドを鳴らす_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property pサウンドを鳴らす() As Boolean
        Get
            Return CBool(pサウンドを鳴らす_RW(gcoプロパGet))
        End Get
        Set(ByVal Value As Boolean)
            Call pサウンドを鳴らす_RW(gcoプロパLet, CStr(Value))
        End Set
    End Property
    Friend Function pサウンドを鳴らす_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "") As String
        Const PropName As String = "pサウンドを鳴らす" : Const 値DEF As Boolean = True : Static 値 As Boolean
        Select Case プロパコマンド
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet : 値 = CBool(s)
            Case gcoプロパMenuClick : 値 = Not 値
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = CBool(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s))
        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend ReadOnly Property pゲームカード型すべてのDEF() As String
        Get
            Return pゲームカード型_RW(gcoプロパ規定値)
        End Get
    End Property
    Friend Function pゲームカード型_使用中_カード型ID_Ary(ByRef wAryカード型ID() As Integer) As Integer
        '配列は１ベースで返されるので注意すること　　return wAryカード型ID ( 1  to  max )
        Dim sss As String = pゲームカード型使用中
        If Left(sss, 1) = 星 Then sss = Mid(sss, 2)
        Dim ary() As String = {""}
        Dim m As Integer = Ⅹ文をカットして配列にする(sss, 星, ary)
        ReDim wAryカード型ID(m)
        For a As Integer = 1 To m
            wAryカード型ID(a) = Val(ary(a))
        Next
        Return m
    End Function
    Friend Function pゲームカード型_使用中です(ByRef rカード型IDX As Integer) As Boolean
        Return CBool(pゲームカード型_RW(30000, CStr(rカード型IDX)))
    End Function
    Friend Property pゲームカード型使用中() As String
        Get
            Return pゲームカード型_RW(gcoプロパGet)
        End Get
        Set(ByVal Value As String)
            Call pゲームカード型_RW(gcoプロパLet, Value)
        End Set
    End Property
    Friend Function pゲームカード型_使用変更(ByRef rAryカード_使用するならTrue() As Boolean) As Boolean
        Return "" <> pゲームカード型_RW(31000, pゲームカード型_IndexStr_FromAry(rAryカード_使用するならTrue))
    End Function
    Friend Function pゲームカード型_IndexStr_FromAry(ByRef rAryカード_使用するならTrue() As Boolean) As String
        Dim a As Integer
        Dim sss As String = 星
        For a = 0 To UBound(rAryカード_使用するならTrue)
            sss = sss + IIf(rAryカード_使用するならTrue(a), CStr(a) & 星, "")
        Next
        Return sss
    End Function
    Friend Function pゲームカード型_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef ユーザーカードタイトル As String = "") As String
        'Private Const cカード型ALLmin As Integer = 1    'ClsUrouro  と同じ
        'Private Const cカード型APPmax As Integer = 9    'ClsUrouro  と同じ
        'Private Const cカード型USERmin As Integer = 10  'ClsUrouro  と同じ
        'Private Const cカード型Allmax As Integer = 17   'ClsUrouro  と同じ
        Const PropName As String = "pゲームカード型"
        Static 値 As String '文字列　"★1★3.....★5★6★11★14★...17★"    'cカード型ALLmin  to  cカード型Allmax
        Dim a As Integer, t As String = "", 旧値 As String
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパ名
                Return PropName
            Case gcoプロパ初期化, gcoプロパ規定値, 102020, 102030  'プロパ初期化  /  値DEFすべて  /  値DEFアプリ  /  値DEFユーザー  /  return  文字列　".....★5★6★11★14★18★19★23...."
                Dim bol As Boolean = (プロパコマンド = gcoプロパ初期化) Or (プロパコマンド = gcoプロパ規定値)
                Dim stt As Integer = IIf(bol, cカード型ALLmin, IIf(プロパコマンド = 102020, cカード型ALLmin, cカード型USERmin))
                Dim stp As Integer = IIf(bol, cカード型Allmax, IIf(プロパコマンド = 102020, cカード型APPmax, cカード型Allmax))
                t = 星
                For a = stt To stp : t = t & CStr(a) + 星 : Next
                If プロパコマンド = gcoプロパ初期化 Then
                    値 = t
                Else
                    Return t
                End If
            Case gcoプロパGet
                Return 値
            Case gcoプロパLet
                値 = s
                If Len(値) < 2 Or InStr(値, 星) = 0 Then 値 = pゲームカード型すべてのDEF
            Case gcoプロパiniWR
                Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, 値)
            Case gcoプロパiniRD
                gggstr = pゲームカード型_RW(gcoプロパLet, ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s), "")

                'Case 102040  'pゲームカード型タイトル(ByVal カード型IDX As Integer) カード型の文字列を返す
                '    a = Ⅹ数値範囲Int(cカード型ALLmin, cカード型Allmax, Val(s))
                '    Return mカード型データー基本設定(a).メニュータイトル
                'Case 202040    'pゲームカード型タイトルユーザ             GET  pゲームカード型_RW(202040, CStr(カード型IDX))
                '    a = Ⅹ数値範囲Int(cカード型USERmin, cカード型Allmax, Val(s))
                '    Return mカード型データー基本設定(a).メニュータイトル
                'Case 202041    'pゲームカード型タイトルユーザ             SET  pゲームカード型_RW(202041, CStr(カード型IDX), ユーザーカードタイトル)
                '    a = Ⅹ数値範囲Int(cカード型USERmin, cカード型Allmax, Val(s))
                '    mカード型データー基本設定(a).メニュータイトル = Left(ユーザーカードタイトル, 16)

            Case 30000     'pゲームカード型_使用中です(ByRef rカード型IDX As Integer) 
                Return CStr(InStr(星 + 値, 星 + s + 星) > 0)
            Case 31000     'pスイスイカード型_使用変更(ByRef rAryカード_使用するならTrue() As Boolean)
                値 = s
                If Len(値) < 2 Or InStr(値, 星) = 0 Then 値 = pゲームカード型_RW(gcoプロパ規定値)
        End Select
        If 旧値 <> 値 Then
            With frmMain
                If .aaCallCheck再作成モードの設定(値, 旧値) Then Call aa再作成モードの設定(4, True)
                Call .aaもしゲーム停止状態なら_画面クリア() 'ファイル共用のためのダミー関数も含む
            End With
        End If
        Return 値
    End Function
    '***********************************************************************
    Friend Function pゲームカード型使用中の現在のIDX_NextSet() As Integer
        'かなカナ　固有
        Return CInt(pゲームカード型使用中の現在のIDX_RW(125478))
    End Function
    Friend Property pゲームカード型使用中の現在のIDX() As Integer
        Get
            Return CInt(pゲームカード型使用中の現在のIDX_RW(gcoプロパGet))
        End Get
        Set(ByVal Value As Integer)
            Call pゲームカード型使用中の現在のIDX_RW(gcoプロパLet, CStr(Value))
        End Set
    End Property
    Private Function pゲームカード型使用中の現在のIDX_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "") As String
        'Private Const cカード型ALLmin As Integer = 1    'ClsUrouro  と同じ
        'Private Const cカード型APPmax As Integer = 9    'ClsUrouro  と同じ
        'Private Const cカード型USERmin As Integer = 10  'ClsUrouro  と同じ
        'Private Const cカード型Allmax As Integer = 17   'ClsUrouro  と同じ
        Const PropName As String = "pゲームカード型使用中の現在のIDX"
        Static 値 As Integer   'c四角形=0   to   cUser7形=16    
        Dim wAryカード型ID(0) As Integer : Dim mmm As Integer : Dim a As Integer : Dim nnn As Integer
        Select Case プロパコマンド
            Case gcoプロパ初期化, gcoプロパGet, gcoプロパLet, 125478
                mmm = pゲームカード型_使用中_カード型ID_Ary(wAryカード型ID)  'return wAryカード型ID (  1  to  mmm  )
                If mmm = 0 Then
                    ReDim wAryカード型ID(1) : wAryカード型ID(1) = 1
                End If
        End Select
        Select Case プロパコマンド
            Case gcoプロパ名
                Return PropName
            Case gcoプロパ初期化
                If mmm < 0 Then 値 = 0 Else 値 = wAryカード型ID(1)

            Case gcoプロパGet
                For a = 1 To mmm
                    If wAryカード型ID(a) = 値 Then Return CStr(値)
                Next
                If mmm = 0 Then Return CStr(0) Else Return CStr(wAryカード型ID(1))

            Case gcoプロパLet
                nnn = Val(s)
                値 = 0
                For a = 1 To mmm
                    If wAryカード型ID(a) = nnn Then
                        値 = nnn : Exit For
                    End If
                Next
                If a > mmm Then
                    値 = wAryカード型ID(1)
                End If

            Case 125478
                'pゲームカード型使用中の現在のIDX_NextSet   
                For a = 1 To mmm
                    If wAryカード型ID(a) = 値 Then
                        If a = mmm Then a = 1 Else a = a + 1
                        値 = wAryカード型ID(a)
                        Return CStr(値)
                    End If
                Next
                '現在の　値　が　pゲームカード型_使用中　似ない場合は
                Dim sss As String = pゲームカード型使用中
                値 = Val(Mid(sss, 2))  '"★0★3.....★5★6★11★14★...16★"  
                Return CStr(値)

            Case gcoプロパiniWR
                Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))

            Case gcoプロパiniRD
                gggstr = pゲームカード型使用中の現在のIDX_RW(gcoプロパLet, ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s))

        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
    '2023/06/02 このプロパティは、かなカナのプロパティと同じ状態を定義する
    Friend Function pゲーム背景画像を表示_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pゲーム背景画像を表示_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property pゲーム背景画像を表示DEF() As Integer
        Get
            Return CInt(pゲーム背景画像を表示_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property pゲーム背景画像を表示BOOL() As Boolean
        Get
            Return (0 = CInt(pゲーム背景画像を表示_RW(gcoプロパGet)))
        End Get
        Set(ByVal value As Boolean)
            Call pゲーム背景画像を表示_RW(gcoプロパLet, IIf(value, "0", "1"))
            gggbol = gAppEventMaker.MakeEventゲーム背景画像の表示ONOFF(value)
        End Set
    End Property
    Friend Property pゲーム背景画像を表示() As Integer
        Get
            Return CInt(pゲーム背景画像を表示_RW(gcoプロパGet))
        End Get
        Set(ByVal value As Integer)
            Call pゲーム背景画像を表示_RW(gcoプロパLet, CStr(value))
            gggbol = gAppEventMaker.MakeEventゲーム背景画像の表示ONOFF(value = 0)
        End Set
    End Property
    Private Function pゲーム背景画像を表示_RW(ByVal プロパコマンド As Integer, Optional ByVal s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "pゲーム背景画像を表示" : Const 値DEF As Integer = 0 : Const 下 As Integer = 0 : Const 上 As Integer = 1   '0, 1
        Static 値 As Integer : Dim 旧値 As Integer : Static メヌ() As ToolStripMenuItem : Static メヌ下, メヌ上 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"する", "しない"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, (pゲーム背景画像を表示))
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF : Call frmMain.aaメニューオブジェ設定(PropName, メヌ, メヌ下, メヌ上)
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick : 値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
        End Select
        If 旧値 <> 値 Or プロパコマンド = gcoプロパiniRD Then
            Select Case プロパコマンド
                Case gcoプロパ初期化, gcoプロパLet, gcoプロパiniRD, gcoプロパMenuClick
                    Try
                        メヌ(メヌ下).Checked = (値 = 0)
                    Catch
                    End Try
            End Select
            Call aa背景の設定(True)
        End If
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend Function pゲーム背景画像の明るさ_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pゲーム背景画像の明るさ_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend Property pゲーム背景画像の明るさListIndex_0_5() As Integer
        Get
            Return CInt(pゲーム背景画像の明るさ_RW(13895))
        End Get
        Set(ByVal value As Integer)
            Call pゲーム背景画像の明るさ_RW(13889, CStr(value))
        End Set
    End Property
    Friend ReadOnly Property pゲーム背景画像の明るさDEF() As Single
        Get
            Return CSng(pゲーム背景画像の明るさ_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property pゲーム背景画像の明るさ() As Single
        Get
            Return CSng(pゲーム背景画像の明るさ_RW(gcoプロパGet))
        End Get
        Set(ByVal Value As Single)
            Call pゲーム背景画像の明るさ_RW(gcoプロパLet, CStr(Value))
        End Set
    End Property
    Friend Function pゲーム背景画像の明るさ_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "pゲーム背景画像の明るさ" : Const 値DEF As Single = 1.2 : Static 値 As Single : Dim 旧値 As Single : Dim a As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"暗い", "すこし暗い", "ふつう", "すこし明るい", "かなり明るい", "明るい"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, (pゲーム背景画像の明るさListIndex_0_5))
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet : 値 = Math.Max(0.6, Math.Min(1.6, Val(s)))   '値 = Ⅹ数値大小範囲Single(0.6, 1.6, Val(s))
            Case gcoプロパMenuClick
                Call pゲーム背景画像の明るさ_RW(gcoプロパLet, s)
            Case gcoプロパiniWR
                Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD
                値 = Math.Max(0.6, Math.Min(1.6, CSng(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s))))
            Case 13895 'Get pゲーム背景画像の明るさListIndex() :
                Select Case 値 : Case Is <= 0.6 : a = 0 : Case Is <= 0.8 : a = 1 : Case Is <= 1.0 : a = 2 : Case Is <= 1.2 : a = 3 : Case Is <= 1.4 : a = 4 : Case Else : a = 5 : End Select
                Return CStr(a)
            Case 13889 'Let pゲーム背景画像の明るさListIndex()
                a = Ⅹ数値範囲Int(0, 5, Val(s))
                Select Case a : Case Is <= 0 : 値 = 0.6 : Case 1 : 値 = 0.8 : Case 2 : 値 = 1.0 : Case 3 : 値 = 1.2 : Case 4 : 値 = 1.4 : Case Else : 値 = 1.6 : End Select
                If 旧値 <> 値 Then
                    プロパコマンド = gcoプロパLet '13889 = gcoプロパLet 代入
                End If
        End Select
        Select Case プロパコマンド
            Case gcoプロパMenuClick, gcoプロパLet  '''''''''''', 393
                If ppゲーム実行中 Then
                    gmウロウロポイポイ実行中_FormReSize = True
                Else
                    Call gmアプリ固有クラス.aa背景の設定(True)
                End If
        End Select
        If 旧値 <> 値 Then
            gggbol = gAppEventMaker.MakeEvent背景画像の明るさが変更された後の処理(値, pゲーム背景画像の明るさListIndex_0_5)
        End If
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend Function pゲーム背景画像の切り替え時間間隔_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(pゲーム背景画像の切り替え時間間隔_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend Function pゲーム背景画像の切り替え_タイムカウントオーバー() As Boolean
        Return CBool(pゲーム背景画像の切り替え時間間隔_RW(67021))
    End Function
    Friend Function pゲーム背景画像の切り替え_次の画像に_強制的に() As Boolean
        pゲーム背景画像の切り替え_カレントカウント = 10000000
        Call DlgFileゲーム用.tim切り替えタイマー_Tick(Nothing, Nothing)
        Return True
    End Function
    Friend Property pゲーム背景画像の切り替え_カレントカウント_満期() As Boolean
        Get
            Return CBool(pゲーム背景画像の切り替え時間間隔_RW(20050, ""))
        End Get
        Set(ByVal Value As Boolean)
            Call pゲーム背景画像の切り替え時間間隔_RW(200100, CStr(Value))
        End Set
    End Property
    Friend Property pゲーム背景画像の切り替え_カレントカウント() As Integer
        Get
            Return CInt(pゲーム背景画像の切り替え時間間隔_RW(123400, ""))
        End Get
        Set(ByVal Value As Integer)
            Call pゲーム背景画像の切り替え時間間隔_RW(123500, CStr(Value))
        End Set
    End Property
    Friend Function mn5ゲーム背景画像の切り替え時間間隔Do_COM_Click(ByRef Index As Integer) As String
        Return pゲーム背景画像の切り替え時間間隔_RW(gcoプロパMenuClick, CStr(Index))
    End Function
    Friend Property pゲーム背景画像の切り替え時間間隔ListIndex() As Integer
        Get
            Return CInt(pゲーム背景画像の切り替え時間間隔_RW(66554))
        End Get
        Set(ByVal Value As Integer)
            Call pゲーム背景画像の切り替え時間間隔_RW(66555, CStr(Value))
        End Set
    End Property
    Friend Property pゲーム背景画像の切り替え時間間隔() As Integer
        Get
            Return CInt(pゲーム背景画像の切り替え時間間隔_RW(gcoプロパGet))
        End Get
        Set(ByVal Value As Integer)
            Call pゲーム背景画像の切り替え時間間隔_RW(gcoプロパLet, CStr(Value))
        End Set
    End Property
    Friend Function pゲーム背景画像の切り替え時間間隔_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "pゲーム背景画像の切り替え時間間隔" : Const 値DEF As Integer = 60 : Static 値 As Integer : Dim 値old As Integer
        Static 下, 上 As Integer : Static メヌ() As ToolStripMenuItem
        '--------------------------------------------------------------------------------------------
        Static 切替カウント秒数現在 As Integer = 0 : Dim a As Integer, ss As String = ""
        '--------------------------------------------------------------------------------------------
        '実際の使用データー　20 - 300　秒単位
        Const m1 As String = "20" : Const m2 As String = "60" : Const m3 As String = "120" : Const m4 As String = "300" : Const 無し間隔 As String = "1000000"
        ''--------------------------------------------------------------------------------------------
        ''テストにのみ使用するデーター
        'Const m1 = "3", m2 = "6", m3 = "10", m4 = "20", 無し間隔 = "1000000"
        '--------------------------------------------------------------------------------------------
        値old = 値
        '--------------------------------------------------------------------------------------------
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"２０　秒", "１　　分", "２　　分", "５　　分", "切替しない"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, (pゲーム背景画像の切り替え時間間隔ListIndex))
                '----------------------------------------------------
            Case 66554  'Get List Index
                Select Case 値
                    Case Is <= 20 : Return CStr(0)
                    Case 60 : Return CStr(1)
                    Case 120 : Return CStr(2)
                    Case 300 : Return CStr(3)
                    Case Else : Return CStr(4)
                End Select
            Case 66555  'Set 値 from List Index 0 ... 4   'gcoプロパMenuClick Index 1 ... 5
                ss = CStr(Val(s) + 1)
                Return pゲーム背景画像の切り替え時間間隔_RW(gcoプロパMenuClick, ss)
                '----------------------------------------------------
            Case 67021  'pゲーム背景画像の切り替え_タイムカウントオーバー() 
                Return CStr(値 > 1000)
                '-----------------------------------------------------
            Case 123400 'GET   pゲーム背景画像の切り替え_カレントカウント 
                Return CStr(切替カウント秒数現在)
            Case 123500 'SET   pゲーム背景画像の切り替え_カレントカウント 
                切替カウント秒数現在 = CInt(s)
                '-----------------------------------------------------
            Case 20050 'GET  pゲーム背景画像の切り替え_カレントカウント_満期() As Boolean
                切替カウント秒数現在 = 切替カウント秒数現在 + 1
                Dim bol As Boolean = (切替カウント秒数現在 >= 値)
                If bol Then 切替カウント秒数現在 = 0
                Return CStr(bol)
            Case 200100 'SET  pゲーム背景画像の切り替え_カレントカウント_満期() As Boolean
                切替カウント秒数現在 = 値 + 10
                '-----------------------------------------------------
            Case gcoプロパ名
                Return PropName
            Case gcoプロパ初期化
                値 = 値DEF
                Call frmMain.aaメニューオブジェ設定(PropName, メヌ, 下, 上) : メヌ(1).Tag = m1 : メヌ(2).Tag = m2 : メヌ(3).Tag = m3 : メヌ(4).Tag = m4 : メヌ(5).Tag = 無し間隔
                切替カウント秒数現在 = 0

            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet
                値 = Ⅹ数値範囲Int(Val(m1), Val(無し間隔), Val(s))
            Case gcoプロパMenuClick
                Select Case Val(s) : Case 1 : 値 = Val(m1) : Case 2 : 値 = Val(m2) : Case 3 : 値 = Val(m3) : Case 4 : 値 = Val(m4) : Case Else : 値 = Val(無し間隔) : End Select
                値 = Ⅹ数値範囲Int(Val(m1), Val(無し間隔), 値)
                切替カウント秒数現在 = 0
            Case gcoプロパiniWR
                Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD
                値 = Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s))
        End Select
        Select Case プロパコマンド
            Case gcoプロパ初期化, gcoプロパLet, gcoプロパiniRD, gcoプロパMenuClick
                Try
                    Dim cap As String = ""
                    For a = 下 To 上
                        メヌ(a).Checked = (値 = Val(メヌ(a).Tag))
                        If メヌ(a).Checked Then cap = メヌ(a).Text
                    Next
                Catch
                End Try
        End Select
        '--------------------------------------------------------------------------------------------
        Select Case プロパコマンド
            Case gcoプロパLet, gcoプロパMenuClick 'pタイマーでの画像自動切り替え_ChkStart_On_AppStart
                If 値old <> 値 Then
                    Dim ret As Boolean = False
                    gggbol = イベントgAppEventMaker.MakeEvent画像切り替えタイマーのオンオフ(gmDlgFileゲーム用, (値 < Val(無し間隔)), ret)
                End If
        End Select
        '--------------------------------------------------------------------------------------------
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend ReadOnly Property pサウンドファイルDEF() As String
        Get
            Return pサウンドファイル_RW(gcoプロパ規定値)
        End Get
    End Property
    Friend Property pサウンドファイル() As String
        Get
            Return pサウンドファイル_RW(gcoプロパGet)
        End Get
        Set(ByVal value As String)
            Call pサウンドファイル_RW(gcoプロパLet, CStr(value))
        End Set
    End Property
    Friend Function pサウンドファイル_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "") As String
        Const PropName As String = "pサウンドファイル" : Static 値 As String
        Select Case プロパコマンド
            Case gcoプロパ名
                Return PropName
            Case gcoプロパ初期化
                値 = gmサウンドあたり
            Case gcoプロパ規定値
                Return gmサウンドあたり
            Case gcoプロパGet
                If 値 = "" Then 値 = gmサウンドあたり
                Return 値
            Case gcoプロパLet
                値 = s
            Case gcoプロパiniWR
                Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, 値)
            Case gcoプロパiniRD
                値 = ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)
        End Select
        If Not Ⅹファイルは存在(値) Then
            値 = gmサウンドあたり
        End If
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend Sub pサウンドファイルを順次変更するCheckBoxに設定(ByRef box As CheckBox)
        If box IsNot Nothing Then box.Checked = pサウンドファイルを順次変更する
    End Sub
    Friend Sub pサウンドファイルを順次変更するCheckBoxから読出し(ByRef box As CheckBox)
        If box IsNot Nothing Then pサウンドファイルを順次変更する = box.Checked
    End Sub
    Friend Property pサウンドファイルを順次変更する() As Boolean
        Get
            Return CBool(pサウンドファイルを順次変更する_RW(gcoプロパGet))
        End Get
        Set(ByVal Value As Boolean)
            Call pサウンドファイルを順次変更する_RW(gcoプロパLet, CStr(Value))
        End Set
    End Property
    Friend Function pサウンドファイルを順次変更する_RW(ByRef プロパコマンド As Integer, Optional ByRef s As String = "") As String
        Const PropName As String = "pサウンドファイルを順次変更する" : Const 値DEF As Boolean = True : Static 値 As Boolean
        Select Case プロパコマンド
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet : 値 = CBool(s)
            Case gcoプロパMenuClick : 値 = Not 値
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = CBool(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s))
        End Select
        Return CStr(値)
    End Function
    Private Function pサウンドファイルの配列_NEXT() As String
        Dim Ary() As String = {""}, sss As String = ""
        Return pサウンドファイルの配列_RW(102030, Ary, sss)
    End Function
    Friend Function pサウンドファイルの配列_RW(ByVal プロパコマンド As Integer, ByRef rwAry() As String, ByVal rAryDataStr As String) As String
        Const PropName As String = "pサウンドファイルの配列" : Const cut = "|**|"
        Static 値() As String = {""}     'Use  値( 1 to ubound )
        Static CurIDX As Integer = 0      '( 1 to ubound )
        Select Case プロパコマンド
            Case gcoプロパGetARY
                If Not Ⅹ文配列のコピー(rwAry, 値) Then Return ""
                Return CStr(UBound(値))
            Case gcoプロパLetARY
                If Not Ⅹ文配列のコピー(値, rwAry) Then Return ""
                Return CStr(UBound(値))
            Case gcoプロパconvARYtoSTR
                Dim sss As String = Ⅹ文を配列から作成(値, cut)
                Return sss
            Case gcoプロパconvSTRtoARY
                Dim max As Integer = Ⅹ文をカットして配列にする(rAryDataStr, cut, rwAry)
                Return CStr(max)
            Case gcoプロパ名
                Return PropName
            Case gcoプロパ初期化
                ReDim 値(1) : 値(1) = pサウンドファイル
            Case gcoプロパiniWR
                Dim w As String = pサウンドファイルの配列_RW(gcoプロパconvARYtoSTR, 値, "")
                Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, w)

                '*************************************************************************************
                '2023/03/03/  エラー修正、最初に設定されず　　値(0)　の場合に致命的エラーになっていた。
            Case gcoプロパiniRD
                Dim w As String = ⅩIniデーター文_RW(gcoプロパiniRD, PropName, rAryDataStr)
                If InStr(w, ":\") = 0 Then
                    w = pサウンドファイルDEF
                End If
                Return pサウンドファイルの配列_RW(gcoプロパconvSTRtoARY, 値, w)

            Case 102030  'pサウンドファイルの配列_NEXT()
                If UBound(値) < 1 Then
                    Call pサウンドファイルの配列_RW(gcoプロパ初期化, gggstrary, "")
                End If
                CurIDX = CurIDX + 1
                If CurIDX > UBound(値) Then CurIDX = 1
                Return 値(CurIDX)

                '*************************************************************************************

        End Select
        Return ""
    End Function
    '***********************************************************************
    Friend Function p消えるカードのスピード_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(p消えるカードのスピード_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property p消えるカードのスピード_実効値() As Integer
        Get
            Return CInt(p消えるカードのスピード_RW(gcoプロパ実効値))
        End Get
    End Property
    Friend ReadOnly Property p消えるカードのスピードDEF() As Integer
        Get
            Return CInt(p消えるカードのスピード_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property p消えるカードのスピード() As Integer
        Get
            Return CInt(p消えるカードのスピード_RW(gcoプロパGet))
        End Get
        Set(ByVal value As Integer)
            Call p消えるカードのスピード_RW(gcoプロパLet, CStr(value))
        End Set
    End Property
    Private Function p消えるカードのスピード_RW(ByVal プロパコマンド As Integer, Optional ByVal s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "p消えるカードのスピード" : Const 値DEF As Integer = 2 : Const 下 As Integer = 0 : Const 上 As Integer = 4   '0, 1, 2, 3, 4
        Static 実効値() As Integer = {600, 500, 400, 300, 200}
        Static 値 As Integer : Dim 旧値 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"おそい", "少しおそい", "ふつう", "少しはやい", "はやい"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, 値)
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick : 値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
            Case gcoプロパ実効値
                Return CStr(実効値(Ⅹ数値範囲Int(下, 上, 値)))
        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend Function p消えるカードのサイズ変化_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(p消えるカードのサイズ変化_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property p消えるカードのサイズ変化_実効値() As Single
        Get
            Return CSng(p消えるカードのサイズ変化_RW(gcoプロパ実効値))
        End Get
    End Property
    Friend ReadOnly Property p消えるカードのサイズ変化DEF() As Integer
        Get
            Return CInt(p消えるカードのサイズ変化_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property p消えるカードのサイズ変化() As Integer
        Get
            Return CInt(p消えるカードのサイズ変化_RW(gcoプロパGet))
        End Get
        Set(ByVal value As Integer)
            Call p消えるカードのサイズ変化_RW(gcoプロパLet, CStr(value))
        End Set
    End Property
    Private Function p消えるカードのサイズ変化_RW(ByVal プロパコマンド As Integer, Optional ByVal s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "p消えるカードのサイズ変化" : Const 値DEF As Integer = 2 : Const 下 As Integer = 0 : Const 上 As Integer = 4   '0, 1, 2, 3, 4
        Static 実効値() As Single = {1.2, 1.4, 1.7, 2.1, 2.6}
        Static 値 As Integer : Dim 旧値 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"小さい", "少し小さい", "ふつう", "少し大きい", "大きい"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, 値)
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick : 値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
            Case gcoプロパ実効値
                Return CStr(実効値(Ⅹ数値範囲Int(下, 上, 値)))
        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend Function p消えるカードの背景模様_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(p消えるカードの背景模様_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property p消えるカードの背景模様DEF() As Integer
        Get
            Return CInt(p消えるカードの背景模様_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property p消えるカードの背景模様() As Integer
        Get
            Return CInt(p消えるカードの背景模様_RW(gcoプロパGet))
        End Get
        Set(ByVal value As Integer)
            Call p消えるカードの背景模様_RW(gcoプロパLet, CStr(value))
        End Set
    End Property
    Private Function p消えるカードの背景模様_RW(ByVal プロパコマンド As Integer, Optional ByVal s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "p消えるカードの背景模様" : Const 値DEF As Integer = 0 : Const 下 As Integer = 0 : Const 上 As Integer = 1   '0, 1
        Static 値 As Integer : Dim 旧値 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"リング", "ベタ塗り"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, 値)
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick : 値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
    Friend Function p消えるカードの背景サイズ_ListBox初期化(ByRef lst As ListBox) As Integer
        Return CInt(p消えるカードの背景サイズ_RW(gcoプロパListBoxSet, "", lst))
    End Function
    Friend ReadOnly Property p消えるカードの背景サイズ_実効値() As Single
        Get
            Return CSng(p消えるカードの背景サイズ_RW(gcoプロパ実効値))
        End Get
    End Property
    Friend ReadOnly Property p消えるカードの背景サイズDEF() As Integer
        Get
            Return CInt(p消えるカードの背景サイズ_RW(gcoプロパ規定値))
        End Get
    End Property
    Friend Property p消えるカードの背景サイズ() As Integer
        Get
            Return CInt(p消えるカードの背景サイズ_RW(gcoプロパGet))
        End Get
        Set(ByVal value As Integer)
            Call p消えるカードの背景サイズ_RW(gcoプロパLet, CStr(value))
        End Set
    End Property
    Private Function p消えるカードの背景サイズ_RW(ByVal プロパコマンド As Integer, Optional ByVal s As String = "", Optional ByRef lst As ListBox = Nothing) As String
        Const PropName As String = "p消えるカードの背景サイズ" : Const 値DEF As Integer = 2 : Const 下 As Integer = 0 : Const 上 As Integer = 4   '0, 1, 2, 3, 4
        Static 実効値() As Single = {1.4, 1.6, 1.8, 2.2, 2.8}
        Static 値 As Integer : Dim 旧値 As Integer
        旧値 = 値
        Select Case プロパコマンド
            Case gcoプロパListBoxSet
                Static ListItemText() As String = {"小さい", "少し小さい", "ふつう", "少し大きい", "大きい"}
                Return Ⅹリストボックスにリストをセット_Ret_Cstr_CurListIndex(lst, ListItemText, 値)
            Case gcoプロパ名 : Return PropName
            Case gcoプロパ初期化 : 値 = 値DEF
            Case gcoプロパ規定値 : Return CStr(値DEF)
            Case gcoプロパGet : Return CStr(値)
            Case gcoプロパLet, gcoプロパMenuClick : 値 = Ⅹ数値範囲Int(下, 上, Val(s))
            Case gcoプロパiniWR : Return ⅩIniデーター文_RW(gcoプロパiniWR, PropName, CStr(値))
            Case gcoプロパiniRD : 値 = Ⅹ数値範囲Int(下, 上, Val(ⅩIniデーター文_RW(gcoプロパiniRD, PropName, s)))
            Case gcoプロパ実効値
                Return CStr(実効値(Ⅹ数値範囲Int(下, 上, 値)))
        End Select
        Return CStr(値)
    End Function
    '***********************************************************************
#End Region

#Region "イベント from 標準サウンド設定Dlg ( 四frmDlgSound )"
    Friend Sub mn3optサウンド設定Dlg_Load_1_Disposed_2(ByVal op As Integer, ByVal rOwner As Form)
        Select Case op
            Case 1 'New Load
                If gmアプリ終了する Then Return
                If 1 = GMCOM_ダイアログモードレス表示チェック(標準サウンド設定Dlg) Then
                    標準サウンド設定Dlg = New 四frmDlgSound : 標準サウンド設定Dlg.Show(rOwner)
                End If
            Case 2 'after Disposed
                標準サウンド設定Dlg = Nothing
        End Select
    End Sub
    Private Sub 標準サウンド設定Dlg_他のウインドウが表示あるいは非表示になりました(ByVal rMe_gmDlgID As Integer, ByVal r表示変更ウインドウID As Integer, ByVal r表示True消去False As Boolean, ByRef wRet_rMe_gmDlgIDウインドウを消去しなさい As Boolean) Handles 標準サウンド設定Dlg.他のウインドウが表示あるいは非表示になりました
        wRet_rMe_gmDlgIDウインドウを消去しなさい = GMCOM_Dlgs他のウインドウの表示_非表示イベントで_rMe_ウインドウを消去しなさい(rMe_gmDlgID, r表示変更ウインドウID, r表示True消去False)
    End Sub
    Private Sub 標準サウンド設定Dlg_標準サウンド設定Dlgの初期化をしてください(ByRef wIsOK As Boolean, ByRef wMe_gmDlgID As Integer) Handles 標準サウンド設定Dlg.標準サウンド設定Dlgの初期化をしてください
        wIsOK = True
        wMe_gmDlgID = gmDlgサウンド設定
    End Sub
#End Region

#Region "イベント from ウロウロオプション設定Dlg"

    Friend Sub aaウロウロオプション設定Dlg_Load_1_Disposed_2(ByVal op As Integer, ByVal rOwner As Form)
        Try
            Select Case op
                Case 1 'New Load
                    If gmアプリ終了する Then Return
                    If 1 = GMCOM_ダイアログモードレス表示チェック(ウロウロオプション設定Dlg) Then
                        ウロウロオプション設定Dlg = New 四frmDlgOptionUrouro
                        ウロウロオプション設定Dlg.Owner = rOwner
                        gggbol = ウロウロオプション設定Dlg.ウロウロオプション設定DlgShow0(ppゲーム実行中, gmDlgウロウロオプション設定Dlg, "ウロウロ オプション設定")
                    End If
                Case 2 'after Disposed
                    ウロウロオプション設定Dlg = Nothing
            End Select
        Catch
            MsgBox(ErrorToString)
        End Try
    End Sub
    Private Sub ウロウロオプション設定Dlg_aaaコントロールに_DlgStart初期データー_を設定してください(ByRef wIsOK As Boolean, ByRef wMe_gmDlgID As Integer, ByRef wlst背景の明るさ As ListBox, ByRef wlst枠の太さ As ListBox, ByRef wlstカードのサイズ As ListBox, ByRef wlstカードスピード As ListBox, ByRef wlstスピード補正 As ListBox, ByRef wlstライン曲率 As ListBox, ByRef wlstカードサイズ大中小モード As ListBox, ByRef wlstカードをズーミング As ListBox, ByRef wlst消えるカードのスピード As ListBox, ByRef wlst消えるカードのズームサイズ As ListBox, ByRef mnuすべて元に戻す As ToolStripMenuItem, ByRef mnu規定値にリセット As ToolStripMenuItem, ByRef wlst残り枚数でカードサイズ変更 As ListBox, ByRef wlst消えるカードの背景模様 As ListBox, ByRef wlst消えるカードの背景サイズ As ListBox, ByRef rDlgStart初期データー13() As Integer) Handles ウロウロオプション設定Dlg.aaaコントロールに_DlgStart初期データー_を設定してください
        wIsOK = True
        wlst背景の明るさ.SelectedIndex = rDlgStart初期データー13(1)
        wlst枠の太さ.SelectedIndex = rDlgStart初期データー13(2)
        wlstカードのサイズ.SelectedIndex = rDlgStart初期データー13(3)
        wlstカードスピード.SelectedIndex = rDlgStart初期データー13(4)
        wlstスピード補正.SelectedIndex = rDlgStart初期データー13(5)
        wlstライン曲率.SelectedIndex = rDlgStart初期データー13(6)
        wlstカードサイズ大中小モード.SelectedIndex = rDlgStart初期データー13(7)
        wlstカードをズーミング.SelectedIndex = rDlgStart初期データー13(8)
        wlst消えるカードのスピード.SelectedIndex = rDlgStart初期データー13(9)
        wlst消えるカードのズームサイズ.SelectedIndex = rDlgStart初期データー13(10)
        wlst残り枚数でカードサイズ変更.SelectedIndex = rDlgStart初期データー13(11)
        wlst消えるカードの背景模様.SelectedIndex = rDlgStart初期データー13(12)
        wlst消えるカードの背景サイズ.SelectedIndex = rDlgStart初期データー13(13)
        Call zzウロウロオプション設定Dlg_Enabled_Set(wlst背景の明るさ, wlst枠の太さ, wlstカードのサイズ, wlstカードスピード, wlstスピード補正, wlstライン曲率, wlstカードサイズ大中小モード, wlstカードをズーミング, wlst消えるカードのスピード, wlst消えるカードのズームサイズ, mnuすべて元に戻す, mnu規定値にリセット, wlst残り枚数でカードサイズ変更, wlst消えるカードの背景模様, wlst消えるカードの背景サイズ, rDlgStart初期データー13)
    End Sub

    Private Sub ウロウロオプション設定Dlg_aaaコントロールに規定値を設定してください(ByRef wIsOK As Boolean, ByRef wMe_gmDlgID As Integer, ByRef wlst背景の明るさ As ListBox, ByRef wlst枠の太さ As ListBox, ByRef wlstカードのサイズ As ListBox, ByRef wlstカードスピード As ListBox, ByRef wlstスピード補正 As ListBox, ByRef wlstライン曲率 As ListBox, ByRef wlstカードサイズ大中小モード As ListBox, ByRef wlstカードをズーミング As ListBox, ByRef wlst消えるカードのスピード As ListBox, ByRef wlst消えるカードのズームサイズ As ListBox, ByRef mnuすべて元に戻す As ToolStripMenuItem, ByRef mnu規定値にリセット As ToolStripMenuItem, ByRef wlst残り枚数でカードサイズ変更 As ListBox, ByRef wlst消えるカードの背景模様 As ListBox, ByRef wlst消えるカードの背景サイズ As ListBox, ByRef rDlgStart初期データー13() As Integer) Handles ウロウロオプション設定Dlg.aaaコントロールに規定値を設定してください
        wIsOK = True
        pゲーム背景画像の明るさ = pゲーム背景画像の明るさDEF : wlst背景の明るさ.SelectedIndex = pゲーム背景画像の明るさListIndex_0_5
        pカードサイズ枠の太さ = pカードサイズ枠の太さDEF : wlst枠の太さ.SelectedIndex = pカードサイズ枠の太さ
        pゲームカードのサイズ = pゲームカードのサイズDEF : wlstカードのサイズ.SelectedIndex = pゲームカードのサイズListIndex_0_4
        pカードスピード = pカードスピードDEF : wlstカードスピード.SelectedIndex = pカードスピード
        pカードスピードCPU性能差の補正 = pカードスピードCPU性能差の補正DEF : wlstスピード補正.SelectedIndex = pカードスピードCPU性能差の補正
        p移動ライン曲率 = p移動ライン曲率DEF : wlstライン曲率.SelectedIndex = p移動ライン曲率
        pゲームカードのサイズ大中小 = pゲームカードのサイズ大中小DEF : wlstカードサイズ大中小モード.SelectedIndex = pゲームカードのサイズ大中小
        pカードをズーミング = pカードをズーミングDEF : wlstカードをズーミング.SelectedIndex = pカードをズーミング
        p消えるカードのスピード = p消えるカードのスピードDEF : wlst消えるカードのスピード.SelectedIndex = p消えるカードのスピード
        p消えるカードのサイズ変化 = p消えるカードのサイズ変化DEF : wlst消えるカードのズームサイズ.SelectedIndex = p消えるカードのサイズ変化
        p残り枚数でカードサイズ変更 = p残り枚数でカードサイズ変更DEF : wlst残り枚数でカードサイズ変更.SelectedIndex = p残り枚数でカードサイズ変更
        p消えるカードの背景模様 = p消えるカードの背景模様DEF : wlst消えるカードの背景模様.SelectedIndex = p消えるカードの背景模様
        p消えるカードの背景サイズ = p消えるカードの背景サイズDEF : wlst消えるカードの背景サイズ.SelectedIndex = p消えるカードの背景サイズ
        Call zzウロウロオプション設定Dlg_Enabled_Set(wlst背景の明るさ, wlst枠の太さ, wlstカードのサイズ, wlstカードスピード, wlstスピード補正, wlstライン曲率, wlstカードサイズ大中小モード, wlstカードをズーミング, wlst消えるカードのスピード, wlst消えるカードのズームサイズ, mnuすべて元に戻す, mnu規定値にリセット, wlst残り枚数でカードサイズ変更, wlst消えるカードの背景模様, wlst消えるカードの背景サイズ, rDlgStart初期データー13)
    End Sub

    Private Sub ウロウロオプション設定Dlg_aaaコントロールの初期化をしてください(ByRef wIsOK As Boolean, ByRef wMe_gmDlgID As Integer, ByVal OpCode_All_0__or__SelectOnly_1_to_13 As Integer, ByRef wlst背景の明るさ As ListBox, ByRef wlst枠の太さ As ListBox, ByRef wlstカードのサイズ As ListBox, ByRef wlstカードスピード As ListBox, ByRef wlstスピード補正 As ListBox, ByRef wlstライン曲率 As ListBox, ByRef wlstカードサイズ大中小モード As ListBox, ByRef wlstカードをズーミング As ListBox, ByRef wlst消えるカードのスピード As ListBox, ByRef wlst消えるカードのズームサイズ As ListBox, ByRef mnuすべて元に戻す As ToolStripMenuItem, ByRef mnu規定値にリセット As ToolStripMenuItem, ByRef wlst残り枚数でカードサイズ変更 As ListBox, ByRef wlst消えるカードの背景模様 As ListBox, ByRef wlst消えるカードの背景サイズ As ListBox, ByRef wDlgStart初期データー13() As Integer) Handles ウロウロオプション設定Dlg.aaaコントロールの初期化をしてください
        wIsOK = True
        wMe_gmDlgID = gmDlgウロウロオプション設定Dlg
        '--------------------------------------------------------
        Dim a As Integer = OpCode_All_0__or__SelectOnly_1_to_13
        '--------------------------------------------------------
        If a = 0 Or a = 1 Then gggint = pゲーム背景画像の明るさ_ListBox初期化(wlst背景の明るさ) : wDlgStart初期データー13(1) = wlst背景の明るさ.SelectedIndex
        If a = 0 Or a = 2 Then gggint = pカードサイズ枠の太さ_ListBox初期化(wlst枠の太さ) : wDlgStart初期データー13(2) = wlst枠の太さ.SelectedIndex
        If a = 0 Or a = 3 Then gggint = pゲームカードのサイズ_ListBox初期化(wlstカードのサイズ) : wDlgStart初期データー13(3) = wlstカードのサイズ.SelectedIndex
        If a = 0 Or a = 4 Then gggint = pカードスピード_ListBox初期化(wlstカードスピード) : wDlgStart初期データー13(4) = wlstカードスピード.SelectedIndex
        If a = 0 Or a = 5 Then gggint = pカードスピードCPU性能差の補正_ListBox初期化(wlstスピード補正) : wDlgStart初期データー13(5) = wlstスピード補正.SelectedIndex
        If a = 0 Or a = 6 Then gggint = p移動曲線の半径_ListBox初期化(wlstライン曲率) : wDlgStart初期データー13(6) = wlstライン曲率.SelectedIndex
        If a = 0 Or a = 7 Then gggint = pゲームカードのサイズ大中小_ListBox初期化(wlstカードサイズ大中小モード) : wDlgStart初期データー13(7) = wlstカードサイズ大中小モード.SelectedIndex
        If a = 0 Or a = 8 Then gggint = pカードをズーミング_ListBox初期化(wlstカードをズーミング) : wDlgStart初期データー13(8) = wlstカードをズーミング.SelectedIndex
        If a = 0 Or a = 9 Then gggint = p消えるカードのスピード_ListBox初期化(wlst消えるカードのスピード) : wDlgStart初期データー13(9) = wlst消えるカードのスピード.SelectedIndex
        If a = 0 Or a = 10 Then gggint = p消えるカードのサイズ変化_ListBox初期化(wlst消えるカードのズームサイズ) : wDlgStart初期データー13(10) = wlst消えるカードのズームサイズ.SelectedIndex
        If a = 0 Or a = 11 Then gggint = p残り枚数でカードサイズ変更_ListBox初期化(wlst残り枚数でカードサイズ変更) : wDlgStart初期データー13(11) = wlst残り枚数でカードサイズ変更.SelectedIndex
        If a = 0 Or a = 12 Then gggint = p消えるカードの背景模様_ListBox初期化(wlst消えるカードの背景模様) : wDlgStart初期データー13(12) = wlst消えるカードの背景模様.SelectedIndex
        If a = 0 Or a = 13 Then gggint = p消えるカードの背景サイズ_ListBox初期化(wlst消えるカードの背景サイズ) : wDlgStart初期データー13(13) = wlst消えるカードの背景サイズ.SelectedIndex
        Call zzウロウロオプション設定Dlg_Enabled_Set(wlst背景の明るさ, wlst枠の太さ, wlstカードのサイズ, wlstカードスピード, wlstスピード補正, wlstライン曲率, wlstカードサイズ大中小モード, wlstカードをズーミング, wlst消えるカードのスピード, wlst消えるカードのズームサイズ, mnuすべて元に戻す, mnu規定値にリセット, wlst残り枚数でカードサイズ変更, wlst消えるカードの背景模様, wlst消えるカードの背景サイズ, wDlgStart初期データー13)
    End Sub

    Private Sub ウロウロオプション設定Dlg_aaaコントロールの選択状態が変更されました(ByRef wIsOK As Boolean, ByVal OpCode_1_to_12 As Integer, ByRef r1_lst背景の明るさ As ListBox, ByRef r2_lst枠の太さ As ListBox, ByRef r3_lstカードのサイズ As ListBox, ByRef r4_lstカードスピード As ListBox, ByRef r5_lstスピード補正 As ListBox, ByRef r6_lstライン曲率 As ListBox, ByRef r7_lstカードサイズ大中小モード As ListBox, ByRef r8_lstカードをズーミング As ListBox, ByRef r9_lst消えるカードのスピード As ListBox, ByRef r10_lst消えるカードのズームサイズ As ListBox, ByRef mnuすべて元に戻す As ToolStripMenuItem, ByRef mnu規定値にリセット As ToolStripMenuItem, ByRef r11_lst残り枚数でカードサイズ変更 As ListBox, ByRef r12_lst消えるカードの背景模様 As ListBox, ByRef r13_lst消えるカードの背景サイズ As ListBox, ByRef rDlgStart初期データー13() As Integer) Handles ウロウロオプション設定Dlg.aaaコントロールの選択状態が変更されました
        wIsOK = True
        Select Case OpCode_1_to_12
            Case 1 : pゲーム背景画像の明るさListIndex_0_5 = r1_lst背景の明るさ.SelectedIndex
            Case 2 : Call pカードサイズ枠の太さListBoxから読出し(r2_lst枠の太さ)
            Case 3 : Call pゲームカードのサイズListBoxから読出し(r3_lstカードのサイズ)
            Case 4 : pカードスピード = r4_lstカードスピード.SelectedIndex
            Case 5 : pカードスピードCPU性能差の補正 = r5_lstスピード補正.SelectedIndex
            Case 6 : p移動ライン曲率 = r6_lstライン曲率.SelectedIndex
            Case 7 : pゲームカードのサイズ大中小 = r7_lstカードサイズ大中小モード.SelectedIndex
            Case 8 : pカードをズーミング = r8_lstカードをズーミング.SelectedIndex
            Case 9 : p消えるカードのスピード = r9_lst消えるカードのスピード.SelectedIndex
            Case 10 : p消えるカードのサイズ変化 = r10_lst消えるカードのズームサイズ.SelectedIndex
            Case 11 : p残り枚数でカードサイズ変更 = r11_lst残り枚数でカードサイズ変更.SelectedIndex
            Case 12 : p消えるカードの背景模様 = r12_lst消えるカードの背景模様.SelectedIndex
            Case 13 : p消えるカードの背景サイズ = r13_lst消えるカードの背景サイズ.SelectedIndex
            Case Else
                wIsOK = False
        End Select
        Call zzウロウロオプション設定Dlg_Enabled_Set(r1_lst背景の明るさ, r2_lst枠の太さ, r3_lstカードのサイズ, r4_lstカードスピード, r5_lstスピード補正, r6_lstライン曲率, r7_lstカードサイズ大中小モード, r8_lstカードをズーミング, r9_lst消えるカードのスピード, r10_lst消えるカードのズームサイズ, mnuすべて元に戻す, mnu規定値にリセット, r11_lst残り枚数でカードサイズ変更, r12_lst消えるカードの背景模様, r13_lst消えるカードの背景サイズ, rDlgStart初期データー13)
    End Sub

    Private Sub zzウロウロオプション設定Dlg_Enabled_Set(ByRef r1_lst背景の明るさ As ListBox, ByRef r2_lst枠の太さ As ListBox, ByRef r3_lstカードのサイズ As ListBox, ByRef r4_lstカードスピード As ListBox, ByRef r5_lstスピード補正 As ListBox, ByRef r6_lstライン曲率 As ListBox, ByRef r7_lstカードサイズ大中小モード As ListBox, ByRef r8_lstカードをズーミング As ListBox, ByRef r9_lst消えるカードのスピード As ListBox, ByRef r10_lst消えるカードのズームサイズ As ListBox, ByRef mnuすべて元に戻す As ToolStripMenuItem, ByRef mnu規定値にリセット As ToolStripMenuItem, ByRef r11_lst残り枚数でカードサイズ変更 As ListBox, ByRef r12_lst消えるカードの背景模様 As ListBox, ByRef r13_lst消えるカードの背景サイズ As ListBox, ByRef rDlgStart初期データー13() As Integer)
        mnuすべて元に戻す.Enabled = Not ( _
                r1_lst背景の明るさ.SelectedIndex = rDlgStart初期データー13(1) And _
                r2_lst枠の太さ.SelectedIndex = rDlgStart初期データー13(2) And _
                r3_lstカードのサイズ.SelectedIndex = rDlgStart初期データー13(3) And _
                r4_lstカードスピード.SelectedIndex = rDlgStart初期データー13(4) And _
                r5_lstスピード補正.SelectedIndex = rDlgStart初期データー13(5) And _
                r6_lstライン曲率.SelectedIndex = rDlgStart初期データー13(6) And _
                r7_lstカードサイズ大中小モード.SelectedIndex = rDlgStart初期データー13(7) And _
                r8_lstカードをズーミング.SelectedIndex = rDlgStart初期データー13(8) And _
                r9_lst消えるカードのスピード.SelectedIndex = rDlgStart初期データー13(9) And _
                r10_lst消えるカードのズームサイズ.SelectedIndex = rDlgStart初期データー13(10) And _
                r11_lst残り枚数でカードサイズ変更.SelectedIndex = rDlgStart初期データー13(11) And _
                r12_lst消えるカードの背景模様.SelectedIndex = rDlgStart初期データー13(12) And _
                r13_lst消えるカードの背景サイズ.SelectedIndex = rDlgStart初期データー13(13))

        mnu規定値にリセット.Enabled = Not ( _
                pゲーム背景画像の明るさ = pゲーム背景画像の明るさDEF And _
                pカードサイズ枠の太さ = pカードサイズ枠の太さDEF And _
                pゲームカードのサイズ = pゲームカードのサイズDEF And _
                pカードスピード = pカードスピードDEF And _
                pカードスピードCPU性能差の補正 = pカードスピードCPU性能差の補正DEF And _
                p移動ライン曲率 = p移動ライン曲率DEF And _
                pゲームカードのサイズ大中小 = pゲームカードのサイズ大中小DEF And _
                pカードをズーミング = pカードをズーミングDEF And _
                p消えるカードのスピード = p消えるカードのスピードDEF And _
                p消えるカードのサイズ変化 = p消えるカードのサイズ変化DEF And _
                p残り枚数でカードサイズ変更 = p残り枚数でカードサイズ変更DEF And _
                p消えるカードの背景模様 = p消えるカードの背景模様DEF And _
                p消えるカードの背景サイズ = p消えるカードの背景サイズDEF)
    End Sub

#End Region

#Region "イベント from DlgFileゲーム用"

    Private Sub DlgFileゲーム用_画像ファイルの切替タイマー(ByVal rCurファイル As String, ByVal rNextファイル As String, ByRef wChangeDone As Boolean) Handles DlgFileゲーム用.画像ファイルの切替タイマー
        Call DlgFileゲーム用_画像ファイルの選択が実行された(rNextファイル, wChangeDone)
    End Sub

    Private Sub DlgFileゲーム用_画像ファイルの切替タイマー一秒ごとの通知(ByRef wIs満期 As Boolean) Handles DlgFileゲーム用.画像ファイルの切替タイマー一秒ごとの通知
        'qqqqq("DlgFileゲーム用_画像ファイルの切替タイマー一秒ごとの通知()")
        wIs満期 = pゲーム背景画像の切り替え_カレントカウント_満期
    End Sub

    Private Sub DlgFileゲーム用_画像ファイルの選択が実行された(ByVal rNewファイル As String, ByRef wChangeDone As Boolean) Handles DlgFileゲーム用.画像ファイルの選択が実行された
        If gmアプリ終了する Then Return
        Dim fff As String = zzゲーム描画用ファイル新規設定(rNewファイル, True)
        Call aa背景の設定(False)
        'wChangeDone = True '2023/03/12 他のプログラムでは、呼び出し元の再描画が必要だが、UrouroPoipoi では、画面は常にリフレッシュされているので、再描画は不要。
    End Sub

#End Region

#Region "イベント from 背景画像ユラユラ設定Dlg (frmDlg背景画像ユラユラ )"

    Friend Sub aa背景画像ユラユラ設定Dlg_Load_1_Disposed_2(ByVal op As Integer, ByVal rOwner As Form)
        Try
            Select Case op
                Case 1 'New Load
                    If gmアプリ終了する Then Return
                    If 1 = GMCOM_ダイアログモードレス表示チェック(背景画像ユラユラ設定Dlg) Then
                        背景画像ユラユラ設定Dlg = New frmDlg背景画像ユラユラ
                        背景画像ユラユラ設定Dlg.Owner = rOwner
                        背景画像ユラユラ設定Dlg.Show(rOwner)
                    End If
                Case 2 'after Disposed
                    背景画像ユラユラ設定Dlg = Nothing
            End Select
        Catch
            MsgBox(ErrorToString)
        End Try
    End Sub

    Private Sub 背景画像ユラユラ設定Dlg_aaaコントロールの初期化をしてください(ByRef wIsOK As Boolean, ByRef wMe_gmDlgID As Integer, ByVal OpCode_All_0__or__SelectOnly_1_to_8 As Integer, ByRef wlst背景画像の切り替え As ListBox, ByRef wlst背景画像の明るさ As ListBox, ByRef wlst移動モード As ListBox, ByRef wlstズーム比率 As ListBox, ByRef wlst移動比率 As ListBox, ByRef wlst変化スピード As ListBox, ByRef wlst変化スピード倍数 As ListBox, ByRef wlst背景画像を表示 As ListBox, ByRef wbtn規定値に戻す As Button) Handles 背景画像ユラユラ設定Dlg.aaaコントロールの初期化をしてください
        If gmアプリ終了する Then Return
        wIsOK = True
        wMe_gmDlgID = gmDlg背景画像ユラユラ設定Dlg
        '--------------------------------------------------------
        Dim a As Integer = OpCode_All_0__or__SelectOnly_1_to_8
        '--------------------------------------------------------
        If a = 0 Or a = 1 Then gggint = pゲーム背景画像の切り替え時間間隔_ListBox初期化(wlst背景画像の切り替え)
        If a = 0 Or a = 2 Then gggint = pゲーム背景画像の明るさ_ListBox初期化(wlst背景画像の明るさ)
        If a = 0 Or a = 3 Then gggint = pゲーム背景画像を表示_ListBox初期化(wlst背景画像を表示)
        '--------------------------------------------------------
        With ooユラユラ
            If a = 0 Or a = 4 Then gggint = .p画像の移動モード_ListBox初期化(wlst移動モード)
            If a = 0 Or a = 5 Then gggint = .p画像のズーム比率_ListBox初期化(wlstズーム比率)
            If a = 0 Or a = 6 Then gggint = .p画像の移動比率_ListBox初期化(wlst移動比率)
            If a = 0 Or a = 7 Then gggint = .p画像の変化スピード_ListBox初期化(wlst変化スピード)
            If a = 0 Or a = 8 Then gggint = .p画像の変化スピード特別倍数_ListBox初期化(wlst変化スピード倍数)
        End With
        '--------------------------------------------------------
        Call zz背景画像ユラユラ設定Dlg_Enabled_Set(wbtn規定値に戻す)
    End Sub

    Private Sub 背景画像ユラユラ設定Dlg_aaaコントロールに規定値を設定してください(ByRef wIsOK As Boolean, ByRef wMe_gmDlgID As Integer, ByRef wlst背景画像の切り替え As ListBox, ByRef wlst背景画像の明るさ As ListBox, ByRef wlst移動モード As ListBox, ByRef wlstズーム比率 As ListBox, ByRef wlst移動比率 As ListBox, ByRef wlst変化スピード As ListBox, ByRef wlst変化スピード倍数 As ListBox, ByRef wlst背景画像を表示 As ListBox, ByRef wbtn規定値に戻す As Button) Handles 背景画像ユラユラ設定Dlg.aaaコントロールに規定値を設定してください
        If gmアプリ終了する Then Return
        wIsOK = True
        pゲーム背景画像の切り替え時間間隔 = Val(pゲーム背景画像の切り替え時間間隔_RW(gcoプロパ規定値)) : wlst背景画像の切り替え.SelectedIndex = pゲーム背景画像の切り替え時間間隔ListIndex   'Val(pゲーム背景画像の切り替え時間間隔_RW(66554))
        pゲーム背景画像の明るさ = pゲーム背景画像の明るさDEF : wlst背景画像の明るさ.SelectedIndex = pゲーム背景画像の明るさListIndex_0_5
        pゲーム背景画像を表示 = pゲーム背景画像を表示DEF : wlst背景画像を表示.SelectedIndex = pゲーム背景画像を表示
        '--------------------------------------------------------
        With ooユラユラ
            .p画像の移動モード = .p画像の移動モード_RW(gcoプロパ規定値) : wlst移動モード.SelectedIndex = .p画像の移動モード_ListIndex_0_2
            .p画像のズーム比率 = .p画像のズーム比率_RW(gcoプロパ規定値) : wlstズーム比率.SelectedIndex = .p画像のズーム比率_ListIndex_0_5
            .p画像の移動比率 = .p画像の移動比率_RW(gcoプロパ規定値) : wlst移動比率.SelectedIndex = .p画像の移動比率_ListIndex_0_5
            .p画像の変化スピード = .p画像の変化スピード_RW(gcoプロパ規定値) : wlst変化スピード.SelectedIndex = .p画像の変化スピード_ListIndex_0_4
            .p画像の変化スピード特別倍数 = .p画像の変化スピード特別倍数_RW(gcoプロパ規定値) : wlst変化スピード倍数.SelectedIndex = .p画像の変化スピード特別倍数
        End With
        '--------------------------------------------------------
        Call zz背景画像ユラユラ設定Dlg_Enabled_Set(wbtn規定値に戻す)
        'qqqqq("Event 背景画像ユラユラ設定Dlg...規定値を設定してください ")
    End Sub

    Private Sub 背景画像ユラユラ設定Dlg_aaaコントロールの選択状態が変更されました(ByRef wIsOK As Boolean, ByVal OpCode_1_to_8 As Integer, ByRef r1_lst背景画像の切り替え As ListBox, ByRef r2_lst背景画像の明るさ As ListBox, ByRef r3_lst移動モード As ListBox, ByRef r4_lstズーム比率 As ListBox, ByRef r5_lst移動比率 As ListBox, ByRef r6_lst変化スピード As ListBox, ByRef r7_lst変化スピード倍数 As ListBox, ByRef r8_lst背景画像を表示 As ListBox, ByRef wbtn規定値に戻す As Button) Handles 背景画像ユラユラ設定Dlg.aaaコントロールの選択状態が変更されました
        Select Case OpCode_1_to_8
            Case 1 : pゲーム背景画像の切り替え時間間隔ListIndex = r1_lst背景画像の切り替え.SelectedIndex   ' gggstr = pゲーム背景画像の切り替え時間間隔_RW(66555, CStr(r1_lst背景画像の切り替え.SelectedIndex))
            Case 2 : pゲーム背景画像の明るさListIndex_0_5 = r2_lst背景画像の明るさ.SelectedIndex
            Case 3 : ooユラユラ.p画像の移動モード_ListIndex_0_2 = r3_lst移動モード.SelectedIndex
            Case 4 : ooユラユラ.p画像のズーム比率_ListIndex_0_5 = r4_lstズーム比率.SelectedIndex
            Case 5 : ooユラユラ.p画像の移動比率_ListIndex_0_5 = r5_lst移動比率.SelectedIndex
            Case 6 : ooユラユラ.p画像の変化スピード_ListIndex_0_4 = r6_lst変化スピード.SelectedIndex
            Case 7 : ooユラユラ.p画像の変化スピード特別倍数 = r7_lst変化スピード倍数.SelectedIndex
            Case 8 : pゲーム背景画像を表示 = r8_lst背景画像を表示.SelectedIndex
            Case Else
                'Not Return  　　　　　zz背景画像ユラユラ設定Dlg_Enabled_Set() だけを呼び出す場合もある
        End Select
        '--------------------------------------------------------
        Call zz背景画像ユラユラ設定Dlg_Enabled_Set(wbtn規定値に戻す)
        wIsOK = True
    End Sub

    Private Sub zz背景画像ユラユラ設定Dlg_Enabled_Set(ByRef wbtn規定値に戻す As Button)
        With ooユラユラ
            wbtn規定値に戻す.Enabled = Not ( _
                pゲーム背景画像の切り替え時間間隔_RW(gcoプロパ規定値) = pゲーム背景画像の切り替え時間間隔_RW(gcoプロパGet) And _
                pゲーム背景画像の明るさ_RW(gcoプロパ規定値) = pゲーム背景画像の明るさ_RW(gcoプロパGet) And _
                pゲーム背景画像を表示_RW(gcoプロパ規定値) = pゲーム背景画像を表示_RW(gcoプロパGet) And _
                .p画像の移動モード_RW(gcoプロパ規定値) = .p画像の移動モード_RW(gcoプロパGet) And _
                .p画像のズーム比率_RW(gcoプロパ規定値) = .p画像のズーム比率_RW(gcoプロパGet) And _
                .p画像の移動比率_RW(gcoプロパ規定値) = .p画像の移動比率_RW(gcoプロパGet) And _
                .p画像の変化スピード_RW(gcoプロパ規定値) = .p画像の変化スピード_RW(gcoプロパGet) And _
                .p画像の変化スピード特別倍数_RW(gcoプロパ規定値) = .p画像の変化スピード特別倍数_RW(gcoプロパGet))
        End With
    End Sub

#End Region

#Region "イベント from gAppEventMaker"

    Private Sub イベントgAppEventMaker_pカード型が変更されました(ByVal カード型 As Long) Handles イベントgAppEventMaker.pカード型が変更されました
        If ppゲーム実行中 Then gggint = zz当りカードの移動操作(2000, mmSD(0), 0, 0, 0, 0, 0)
    End Sub
    Private Sub イベントgAppEventMaker_pカード枚数が変更されました(ByVal カード枚数 As Long) Handles イベントgAppEventMaker.pカード枚数が変更されました
        If ppゲーム実行中 Then gggint = zz当りカードの移動操作(2000, mmSD(0), 0, 0, 0, 0, 0)
    End Sub
    Private Sub イベントgAppEventMaker_p基本モードが変更されました(ByVal 基本モード As Long) Handles イベントgAppEventMaker.p基本モードが変更されました
        If ppゲーム実行中 Then gggint = zz当りカードの移動操作(2000, mmSD(0), 0, 0, 0, 0, 0)
    End Sub
    Private Sub イベントgAppEventMaker_p基本モードのミックスモードが変更されました(ByVal r基本モードのミックスモード0XXXXXXX As String) Handles イベントgAppEventMaker.p基本モードのミックスモードが変更されました
        If ppゲーム実行中 Then gggint = zz当りカードの移動操作(2000, mmSD(0), 0, 0, 0, 0, 0)
    End Sub

    Private Sub イベントgAppEventMaker_ユーザーカード型のデザインが変更されました() Handles イベントgAppEventMaker.ユーザーカード型のデザインが変更されました
        If ppゲーム実行中 Then Call aa再作成モードの設定(759, True)
    End Sub

    Private Sub イベントgAppEventMaker_ユラユラサイズ再設定データー求む(ByRef wDoLoopStop As Boolean, ByRef w受け左 As Integer, ByRef w受け上 As Integer, ByRef w受け幅 As Integer, ByRef w受け高 As Integer, ByRef w送り幅 As Integer, ByRef w送り高 As Integer) Handles イベントgAppEventMaker.ユラユラサイズ再設定データー求む
        w受け左 = 0
        w受け上 = 0
        With mImgウロウロ現在のサイズ
            w受け幅 = .Width
            w受け高 = .Height
            w送り幅 = .Width
            w送り高 = .Height
        End With
        wDoLoopStop = wDoLoopStop Or (Not ppゲーム実行中)  '''''''''''or ユラユラ停止
        'If wDoLoopStop Then
        '    qqqqq("イベントgAppEventMaker_ユラユラサイズ再設定データー求む() wDoLoopStop")
        'End If
        'qqqqq("イベントgAppEventMaker_ユラユラサイズ再設定データー求む")
    End Sub

    Private Sub イベントgAppEventMaker_ユラユラ移動コピー用データーができました(ByRef r受け左 As Integer, ByRef r受け上 As Integer, ByRef r受け幅 As Integer, ByRef r受け高 As Integer, ByRef r送り左 As Integer, ByRef r送り上 As Integer, ByRef r送り幅 As Integer, ByRef r送り高 As Integer) Handles イベントgAppEventMaker.ユラユラ移動コピー用データーができました
        mMvZm受け左 = r受け左 : mMvZm受け上 = r受け上 : mMvZm受け幅 = r受け幅 : mMvZm受け高 = r受け高 : mMvZm送り左 = r送り左 : mMvZm送り上 = r送り上 : mMvZm送り幅 = r送り幅 : mMvZm送り高 = r送り高
        '------------------------------------------------------------------------------------------------------------------------------
        'Static mmm As Integer : mmm = mmm + 1 : If mmm Mod 200 = 0 Then qqqqq(Format(mmm, "00000") + "  イベントgAppEventMaker_ユラユラ移動コピー用データーができました")
        '------------------------------------------------------------------------------------------------------------------------------
    End Sub

#End Region

End Class



