コード例 #1
0
        //────────────────────────────────────────

        /// <summary>
        /// 全てのフォームの、レイアウトの一時停止を解除。
        /// </summary>
        private void ResumeLayout(
            TableUserformconfig fo_Config,
            MemoryApplication memoryApplication,
            Log_Reports pg_Logging
            )
        {
            Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "ResumeLayout", pg_Logging);
            //
            //

            foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig)
            {
                string sName_Control;
                fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging);

                //
                // S → E。 コントロール名
                Expression_Node_StringImpl ec_FcName = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree);
                ec_FcName.AppendTextNode(
                    sName_Control,
                    fo_Record.Parent_TableUserformconfig.Cur_Configurationtree,
                    pg_Logging
                    );


                List <Usercontrol> list_FcUc;
                if (pg_Logging.Successful)
                {
                    list_FcUc = memoryApplication.MemoryForms.GetUsercontrolsByName(
                        ec_FcName,
                        true,
                        pg_Logging
                        );
                }
                else
                {
                    list_FcUc = new List <Usercontrol>();
                }


                if (pg_Logging.Successful)
                {
                    Usercontrol uct = list_FcUc[0];

                    if (uct is UsercontrolWindow)
                    {
                        UsercontrolWindow uctWnd = (UsercontrolWindow)uct;
                        uctWnd.CustomcontrolWindow1.ResumeLayout(false);
                    }
                }
            }

            //
            //
            //
            //
            pg_Method.EndMethod(pg_Logging);
        }
コード例 #2
0
        //────────────────────────────────────────

        /// <summary>
        /// コンストラクター。
        /// </summary>
        /// <param name="olParent"></param>
        public RecordUserformconfigImpl(TableUserformconfig parent_TableUserformconfig)
        {
            this.dictionary_Field = new Dictionary <string, FieldUserformtable>();

            this.parent_TableUserformconfig = parent_TableUserformconfig;

            this.no   = -1;
            this.name = "";

            this.tabindex          = -1;
            this.IsEnabled         = true;//活性化
            this.tree              = 1;
            this.itemDisplayFormat = "";

            this.CheckboxValuetype = "";
            this.newline           = "";
        }
コード例 #3
0
        //────────────────────────────────────────
        /// <summary>
        /// コンストラクター。
        /// </summary>
        /// <param name="olParent"></param>
        public RecordUserformconfigImpl(TableUserformconfig parent_TableUserformconfig)
        {
            this.dictionary_Field = new Dictionary<string, FieldUserformtable>();

            this.parent_TableUserformconfig = parent_TableUserformconfig;

            this.no = -1;
            this.name = "";

            this.tabindex = -1;
            this.IsEnabled = true;//活性化
            this.tree = 1;
            this.itemDisplayFormat = "";

            this.CheckboxValuetype = "";
            this.newline = "";
        }
