示例#1
0
        public static CResultAErreur SerializeFont(C2iSerializer serializer, ref Font ft)
        {
            CResultAErreur result   = CResultAErreur.True;
            bool           bHasFont = ft != null;

            serializer.TraiteBool(ref bHasFont);
            if (bHasFont)
            {
                if (serializer.Mode == ModeSerialisation.Lecture)
                {
                    ft = new Font("Arial", 1, FontStyle.Regular);
                }
                Byte   gdiCharset      = ft.GdiCharSet;
                bool   gdiVerticalFont = ft.GdiVerticalFont;
                int    nUnit           = (int)ft.Unit;
                string strName         = ft.Name;
                double fSize           = ft.Size;
                int    nStyle          = (int)ft.Style;
                serializer.TraiteByte(ref gdiCharset);
                serializer.TraiteBool(ref gdiVerticalFont);
                serializer.TraiteString(ref strName);
                serializer.TraiteDouble(ref fSize);
                serializer.TraiteInt(ref nStyle);
                serializer.TraiteInt(ref nUnit);
                if (serializer.Mode == ModeSerialisation.Lecture)
                {
                    ft = new Font(strName, (float)fSize, (FontStyle)nStyle, (GraphicsUnit)nUnit, gdiCharset, gdiVerticalFont);
                }
            }
            return(result);
        }
        //--------------------------------------
        public CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            byte nTmp = (byte)TypeDonnee;

            if (m_valeur == null)
            {
                nTmp = byte.MaxValue;
            }
            serializer.TraiteByte(ref nTmp);
            if (nTmp != byte.MaxValue)
            {
                ETypeChampBasique typeDonnee = (ETypeChampBasique)nTmp;
                switch (typeDonnee)
                {
                case ETypeChampBasique.String:
                    string strVal = StringValue;
                    serializer.TraiteString(ref strVal);
                    StringValue = strVal;
                    break;

                case ETypeChampBasique.Int:
                    int nVal = IntValue == null ? 0 : IntValue.Value;
                    serializer.TraiteInt(ref nVal);
                    IntValue = nVal;

                    break;

                case ETypeChampBasique.Decimal:
                    double fVal = DoubleValue == null ? 0.0 : DoubleValue.Value;
                    serializer.TraiteDouble(ref fVal);
                    DoubleValue = fVal;
                    break;

                case ETypeChampBasique.Date:
                    DateTime dtValue = DateTimeValue == null ? default(DateTime) : DateTimeValue.Value;
                    serializer.TraiteDate(ref dtValue);
                    DateTimeValue = dtValue;
                    break;

                case ETypeChampBasique.Bool:
                    bool bVal = BoolValue == null ? default(bool) : BoolValue.Value;
                    serializer.TraiteBool(ref bVal);
                    BoolValue = bVal;
                    break;
                }
            }
            return(result);
        }