рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ / рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ - рдкреВрдВрдЫ рдХреБрддреНрддреЗ рдХреЛ рд▓рд╣рд░рд╛рддреА рд╣реИ



рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ XtraRichEdit рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ Undo / Redo рдХреИрд╕реЗ рдХрд┐рдпрд╛ред



рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ рдХрд┐ рд╣рдорд╛рд░реА рдЯреАрдо рдХреЛ рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рд╕реНрд░реЛрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдорд╣реАрдирд╛ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛: рдЖрдк рдкрд╛рда рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд░реНрд╕рд░ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рд╣рдореЗрдВ рдмрд╕ рдкрд╛рда рдХреЗ рд╡рд░реНрдЧреЛрдВ (рдлрд╝реЙрдиреНрдЯ, рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░, рдЖрджрд┐) рдФрд░ рдЕрдиреНрдп рд╕рднреА "рдЫреЛрдЯреА рдЪреАрдЬрд╝реЛрдВ" рдХреЛ рдЙрдирдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ, рд╢реИрд▓рд┐рдпреЛрдВ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреА рддрд░рд╣ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдерд╛ред рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛ рднреА рдкреВрд░реНрд╡рд╡рддреН / рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХреАред



рдЙрди рджреЛ рд╣рдлрд╝реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕реНрд░реЛрдд рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рдирд╛ рдерд╛, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ / рдлрд┐рд░ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕реНрдХреНрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рдХреЛ рд╣рд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬрдирд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдВ):



public class DocumentHistoryItem : HistoryItem { readonly DocumentState previousState; readonly DocumentState nextState; public DocumentHistoryItem(DocumentState previousState, DocumentState nextState) { this.previousState = previousState; this.nextState = nextState; } public override void Undo(Document document) { document.ApplyState(previousState); } public override void Redo(Document document) { document.ApplyState(nextState); } }
      
      





рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХрдо рд╕реЗ рдХрдо 1 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рджреВрд╕рд░реЗ рдЧреНрд░реЗрдбрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп: рдореЗрдореЛрд░реА рдХреЗ рд░рди рдЖрдЙрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рддрдиреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреАрд╕реНрдЯреНрд░реЛрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдкреВрд░реНрд╡рд╡рдд рдмрдлрд░ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ?



рдЕрдзрд┐рдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рддрд░реАрдХреЗ рд╕реЗ рдкреВрд░реНрд╡рд╡рддреН / рдлрд┐рд░ рд╕реЗ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдереА, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рдкреВрд░реНрд╡рд╡рдд / рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рднрд╡рд┐рд╖реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдерд╛ред рдкрд╛рда рдкрд░ рд╕рднреА рдСрдкрд░реЗрд╢рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдереЗ рдХрд┐ рд░рд┐рд╡рд░реНрд╕ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╛рда рдХреЗ рднрдВрдбрд╛рд░рдг рдХрд╛ рдмрд╣реБрдд рд╕рдВрдЧрдарди, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд░реНрдЧреЛрдВ (рдлрд╝реЙрдиреНрдЯ, рдкрд╛рда рдХрд╛ рдЖрдХрд╛рд░, рдЖрджрд┐) рдХреЗ рдЧреБрдг рдкреВрд░реНрд╡рд╡рдд / рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдХрд▓реЗред рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реЙрдиреНрдЯ рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрдирд╛ рдЖрд╕рд╛рди рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрд╡рд╡рдд рдФрд░ рдирдП рдлрд╝реЙрдиреНрдЯ рдирд╛рдореЛрдВ рдХреЛ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рддрд╛рдХрд┐ рдкреВрд░реНрд╡рд╡рдд рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред рдЗрд╕реА рддрд░рд╣, рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП - рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдЖрдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреЙрдиреНрдЯ рдбрд╛рдпрд▓реЙрдЧ рдореЗрдВ) рдлреЙрдиреНрдЯ рдХрд╛ рдирд╛рдо рдФрд░ рдЙрд╕рдХрд╛ рдЖрдХрд╛рд░ рджреЛрдиреЛрдВ рдмрджрд▓ рджрд┐рдП рдЧрдП рд╣реИрдВ, рддреЛ рдкреВрд░реНрд╡рд╡рдд рдмрдлрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж 2 рддрддреНрд╡реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рд▓реЗрдХрд┐рди рдлрд╝реЙрдиреНрдЯ рдФрд░ рдЙрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдо рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдкрд╛рда рдХреЗ рдХрд┐рд╕ рдЦрдВрдб рдореЗрдВ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЕрдВрдд рдореЗрдВ, рдореМрдЬреВрджрд╛ рдХреЛрдб рдореЗрдВ Undo / Redo рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪреЗ: Undo / Redo рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред



рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдЗрддрдирд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд░рд┐рд╡рд░реНрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдФрд░ рд░рд┐рд╡рд░реНрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рд╛рдердорд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдПрдХ рдПрдХрд▓ рдпреМрдЧрд┐рдХ рддрддреНрд╡ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреВрд░реНрд╡рд╡рдд рдмрдлрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:



 public class CompositeHistoryItem : HistoryItem { readonly List<HistoryItem> items = new List<HistoryItem>(); public void AddItem(HistoryItem item) { items.Add(item); } protected override void UndoCore() { for (int i = items.Count - 1; i >= 0; i--) items[i].Undo(); } protected override void RedoCore() { int count = items.Count; for (int i = 0; i < count; i++) items[i].Redo(); } }
      
      





рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдВрдпреБрдХреНрдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рд░реЛрд▓рдмреИрдХ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд░реЛрд▓рдмреИрдХ рдХреЛ рд╕реАрдзреЗ рдХреНрд░рдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╣рдордиреЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рдЕрдВрджрд░ рдкрд╛рда рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░рди рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рднреАрддрд░ рдкрд╛рда рдХрд╛ рд╕реНрд╡рд░реВрдкрдг рд╕рдорд╛рди рдерд╛ред







рдЬрдм рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЪрдпрдирд┐рдд рдкрд╛рда рдХреЗ рд╕реНрд╡рд░реВрдкрдг рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рда рдХреЛ рдкрд╣рд▓реЗ рдЪрдпрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдЪрдпрди рдХреЗ рдЕрдВрджрд░ рдЙрди рдЕрдВрддрд░рд╛рд▓реЛрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдкрдг рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, 3 рдкреНрд░рд╛рдердорд┐рдХ рдСрдкрд░реЗрд╢рди "рдЕрдВрддрд░рд╛рд▓ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ", "2 рдЖрд╕рдиреНрди рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдорд┐рд▓рд╛рдПрдВ" рдФрд░ "рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕реНрд╡рд░реВрдкрдг рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ" рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рдЕрдВрддрд┐рдо рдкреНрд░рд╛рдердорд┐рдХ рдСрдкрд░реЗрд╢рди рдЕрд▓рдЧ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╣рдХрджрд╛рд░ рд╣реИред рдкреВрд░реНрд╡рд╡рдд рдмрдлрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдкрд╛рда рдЧреБрдгреЛрдВ рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рджреЛ рд╕рдмреЛрдмреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп (CharacterFormattingBase) рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп (CharacterFormattingInfo)ред рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреИрд╢ рд╕реВрдЪреА (CharacterFormattingInfoCache) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕реВрдЪреА рдХреЗ рддрддреНрд╡ рдЕрджреНрд╡рд┐рддреАрдп рдереЗ рдФрд░ рд╕реВрдЪреА рд╕реЗ рдХрднреА рд╣рдЯрд╛рдП рдирд╣реАрдВ рдЧрдП рдереЗред рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдПрдВ рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИрдВред







рдЗрд╕рдиреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ (рдпрд╛ рдХрдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд░ рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рддрдХрдиреАрдХреА рдорд╛рдорд▓рд╛ рд╣реИ) рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдХреИрд╢ рдореЗрдВ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЪрд░ рд╡рд╕реНрддреБ рдореЗрдВ рдЗрд╕рдХреЗ рднрдВрдбрд╛рд░рдгред рдпрджрд┐ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд╕реНрддреБ рдвреВрдВрдврдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рдХреИрд╢ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред



рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдЧреБрдгреЛрдВ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХрд▓ рд▓реЗрдирджреЗрди рдХреЗ рднреАрддрд░) рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╡рдд рдХреЗрд╡рд▓ 2 рдЕрдиреБрдХреНрд░рдорд┐рдд, рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред



рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝рддрд╛ рдХреИрд╢ рдореЗрдореЛрд░реА рдХреЛ рдЧрд▓рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рдкрд╛рда рдЧреБрдгреЛрдВ рдХреЗ рдЗрддрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдпреЛрдЬрди рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рда рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рд╕рдорд╛рди рд╕реНрд╡рд░реВрдкрдг рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдкреНрд░рд╛рд░реВрдкрдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХреИрд╢ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХрдорд╛рддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВред



рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЗрд╕рдХреЗ рд╡рд┐рднрд╛рдЬрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред



рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдкрд╛рда рдХрд╛ рдПрдХ рд╕рддрдд рдФрд░ рдПрдХрд▓ рдЯреБрдХрдбрд╝рд╛ рд╣реИ:







рдмреЛрд▓реНрдб "рдкрд╛рда" рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВред



рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ 3 рдкреНрд░рд╛рдердорд┐рдХ рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рд╣рдо рдкрд╛рда рдХреЛ 2 рдЖрд╕рдиреНрди рдЦрдВрдбреЛрдВ рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВред







рд╣рдо рдкрд╛рда рдХреЗ рджрд╛рд╣рд┐рдиреЗ рднрд╛рдЧ рдХреЛ 2 рдФрд░ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВред







рдЗрдВрдбреЗрдХреНрд╕ 1 рдХреЗ рд╕рд╛рде рдкреНрд▓реЙрдЯ рдХреЗ рд▓рд┐рдП, рдмреЛрд▓реНрдб рдлрд╝реЙрдиреНрдЯ рд▓рд╛рдЧреВ рдХрд░реЗрдВред







рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ, рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рддрд┐рд╡рд░реНрддреА рд╣реИ рдФрд░ рдиреНрдпреВрдирддрдо рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд╛рда рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдЕрдиреБрднрд╛рдЧ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЦрдВрдб рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкрддреНрд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдЬрд┐рд╕рдХреЗ рдкрд╣рд▓реЗ рдЕрдиреБрднрд╛рдЧ рд╣реЛрдЧрд╛ред рдлрд╝реЙрдиреНрдЯ рд╢реИрд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдкрд╛рда рдЕрдиреБрднрд╛рдЧ (рд░рди рдЗрдВрдбреЗрдХреНрд╕) рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдХреИрд╢ рдореЗрдВ CharacterFormattingInfo рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдЕрдиреБрдХреНрд░рдо рднреАред



рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ / рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВред рдЕрд░реНрдерд╛рддреН: рдкрд╛рда рдХреЛ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдПрдХ рдЦрдВрдб рдХреЗ рдкреВрд░реЗ рдкрд╛рда рдореЗрдВ рд╕рдорд╛рди рд╕реНрд╡рд░реВрдкрдг рд╣реЛред рдкрд╛рд░реНрд╕рд▓ рдирдореНрдмрд░рд╡рд╛рд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдРрд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрдЧрдарди рдХреЗ рд╕рд╛рде рд╣реИ рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдФрд░ рд╕рд░рд▓ рд╡рд┐рднрд╛рдЬрди рд╣реИред рдФрд░ рдпрд╣ рдмрджрд▓реЗ рдореЗрдВ, рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ / рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╕рд░рд▓реАрдХрд░рдг рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред



XtraRichEdit рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдордиреЗ рд╢реБрд░реВ рдореЗрдВ тАЬрдкреВрд░реНрд╡рд╡рдд / рдлрд┐рд░ рд╕реЗтАЭ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдкреВрд░реНрд╡рд╡рддреН / рдлрд┐рд░ рд╕реЗ рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП, рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдиреНрдпреВрдирддрдо рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдиреЗ рд╣рдореЗрдВ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЬреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ, рдЬреЛ рд╕реНрдореГрддрд┐ рдХрд╛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрд╡рд░реВрдкрдг рдХреЗ рджреМрд░рд╛рди рдореЙрдбрд▓ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдорддреЗ рд╕рдордп рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред



рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд┐рдЫрд▓рд╛ рд▓реЗрдЦ | рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдЧрд▓рд╛ рд▓реЗрдЦ



All Articles