コード例 #4
0
ファイル: XToMemory_FormImpl.cs プロジェクト: muzudho/CSVExE
        //────────────────────────────────────────
        /// <summary>
        /// 『レイアウト設定ファイル』を読取ります。
        /// </summary>
        public void LoadUserformconfigFile(
            TableUserformconfig fo_Config_Formgroup,
            Table_Humaninput o_Table_Form,
            MemoryApplication memoryApplication,
            Log_Reports pg_Logging
            )
        {
            Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "LoadUserformconfigFile",pg_Logging);
            //
            //

            //
            // データ・タイプです。
            string sTypeData;
            if (pg_Logging.Successful)
            {
                if (null != o_Table_Form.Typedata)
                {
                    sTypeData = o_Table_Form.Typedata;
                }
                else
                {
                    sTypeData = "";
                }
            }
            else
            {
                sTypeData = "";
            }

            if (pg_Logging.Successful)
            {
                // TREEフィールドの有無チェック

                if (
                    ValuesTypeData.S_TABLE_FORM == sTypeData
                    &&
                    !o_Table_Form.DataTable.Columns.Contains(NamesFld.S_TREE))
                {
                    //
                    // エラー
                    goto gt_Error_NotFoundTreeField;
                }
            }

            string sFoundName;
            string sFoundNameRef;
            if (pg_Logging.Successful)
            {
                // NAMEフィールドの存在する有無
                bool bExistsName = o_Table_Form.DataTable.Columns.Contains("NAME");
                // NAME_REFフィールドの存在する有無
                bool bExistsNameRef = o_Table_Form.DataTable.Columns.Contains("NAME_REF");
                // NAME、NAME_REFフィールドが同時に存在する有無
                bool bExistsDoubleNames = bExistsName && bExistsNameRef;

                //
                // コントロールのプロパティー設定を読取。
                //
                foreach (DataRow dataRow in o_Table_Form.DataTable.Rows)
                {
                    RecordUserformconfig fo_Record = null;
                    bool bRecordNew = false;

                    //
                    // ・NAMEとNAME_REFフィールドの両方に記述があればエラー。
                    // ・NAMEフィールドがあり、コントロール名が記述されていれば、レコードを新規作成。
                    // ・NAME_REFフィールドがあり、コントロール名が記述されていれば、既存レコードを編集。
                    //

                    if (bExistsNameRef)
                    {
                        string sFieldName = "NAME_REF";

                        pg_Logging.Log_Callstack.Push(pg_Method, "①");
                        String_HumaninputImpl.TryParse(
                            dataRow[sFieldName],// この連想配列は大文字・小文字を区別しないのが欠点。
                            out sFoundNameRef,
                            o_Table_Form.Name,
                            sFieldName,
                            pg_Method,
                            pg_Logging
                            );
                        pg_Logging.Log_Callstack.Pop(pg_Method, "①");

                        if (!pg_Logging.Successful)
                        {
                            // エラー
                            goto gt_EndMethod;
                        }

                    }
                    else
                    {
                        sFoundNameRef = "";
                    }

                    if (bExistsName)
                    {
                        string sFieldName = "NAME";
                        if (dataRow[sFieldName] is DBNull)
                        {
                            //
                            // NAMEフィールドが空欄ならレコードを無視。
                            continue;
                        }

                        pg_Logging.Log_Callstack.Push(pg_Method, "②");
                        String_HumaninputImpl.TryParse(
                            dataRow[sFieldName],
                            out sFoundName,
                            o_Table_Form.Name,
                            sFieldName,
                            pg_Method,
                            pg_Logging
                            );
                        pg_Logging.Log_Callstack.Pop(pg_Method, "②");

                        if (!pg_Logging.Successful)
                        {
                            // エラー
                            goto gt_EndMethod;
                        }
                    }
                    else
                    {
                        sFoundName = "";
                    }

                    if (bExistsDoubleNames && "" != sFoundName && "" != sFoundNameRef)
                    {
                        // エラー
                        goto gt_Error_DoubleNames;
                    }

                    if (bExistsName && "" != sFoundName)
                    {
                        fo_Record = new RecordUserformconfigImpl(fo_Config_Formgroup);
                        bRecordNew = true;
                    }

                    if (bExistsNameRef && "" != sFoundNameRef)
                    {
                        foreach (RecordUserformconfig fo_Record2 in fo_Config_Formgroup.List_RecordUserformconfig)
                        {
                            string sName_Control;
                            fo_Record2.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging);

                            if (sName_Control == sFoundNameRef)
                            {
                                fo_Record = fo_Record2;
                                break;
                            }
                        }
                    }

                    if (null == fo_Record)
                    {
                        continue;
                    }

                    if (pg_Logging.Successful)
                    {
                        //
                        // レイアウト・テーブル一覧。
                        // またはレイアウト・テーブル。
                        // または未指定。
                        //

                        if (
                            ValuesTypeData.S_TABLES_FORM == sTypeData ||
                            ValuesTypeData.S_TABLE_FORM == sTypeData ||
                            "" == sTypeData)
                        {
                            int nResult = this.Read_Form(
                                fo_Record,
                                dataRow,
                                o_Table_Form,
                                fo_Config_Formgroup,
                                memoryApplication,
                                pg_Logging
                                );

                            if (2 == nResult)
                            {
                                // 追加せず中断する。
                                continue;
                            }
                        }
                    }

                    if (pg_Logging.Successful)
                    {
                        //
                        // レイアウト・テーブル(リスト)
                        //
                        if (ValuesTypeData.S_TABLE_FORM_LST == sTypeData)
                        {
                            int nResult = this.Read_FormLst(
                                true,
                                fo_Record,
                                dataRow,
                                o_Table_Form,
                                pg_Logging
                                );

                            if (2 == nResult)
                            {
                                // 編集せず中断する。
                                continue;
                            }
                        }
                    }

                    if (pg_Logging.Successful)
                    {
                        // 正常時。

                        if (bRecordNew)
                        {
                            fo_Config_Formgroup.List_RecordUserformconfig.Add(fo_Record);
                        }
                    }
                }//各行
            }
            else
            {
                //config_formGroup = null;
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
            gt_Error_NotFoundTreeField:
            // テーブルタイプが「Form」で、"TREE" フィールドがないとき。
            // (Form_lstタイプには、TREEフィールドは要らない)
            if (pg_Logging.CanCreateReport)
            {
                Log_RecordReports r = pg_Logging.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー91026!", pg_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append("指定のテーブル[");
                s.Append(o_Table_Form.Name);
                s.Append("に、");
                s.Newline();

                s.Append("TREEフィールドが見つかりませんでした。TREEフィールドは必要です。");
                s.Newline();

                s.Newline();
                s.Newline();

                //
                // 問題箇所ヒント
                //
                s.Append(" BaseDirectory=[");
                s.Append(o_Table_Form.Expression_Filepath_ConfigStack.Directory_Base);
                s.Append("]");
                s.Newline();
                s.Newline();

                s.Append(" HumanInputText=[");
                s.Append(o_Table_Form.Expression_Filepath_ConfigStack.Humaninput);
                s.Append("]");
                s.Newline();
                s.Newline();

                // ヒント
                s.Append(r.Message_Configuration(o_Table_Form));

                r.Message = s.ToString();
                pg_Logging.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            gt_Error_DoubleNames:
            // NAMEフィールドと、NAME_REFフィールドの両方に記述があれば。
            // (両方に記述してはいけない)
            if (pg_Logging.CanCreateReport)
            {
                Log_RecordReports r = pg_Logging.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー901!", pg_Method);

                Log_TextIndented t = new Log_TextIndentedImpl();
                t.Append("指定のテーブル[");
                t.Append(o_Table_Form.Name);
                t.Append("の中に、");
                t.Newline();

                t.Append("NAMEとNAME_REFフィールドの両方に記述があるものがありました。");
                t.Newline();
                t.Append("両方同時に記述してはいけません。");
                t.Newline();

                t.Newline();
                t.Newline();

                t.Append("NAME=[");
                t.Append(sFoundName);
                t.Append("]");
                t.Newline();

                t.Append("NAME_REF=[");
                t.Append(sFoundNameRef);
                t.Append("]");
                t.Newline();

                t.Newline();
                t.Newline();

                //
                // 問題箇所ヒント
                //
                t.Append(" BaseDirectory=[");
                t.Append(o_Table_Form.Expression_Filepath_ConfigStack.Directory_Base);
                t.Append("]");
                t.Newline();
                t.Newline();

                t.Append(" HumanInputText=[");
                t.Append(o_Table_Form.Expression_Filepath_ConfigStack.Humaninput);
                t.Append("]");
                t.Newline();
                t.Newline();

                // ヒント
                t.Append(r.Message_Configuration(o_Table_Form));

                r.Message = t.ToString();
                pg_Logging.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
            gt_EndMethod:
            pg_Method.EndMethod(pg_Logging);
        }
コード例 #5
0
ファイル: XToMemory_FormImpl.cs プロジェクト: muzudho/CSVExE
        //────────────────────────────────────────
        /// <summary>
        /// 「レイアウト_テーブル」のテーブルタイプが「Form」専用。
        /// </summary>
        /// <param name="fo_Record"></param>
        /// <param name="dataRow"></param>
        /// <param name="o_Table_Form"></param>
        /// <param name="ol_Config2"></param>
        /// <param name="pg_Logging"></param>
        /// <returns>0:正常終了、2:continue。</returns>
        private int Read_Form(
            RecordUserformconfig fo_Record,
            DataRow dataRow,
            Table_Humaninput o_Table_Form,
            TableUserformconfig fo_Config,
            MemoryApplication memoryApplication,
            Log_Reports pg_Logging
            )
        {
            Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "Read_Layout",pg_Logging);
            //
            //

            int nResult = 0;

            int nIntValue;// = 0;
            string sValue;// = "";
            bool bValue;// = false;

            //
            // TREE (特殊判定)
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_TREE;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    //フィールド有り

                    if (dataRow[sFieldName] is DBNull)// この連想配列は大文字・小文字を区別しないのが欠点。
                    {
                        // フィールドは有るが、未記入の時。

                        // TREEフィールドが未記入の場合は、空行と判断して、無視します。
                        nResult = 2;
                        goto gt_EndMethod;
                    }

                    //フィールドが有り、記入もあるとき。

                    pg_Logging.Log_Callstack.Push(pg_Method, "③");
                    bool bParsedSuccessful = Int_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out nIntValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 「値が空(-1)」は、空行としてよく使います。
                        -1,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "③");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_TREE, EnumTypedb.Int, nIntValue, pg_Logging);
                        //fo_Record.NTree = nIntValue;
                    }
                    else
                    {
                        // エラー時
                    }
                }

            }

            //
            // NO
            //
            {
                //必須フィールドではありません。
                string sFieldName = NamesFld.S_NO;

                bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging);
                if (pg_Logging.Successful)
                {
                    if (bContained)
                    {
                        pg_Logging.Log_Callstack.Push(pg_Method, "④");
                        bool bParsedSuccessful = Int_HumaninputImpl.TryParse(
                            dataRow[sFieldName],
                            out nIntValue,
                            EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                            -1,
                            pg_Logging
                            );
                        pg_Logging.Log_Callstack.Pop(pg_Method, "④");

                        if (!pg_Logging.Successful)
                        {
                            // エラー
                            goto gt_EndMethod;
                        }

                        if (bParsedSuccessful)
                        {
                            fo_Record.Set(NamesFld.S_NO, EnumTypedb.Int, nIntValue, pg_Logging);
                            //fo_Record.NNo = nIntValue;
                        }
                        else
                        {
                            fo_Record.Set(NamesFld.S_NO, EnumTypedb.Int, 0, pg_Logging);
                            //fo_Record.NNo = 0;
                        }
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_NO, EnumTypedb.Int, 0, pg_Logging);
                        //fo_Record.NNo = 0;
                    }

                }
            }

            //
            // NAME
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_NAME;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {

                    pg_Logging.Log_Callstack.Push(pg_Method, "⑤");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑤");

                    if (bBool)
                    {
                        // コントロール名。
                        fo_Record.Set( NamesFld.S_NAME, EnumTypedb.String, sValue, pg_Logging);
                        //fo_Record.Name = sValue;
                    }
                    else
                    {
                        //
                        // NAME がエラー?
                        //

                        // コントロール名。
                        fo_Record.Set(NamesFld.S_NAME, EnumTypedb.String, "<エラー>", pg_Logging);
                        //fo_Record.Name = "<エラー>";
                    }

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                }
            }

            //
            // int型のTREEフィールドが-1の場合は、空行と判断します。
            //
            int nCurTree;
            fo_Record.TryGetInt(out nCurTree, NamesFld.S_TREE, true, -1, memoryApplication, pg_Logging);
            if (-1 == nCurTree)
            {
                nResult = 2;
                goto gt_EndMethod;
            }

            //
            // TYPE
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_TYPE;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {

                    pg_Logging.Log_Callstack.Push(pg_Method, "⑦");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑦");

                    if (bBool)
                    {
                        fo_Record.Set(NamesFld.S_TYPE, EnumTypedb.String, sValue, pg_Logging);
                        //fo_Record.SType = sValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_TYPE, EnumTypedb.String, "", pg_Logging);
                        //fo_Record.SType = "";
                    }

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }
                }
            }

            //
            // TEXT
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_TEXT;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {

                    pg_Logging.Log_Callstack.Push(pg_Method, "⑧");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑧");

                    if (bBool)
                    {
                        fo_Record.Set(NamesFld.S_TEXT, EnumTypedb.String, sValue, pg_Logging);
                        //fo_Record.SText = sValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_TEXT, EnumTypedb.String, "", pg_Logging);
                        //fo_Record.SText = "";
                    }

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                }
            }

            //
            // FILE
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_FILE;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑨");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑨");

                    if (bBool)
                    {
                        Configurationtree_NodeFilepath cf_Fpath_Control = new Configurationtree_NodeFilepathImpl("ファイルパス出典未指定L10_1", o_Table_Form);
                        cf_Fpath_Control.InitPath(sValue, pg_Logging);
                        if (pg_Logging.Successful)
                        {
                            fo_Record.Set(NamesFld.S_FILE, EnumTypedb.ConfFilepath, cf_Fpath_Control, pg_Logging);
                            //fo_Record.Cf_File = cf_Fpath_Control;
                        }
                    }
                    else
                    {
                        Configurationtree_NodeFilepath cf_Fpath_Control = new Configurationtree_NodeFilepathImpl("ファイルパス出典未指定L10_2", o_Table_Form);
                        cf_Fpath_Control.InitPath("", pg_Logging);
                        if (pg_Logging.Successful)
                        {
                            fo_Record.Set(NamesFld.S_FILE, EnumTypedb.ConfFilepath, cf_Fpath_Control, pg_Logging);
                            //fo_Record.Cf_File = cf_Fpath;
                        }
                    }

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                }
            }

            //
            // ENABLED
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_ENABLED;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {

                    pg_Logging.Log_Callstack.Push(pg_Method, "⑩");
                    bool bParseSuccessful = Bool_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out bValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        false,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑩");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParseSuccessful)
                    {
                        fo_Record.Set( NamesFld.S_ENABLED, EnumTypedb.Bool, bValue, pg_Logging);
                        //fo_Record.BEnabled = bValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_ENABLED, EnumTypedb.Bool, false, pg_Logging);
                        //fo_Record.BEnabled = false;
                    }
                }
            }

            //
            // VISIBLE
            //
            {
                //必須フィールドではありません。
                string sFieldName = NamesFld.S_VISIBLE;

                bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging);
                if (bContained)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑪");
                    bool bParsedSuccessful = Bool_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out bValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        false,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑪");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_VISIBLE, EnumTypedb.Bool, bValue, pg_Logging);
                        //fo_Record.BVisible = bValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_VISIBLE, EnumTypedb.Bool, false, pg_Logging);
                        //fo_Record.BVisible = false;
                    }
                }
                else
                {
                    //
                    // VISIBLEフィールドがない場合、常に可視とします。
                    //

                    fo_Record.Set(NamesFld.S_VISIBLE, EnumTypedb.Bool, true, pg_Logging);
                    //fo_Record.BVisible = true;
                }
            }

            //
            // READ_ONLY
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_READ_ONLY;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑫");
                    bool bParsedSuccessful = Bool_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out bValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        false,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑫");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_READ_ONLY, EnumTypedb.Bool, bValue, pg_Logging);
                        //fo_Record.BReadOnly = bValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_READ_ONLY, EnumTypedb.Bool, false, pg_Logging);
                        //fo_Record.BReadOnly = false;
                    }
                }
            }

            //
            // WORD_WRAP
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_WORD_WRAP;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑬");
                    bool bParsedSuccessful = Bool_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out bValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        false,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑬");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_WORD_WRAP, EnumTypedb.Bool, bValue, pg_Logging);
                        //fo_Record.BWordWrap = bValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_WORD_WRAP, EnumTypedb.Bool, false, pg_Logging);
                        //fo_Record.BWordWrap = false;
                    }
                }
            }

            //
            // NEW_LINE
            //
            {
                //必須フィールドではありません。
                string sFieldName = NamesFld.S_NEW_LINE;

                bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging);
                if (bContained)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑭");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑭");

                    if (bBool)
                    {
                        fo_Record.Set(NamesFld.S_NEW_LINE, EnumTypedb.String, sValue, pg_Logging);
                        //fo_Record.SNewLine = sValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_NEW_LINE, EnumTypedb.String, "", pg_Logging);
                        //fo_Record.SNewLine = "";
                    }

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                }
                else
                {
                    //
                    // VISIBLEフィールドがない場合、指定なしとします。
                    //

                    fo_Record.Set(NamesFld.S_NEW_LINE, EnumTypedb.String, "", pg_Logging);
                    //fo_Record.SNewLine = "";
                }
            }

            //
            // SCROLL_BARS
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_SCROLL_BARS;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑮");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑮");

                    if (bBool)
                    {
                        fo_Record.Set(NamesFld.S_SCROLL_BARS, EnumTypedb.String, sValue, pg_Logging);
                        //fo_Record.SScrollBars = sValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_SCROLL_BARS, EnumTypedb.String, "", pg_Logging);
                        //fo_Record.SScrollBars = "";
                    }

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }
                }
            }

            //
            // CHK_VALUE_TYPE
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_CHK_VALUE_TYPE;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑯");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑯");

                    if (bBool)
                    {
                        fo_Record.Set(NamesFld.S_CHK_VALUE_TYPE, EnumTypedb.String, sValue, pg_Logging);
                        //fo_Record.SChkValueType = sValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_CHK_VALUE_TYPE, EnumTypedb.String, "", pg_Logging);
                        //fo_Record.SChkValueType = "";
                    }

                    if (!pg_Logging.Successful)
                    {
                        goto gt_EndMethod;
                    }
                }
            }

            //
            // FONT_SIZE_PT
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_FONT_SIZE_PT;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑰");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑰");

                    if (bBool)
                    {
                        fo_Record.Set(NamesFld.S_FONT_SIZE_PT, EnumTypedb.String, sValue, pg_Logging);
                        //fo_Record.SFontSizePt = sValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_FONT_SIZE_PT, EnumTypedb.String, "", pg_Logging);
                        //fo_Record.SFontSizePt = "";
                    }

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }
                }
            }

            //
            // PIC_ZOOM
            //
            {
                //必須フィールドではありません。
                string sFieldName = NamesFld.S_PIC_ZOOM;

                bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging);
                if (bContained)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑱");
                    bool bParsedSuccessful = Int_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out nIntValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        1000,// 等倍サイズ。千分率なので1000。
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑱");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_PIC_ZOOM, EnumTypedb.Int, nIntValue, pg_Logging);
                        //fo_Record.NPicZoom = nIntValue;
                    }
                }
                else
                {
                    //
                    // フィールドが無かった場合。
                    //
                    fo_Record.Set(NamesFld.S_PIC_ZOOM, EnumTypedb.Int, 1000, pg_Logging);
                    //fo_Record.NPicZoom = 1000;// 等倍サイズ。千分率なので1000。
                }
            }

            //
            // X_LT
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_X_LT;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑲");
                    bool bParsedSuccessful = Int_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out nIntValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        -1,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑲");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_X_LT, EnumTypedb.Int, nIntValue, pg_Logging);
                        //fo_Record.NAbsXLt = nIntValue;
                    }
                }
            }

            //
            // Y_LT
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_Y_LT;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "⑳");
                    bool bParsedSuccessful = Int_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out nIntValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        -1,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "⑳");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_Y_LT, EnumTypedb.Int, nIntValue, pg_Logging);
                        //fo_Record.NAbsYLt = nIntValue;
                    }
                }
            }

            //
            // WIDTH
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_WIDTH;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "(21)");
                    bool bParsedSuccessful = Int_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out nIntValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        -1,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "(21)");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_WIDTH, EnumTypedb.Int, nIntValue, pg_Logging);
                        //fo_Record.NWidth = nIntValue;
                    }
                }
            }

            //
            // HEIGHT
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_HEIGHT;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "(22)");
                    bool bParsedSuccessful = Int_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out nIntValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。
                        -1,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "(22)");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_HEIGHT, EnumTypedb.Int, nIntValue, pg_Logging);
                        //fo_Record.NHeight = nIntValue;
                    }
                }
            }

            //
            // TAB_INDEX
            //
            {
                //必須フィールドです。
                string sFieldName = NamesFld.S_TAB_INDEX;

                // フィールドが無ければ、その時点でエラー。
                o_Table_Form.ContainsField(sFieldName, true, pg_Logging);
                if (pg_Logging.Successful)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "(23)");
                    bool bParsedSuccessful = Int_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out nIntValue,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value,//大したデータではないので、省略すると-1にする。
                        -1,
                        pg_Logging
                        );
                    pg_Logging.Log_Callstack.Pop(pg_Method, "(23)");

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    if (bParsedSuccessful)
                    {
                        fo_Record.Set(NamesFld.S_TAB_INDEX, EnumTypedb.Int, nIntValue, pg_Logging);
                        //fo_Record.NTabIndex = nIntValue;
                    }
                }
            }

            //
            // BACK_COLOR
            //
            {
                //必須フィールドではありません。
                string sFieldName = NamesFld.S_BACK_COLOR;

                bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging);
                if (bContained)
                {
                    pg_Logging.Log_Callstack.Push(pg_Method, "(24)");
                    bool bBool = String_HumaninputImpl.TryParse(
                        dataRow[sFieldName],
                        out sValue,
                        o_Table_Form.Name,
                        sFieldName,
                        pg_Method,
                        pg_Logging);
                    pg_Logging.Log_Callstack.Pop(pg_Method, "(24)");

                    if (bBool)
                    {
                        fo_Record.Set(NamesFld.S_BACK_COLOR, EnumTypedb.String, sValue, pg_Logging);
                        //fo_Record.SBackColor = sValue;
                    }
                    else
                    {
                        fo_Record.Set(NamesFld.S_BACK_COLOR, EnumTypedb.String, "", pg_Logging);
                        //fo_Record.SBackColor = "";
                    }

                    if (!pg_Logging.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                }
                else
                {
                    fo_Record.Set(NamesFld.S_BACK_COLOR, EnumTypedb.String, "", pg_Logging);
                    //fo_Record.SBackColor = "";
                }
            }

            this.Read_FormLst(
                false,
                fo_Record,
                dataRow,
                o_Table_Form,
                pg_Logging
                );

            //
            //
            //
            //
            gt_EndMethod:
            pg_Method.EndMethod(pg_Logging);
            return nResult;
        }
