Пример #1
0
        public override int GetMatchStyleNo(HCStyle AStyle, int ACurStyleNo)
        {
            int Result = HCStyle.Null;

            if (AStyle.TextStyles[ACurStyleNo].BackColor == FColor)
            {
                Result = ACurStyleNo;
                return(Result);
            }
            HCTextStyle vTextStyle = new HCTextStyle();

            try
            {
                vTextStyle.AssignEx(AStyle.TextStyles[ACurStyleNo]);  // item当前的样式
                vTextStyle.BackColor = FColor;
                if (this.OnTextStyle != null)
                {
                    this.OnTextStyle(ACurStyleNo, ref vTextStyle);
                }
                Result = AStyle.GetStyleNo(vTextStyle, true);  // 新样式编号
            }
            finally
            {
                vTextStyle.Dispose();
            }

            return(Result);
        }
Пример #2
0
        public override int GetMatchStyleNo(HCStyle AStyle, int ACurStyleNo)
        {
            int         Result     = HCStyle.Null;
            HCTextStyle vTextStyle = new HCTextStyle();

            try
            {
                vTextStyle.AssignEx(AStyle.TextStyles[ACurStyleNo]);  // item当前的样式
                if (this.Append)
                {
                    if (!vTextStyle.FontStyles.Contains((byte)FFontStyle))
                    {
                        // 不能同时为上标和下标
                        if (FFontStyle == HCFontStyle.tsSuperscript)
                        {
                            vTextStyle.FontStyles.ExClude((byte)HCFontStyle.tsSubscript);
                        }
                        else
                        if (FFontStyle == HCFontStyle.tsSubscript)
                        {
                            vTextStyle.FontStyles.ExClude((byte)HCFontStyle.tsSuperscript);
                        }

                        vTextStyle.FontStyles.InClude((byte)FFontStyle);
                    }
                    else
                    {
                        return(ACurStyleNo);
                    }
                }
                else  // 减去
                {
                    if (vTextStyle.FontStyles.Contains((byte)FFontStyle))
                    {
                        vTextStyle.FontStyles.ExClude((byte)FFontStyle);
                    }
                    else
                    {
                        return(ACurStyleNo);
                    }
                }

                if (this.OnTextStyle != null)
                {
                    this.OnTextStyle(ACurStyleNo, ref vTextStyle);
                }
                Result = AStyle.GetStyleNo(vTextStyle, true);  // 新样式编号
            }
            finally
            {
                vTextStyle.Dispose();
            }

            return(Result);
        }
Пример #3
0
        public int GetMatchStyleNo(HCStyle aStyle, int aCurStyleNo)
        {
            if (DoMatchCur(aStyle.TextStyles[aCurStyleNo]))
            {
                return(aCurStyleNo);
            }

            using (HCTextStyle vTextStyle = new HCTextStyle())
            {
                vTextStyle.AssignEx(aStyle.TextStyles[aCurStyleNo]);
                DoMatchNew(vTextStyle);
                if (FOnTextStyle != null)
                {
                    FOnTextStyle(aCurStyleNo, vTextStyle);
                }

                return(aStyle.GetStyleNo(vTextStyle, true));
            }
        }