コード例 #6
0
ファイル: MemoryFormsImpl.cs プロジェクト: muzudho/CSVExE
        /// <summary>
        /// コントロールのスタイルを設定します。
        /// </summary>
        /// <param name="fo_Config"></param>
        /// <param name="oFolderPath_forms"></param>
        /// <param name="form"></param>
        /// <param name="log_Reports"></param>
        /// <returns></returns>
        public void P3_ApplyStyleToUsercontrol(
            TableUserformconfig fo_Config,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "P3_ApplyStyleToFc",log_Reports);
            //
            //

            //
            // コントロールのスタイルを設定。
            if (log_Reports.Successful)
            {
                // 正常時

                //     コントロール連想配列作成後。
                //     (旧・データ・ソースと、データ・ターゲットを設定した後で)

                this.Owner_MemoryApplication.MemoryForms.UsercontrolStyleSetter.SetupStyle(
                    fo_Config,
                    this.Owner_MemoryApplication,
                    log_Reports
                    );
            }

            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
コード例 #7
0
ファイル: MemoryFormsImpl.cs プロジェクト: muzudho/CSVExE
        /// <summary>
        /// コントロールのスタイルを設定します。
        /// </summary>
        /// <param name="fo_Config"></param>
        /// <param name="oFolderPath_forms"></param>
        /// <param name="form"></param>
        /// <param name="log_Reports"></param>
        /// <returns></returns>
        public void P2_CreateForm(
            TableUserformconfig fo_Config,
            Form form,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "P2_CreateForm",log_Reports);
            //
            //

            //
            // コントロールを動的に追加。
            if (log_Reports.Successful)
            {
                // 正常時

                // (プロパティーの設定はまだ行いません。)
                this.CreateForm(
                    fo_Config,
                    form,
                    log_Reports
                    );
            }

            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
コード例 #8
0
ファイル: MemoryFormsImpl.cs プロジェクト: muzudho/CSVExE
        /// <summary>
        /// コントロールのスタイルを設定します。
        /// </summary>
        /// <param name="fo_Config"></param>
        /// <param name="oFolderPath_forms"></param>
        /// <param name="form"></param>
        /// <param name="log_Reports"></param>
        /// <returns></returns>
        public void P1_XToMemory_Userformconfig(
            TableUserformconfig fo_Config,
            Table_Humaninput o_Table_Form,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "P1_XToMemory_Userformconfig", log_Reports);
            //
            //

            if (log_Reports.Successful)
            {
                // 正常時

                this.xToMemory_Form.LoadUserformconfigFile(
                    fo_Config,
                    o_Table_Form,
                    this.Owner_MemoryApplication,
                    log_Reports
                    );

            }
            else
            {
                //config_form = null;
            }

            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
コード例 #9
0
ファイル: MemoryFormsImpl.cs プロジェクト: muzudho/CSVExE
        /// <summary>
        /// 『レイアウト設定ファイル』をもとに、コントロールを作成し、
        /// フォームと、アプリケーション・モデルにコントロールを動的に追加します。
        /// </summary>
        /// <param name="fo_Config"></param>
        /// <param name="form"></param>
        protected void CreateForm(
            TableUserformconfig fo_Config,
            Form form,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "CreateForm",log_Reports);
            //
            //

            //this.form_noren = form;

            // レイアウトするロジックを一時停止。(メインフォーム)
            form.SuspendLayout();

            // フォームにステータスバーを付けます。(デバッグモードでのみ) TODO:1回限りであること。
            if (null == statusStrip1 && Log_ReportsImpl.BDebugmode_Static)
            {
                statusStrip1 = new System.Windows.Forms.StatusStrip();

                //
                // statusStrip1
                //
                statusStrip1.Location = new System.Drawing.Point(0, 244);
                statusStrip1.Name = "statusStrip1";
                statusStrip1.Size = new System.Drawing.Size(292, 22);
                statusStrip1.TabIndex = 0;
                statusStrip1.Text = "statusStrip1";

                this.statusStripLabel2 = new System.Windows.Forms.ToolStripStatusLabel();
                this.statusStripLabel2.Name = "toolStripStatusLabel1";
                this.statusStripLabel2.Size = new System.Drawing.Size(114, 17);
                this.statusStripLabel2.Text = "toolStripStatusLabel1";
                this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
                this.statusStripLabel2});

                form.Controls.Add(statusStrip1);

                // #情報
                if (log_Method.CanInfo())
                {
                    log_Method.WriteInfo_ToConsole("ステータスバーをフォームに追加した。(デバッグモードでのみ)TODO:1回限りであること。");
                }
            }

            //// フォームに「マルチロール_テキストボックス」を付けます。 TODO:1回限りであること。
            //if (null == this.multiroleTextBox)
            //{
            //    this.multiroleTextBox = new System.Windows.Forms.TextBox();
            //    this.multiroleTextBox.Multiline = true;
            //    form.Controls.Add(this.multiroleTextBox);

            //    // #デバッグ
            //    ystem.Console.WriteLine(Info_NorenImpl.LibraryName + ":MoNorenImpl#CreateForm:マルチロール_テキストボックスをフォームに追加した。TODO:1回限りであること。");
            //}

            // 1つ前のコントロールが入っている仕組み。
            List<Usercontrol> list_StackFc = new List<Usercontrol>();
            List<int> nList_StackTree = new List<int>();

            //
            // レコードの並び順は、記述されている順番とします。
            //
            foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig)
            {
                int nCurTree;
                fo_Record.TryGetInt(out nCurTree, NamesFld.S_TREE, true, -1, this.Owner_MemoryApplication, log_Reports);

                //
                //
                // ここで、コントロール(UserControl)を作成。
                // 作成できなかった、または作成しなかった場合はヌル。
                //
                //
                Usercontrol uct = ucontrolCreator1.Create(
                    fo_Record,
                    true,
                    this.Owner_MemoryApplication,
                    log_Reports
                    );

                //.WriteLine(this.GetType().Name + "#CreateForm: (10) この要素=[" + fcUc.ControlCommon.Name + "] curTree=[" + curTree + "]");

                if (log_Reports.Successful)
                {
                    if (null != uct)
                    {
                        string sName_Control;
                        fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", this.Owner_MemoryApplication, log_Reports);

                        Expression_Node_StringImpl ec_Str = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree);
                        ec_Str.AppendTextNode(
                            sName_Control,
                            fo_Record.Parent_TableUserformconfig.Cur_Configurationtree,
                            log_Reports
                            );

                        //
                        //
                        // コントロール名の登録。
                        //
                        //
                        this.Owner_MemoryApplication.MemoryForms.PutUsercontrol(
                            ec_Str,
                            uct,
                            log_Reports
                            );

                        if (uct is UsercontrolWindow)
                        {
                            //
                            // 「ウィンドウ」(別窓)を開けたい場合。
                            //
                            UsercontrolWindow uctWnd = (UsercontrolWindow)uct;

                            //ucWindow.SetupStatusStrip();
                            uctWnd.CustomcontrolWindow1.Show();

                            //.WriteLine(this.GetType().Name + "#CreateForm: (20) 【ウィンドウ追加】トップに、この要素=[" + fcUc.ControlCommon.Name + "]を追加。");
                        }
                        else
                        {

                            if (0 == nList_StackTree.Count)
                            {
                                //
                                // ★追加:   メインフォームのトップに、この要素を追加
                                //
                                form.Controls.Add((Control)uct);

                                // 普通、メインウィンドウもここになる。
                            }
                            else
                            {
                                int nPrevTree = nList_StackTree.Last();

                                if (nPrevTree == nCurTree)
                                {
                                    // 1つ前の要素と ツリー値が同じなら、

                                    // 1つ前の要素をスタックから削除し、
                                    list_StackFc.RemoveAt(list_StackFc.Count - 1);
                                    nList_StackTree.RemoveAt(nList_StackTree.Count - 1);

                                    if (0 != nList_StackTree.Count)
                                    {
                                        nPrevTree = nList_StackTree.Last();

                                        //
                                        // ★追加:   前の要素(スタックの最後の要素)に、この要素を追加。
                                        //
                                        Usercontrol prevUc = list_StackFc.Last();

                                        prevUc.AppendChild(
                                            uct,
                                            log_Reports
                                            );

                                        //.WriteLine(this.GetType().Name + "#CreateForm: (40) 【前の要素に、この要素を追加】 前の要素=[" + prevUc.ControlCommon.Name + "]に、この要素=[" + fcUc.ControlCommon.Name + "]を追加。");
                                    }
                                    else
                                    {
                                        nPrevTree = 0;

                                        //
                                        // ★追加:   メインフォームのトップに、この要素を追加
                                        //
                                        form.Controls.Add((Control)uct);

                                        //.WriteLine(this.GetType().Name + "#CreateForm: (50) 【メインフォームのトップ要素として追加2】 メインフォームのトップに、この要素=[" + fcUc.ControlCommon.Name + "]を追加。");
                                    }
                                }
                                else if (nPrevTree < nCurTree)
                                {
                                    // 1つ前の要素より、大きなtree値を持つなら、

                                    //
                                    // ★追加: 1つ前の要素に、この要素を追加。
                                    //
                                    Usercontrol prevUc = list_StackFc.Last();

                                    prevUc.AppendChild(
                                        uct,
                                        log_Reports
                                        );

                                    //.WriteLine(this.GetType().Name + "#CreateForm: (60) 【前の要素に、この要素を追加】 前の要素=[" + prevUc.ControlCommon.Name + "]に、この要素=[" + fcUc.ControlCommon.Name + "]を追加。");
                                }
                                else
                                {
                                    // 1つ前の要素より、小さなtree値を持つなら、

                                    //
                                    // ★削除:
                                    //   自分より小さなtree値を持つ要素が出てくるまで、
                                    //   前の要素を消す。
                                    //
                                    list_StackFc.RemoveAt(list_StackFc.Count - 1);
                                    nList_StackTree.RemoveAt(nList_StackTree.Count - 1);
                                    //.WriteLine(this.GetType().Name + "#CreateForm: (70) 【前要素削除】 この要素=[" + fcUc.ControlCommon.Name + "]");

                                    //
                                    // foreachループの中で、リストの要素数が変わると、
                                    // foreachループは失敗する。
                                    //
                                    // whileループを使うことにする。
                                    //
                                    while (0 < nList_StackTree.Count)
                                    {
                                        Usercontrol prevUc = list_StackFc.Last();
                                        nPrevTree = nList_StackTree.Last();

                                        if (nCurTree <= nPrevTree)
                                        {
                                            list_StackFc.RemoveAt(list_StackFc.Count - 1);
                                            nList_StackTree.RemoveAt(nList_StackTree.Count - 1);
                                            //.WriteLine(this.GetType().Name + "#CreateForm: (80) 【前要素削除】 この要素=[" + fcUc.ControlCommon.Name + "] 前の要素=[" + prevUc.ControlCommon.Name + "]");
                                        }
                                        else
                                        {
                                            break;
                                        }
                                    }

                                    if (0 == nList_StackTree.Count)
                                    {
                                        // 空っぽになったらループを止める。
                                        // エラー?
                                        nPrevTree = -1;
                                    }
                                    else
                                    {
                                        nPrevTree = nList_StackTree.Last();
                                    }

                                    if (0 == nList_StackTree.Count)
                                    {
                                        //
                                        // ★追加:   メインフォームのトップに、この要素を追加
                                        //
                                        form.Controls.Add((Control)uct);

                                        //.WriteLine(this.GetType().Name + "#CreateForm: (90) 【メインフォームのトップ要素として追加3】 メインフォームのトップに、この要素=[" + fcUc.ControlCommon.Name + "]を追加。");
                                    }
                                    else
                                    {
                                        //
                                        // ★追加: 1つ前の要素に、この要素を追加。
                                        //
                                        Usercontrol prevUc = list_StackFc.Last();

                                        prevUc.AppendChild(
                                            uct,
                                            log_Reports
                                            );

                                        //.WriteLine(this.GetType().Name + "#CreateForm: (100) 【前の要素に、この要素を追加】 前の要素=[" + prevUc.ControlCommon.Name + "]に、この要素=[" + fcUc.ControlCommon.Name + "]を追加。");
                                    }

                                }
                            }
                        }

                    }
                }

                list_StackFc.Add(uct);
                nList_StackTree.Add(nCurTree);
            }

            // レイアウトの一時停止を解除。レイアウト実行の強制はしない。(メインフォーム)
            form.ResumeLayout(false);

            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
コード例 #10
0
ファイル: MemoryFormsImpl.cs プロジェクト: muzudho/CSVExE
        /// <summary>
        /// コントロールに、データソース、データターゲットを設定していきます。
        ///
        /// 『レイアウト設定ファイル』に記述されている、
        /// FILE列 で示された『コンポーネント設定ファイル』を読み取っていきます。
        ///
        /// 
        /// 備考:「モンスター・レギオン・エディター」で使用中。
        /// </summary>
        public void SetupUsercontrolconfigs(
            TableUserformconfig fo_Config,
            Expression_Node_Filepath ec_Fopath_Forms,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "SetupFcnfs",log_Reports);
            //

            if (log_Reports.Successful)
            {
                // 正常時

                //
                // コントロールのプロパティー設定ファイルに記述されている、
                // FILE列 で示されたコンポーネント設定ファイルをもとに、
                // コントロールにデータ・ソースと、データ・ターゲットを動的に追加します。
                //

                foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig)
                {
                    Configurationtree_NodeFilepath cf_Fpath_Control;
                    fo_Record.TryGetFilepath_Configurationtree(out cf_Fpath_Control, NamesFld.S_FILE, false, this.Owner_MemoryApplication, log_Reports);

                    Expression_Node_Filepath e_Fpath_Usercontrol = new Expression_Node_FilepathImpl(cf_Fpath_Control);

                    this.Owner_MemoryApplication.MemoryForms.LoadFile(
                        fo_Record,
                        ec_Fopath_Forms,
                        log_Reports
                    );
                }
            }

            //.WriteLine(this.GetType().Name + "#LoadFcnfs: 【終了】");

            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
コード例 #11
0
        //────────────────────────────────────────

        /// <summary>
        /// コントロールにスタイルを設定します。
        /// </summary>
        public void SetupStyle(
            TableUserformconfig fo_Config,
            MemoryApplication memoryApplication,
            Log_Reports pg_Logging
            )
        {
            Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "SetupStyle", pg_Logging);
            //

            //
            // 全てのフォームの、レイアウトを一時停止。
            //
            this.SuspendLayout(
                fo_Config,
                memoryApplication,
                pg_Logging
                );

            foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig)
            {
                string sName_Control;
                fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging);

                //
                // S → E。 コントロール名
                Expression_Node_StringImpl e_fcName = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree);
                e_fcName.AppendTextNode(
                    sName_Control,
                    fo_Record.Parent_TableUserformconfig.Cur_Configurationtree,
                    pg_Logging
                    );


                //
                // 名前から、コントロールの取得。
                //
                List <Usercontrol> fcUcList;
                if (pg_Logging.Successful)
                {
                    fcUcList = memoryApplication.MemoryForms.GetUsercontrolsByName(
                        e_fcName,
                        true,
                        pg_Logging
                        );
                }
                else
                {
                    fcUcList = new List <Usercontrol>();
                }


                //
                // スタイルの設定。
                //
                if (pg_Logging.Successful)
                {
                    Usercontrol fcUc = fcUcList[0];
                    fcUc.SetupStyle(
                        fo_Record,
                        pg_Logging
                        );
                }



                // 「メインウィンドウ」の場合、更にスタイル設定の上書き。
                string sType_Control;
                fo_Record.TryGetString(out sType_Control, NamesFld.S_TYPE, true, "", memoryApplication, pg_Logging);
                if (NamesF.S_MAINWND == sType_Control)
                {
                    //
                    // スタイルの設定。
                    //
                    if (pg_Logging.Successful)
                    {
                        memoryApplication.MemoryForms.Mainwnd_FormWrapping.SetupStyle(
                            fo_Record,
                            pg_Logging
                            );
                    }
                }
            }

            //
            //
            // 全てのフォームの、レイアウトの一時停止を解除。
            //
            //
            this.ResumeLayout(
                fo_Config,
                memoryApplication,
                pg_Logging
                );


            //
            //
            //
            //
            pg_Method.EndMethod(pg_Logging);
        }
コード例 #12
0
        //────────────────────────────────────────
        /// <summary>
        /// コントロールにスタイルを設定します。
        /// </summary>
        public void SetupStyle(
            TableUserformconfig fo_Config,
            MemoryApplication memoryApplication,
            Log_Reports pg_Logging
            )
        {
            Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "SetupStyle",pg_Logging);
            //

            //
            // 全てのフォームの、レイアウトを一時停止。
            //
            this.SuspendLayout(
                fo_Config,
                memoryApplication,
                pg_Logging
                );

            foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig)
            {
                string sName_Control;
                fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging);

                //
                // S → E。 コントロール名
                Expression_Node_StringImpl e_fcName = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree);
                e_fcName.AppendTextNode(
                    sName_Control,
                    fo_Record.Parent_TableUserformconfig.Cur_Configurationtree,
                    pg_Logging
                    );

                //
                // 名前から、コントロールの取得。
                //
                List<Usercontrol> fcUcList;
                if (pg_Logging.Successful)
                {
                    fcUcList = memoryApplication.MemoryForms.GetUsercontrolsByName(
                        e_fcName,
                        true,
                        pg_Logging
                        );
                }
                else
                {
                    fcUcList = new List<Usercontrol>();
                }

                //
                // スタイルの設定。
                //
                if (pg_Logging.Successful)
                {
                    Usercontrol fcUc = fcUcList[0];
                    fcUc.SetupStyle(
                        fo_Record,
                        pg_Logging
                        );
                }

                // 「メインウィンドウ」の場合、更にスタイル設定の上書き。
                string sType_Control;
                fo_Record.TryGetString(out sType_Control, NamesFld.S_TYPE, true, "", memoryApplication, pg_Logging);
                if (NamesF.S_MAINWND == sType_Control)
                {
                    //
                    // スタイルの設定。
                    //
                    if (pg_Logging.Successful)
                    {
                        memoryApplication.MemoryForms.Mainwnd_FormWrapping.SetupStyle(
                            fo_Record,
                            pg_Logging
                            );
                    }

                }

            }

            //
            //
            // 全てのフォームの、レイアウトの一時停止を解除。
            //
            //
            this.ResumeLayout(
                fo_Config,
                memoryApplication,
                pg_Logging
                );

            //
            //
            //
            //
            pg_Method.EndMethod(pg_Logging);
        }
コード例 #13
0
        //────────────────────────────────────────
        /// <summary>
        /// 全てのフォームの、レイアウトを一時停止。
        /// </summary>
        private void SuspendLayout(
            TableUserformconfig fo_Config,
            MemoryApplication memoryApplication,
            Log_Reports pg_Logging
            )
        {
            Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "SuspendLayout",pg_Logging);
            //
            //

            foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig)
            {
                string sName_Control;
                fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging);

                //
                // S → E。 コントロール名
                Expression_Node_StringImpl e_fcName = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree);
                e_fcName.AppendTextNode(
                    sName_Control,
                    fo_Record.Parent_TableUserformconfig.Cur_Configurationtree,
                    pg_Logging
                    );

                List<Usercontrol> list_FcUc;
                if (pg_Logging.Successful)
                {
                    list_FcUc = memoryApplication.MemoryForms.GetUsercontrolsByName(
                        e_fcName,
                        true,
                        pg_Logging
                        );
                }
                else
                {
                    list_FcUc = new List<Usercontrol>();
                }

                if (pg_Logging.Successful)
                {
                    Usercontrol uct = list_FcUc[0];

                    if (uct is UsercontrolWindow)
                    {
                        UsercontrolWindow uctWnd = (UsercontrolWindow)uct;
                        uctWnd.CustomcontrolWindow1.SuspendLayout();
                    }
                }
            }

            //
            //
            //
            //
            pg_Method.EndMethod(pg_Logging);
        }