рдкрд╣рд▓реА
рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдордиреЗ рдЧреНрд░рд┐рдб рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдЖрдЗрдП рдЬрд▓реНрджреА рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:
- рдкрдВрдХреНрддрд┐рдпрд╛рдБ - рд╕реНрддрдВрднреЛрдВ рдпрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИрдВред
- рд░реЗрдВрдЬ - рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
- рд▓реЗрдЖрдЙрдЯ - рдЖрдкрдХреЛ рд╕реЗрд▓ рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рдореЙрдбрд▓ - рджреГрд╢реНрдп рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рджреЗрдЦреЗрдВ - рд╕реЗрд▓ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рддрд╛ рд╣реИред
- рдирд┐рдпрдВрддреНрд░рдХ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдбреЗрдЯрд╛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рдХреИрд╢реЗрд╕реЗрд▓ - рдПрдХ рджреГрд╢реНрдп рдХреЛрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдбреЗрдЯрд╛ред
- CacheGrid - рдЧреНрд░рд┐рдб рдХреЗ рджреГрд╢реНрдп рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред
- рдЧреНрд░рд┐рдбрд╡рд┐рдВрдбреЛ - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдВрддреНрд░рдгред
рд╣рдордиреЗ рдкрд╛рда рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдФрд░ рджреГрд╢реНрдп рдХрд╛ рд╡рд░реНрдгрди рднреА рдХрд┐рдпрд╛ (ModelText, ModelTextCallbackред ViewText)ред рдЪрд▓рд┐рдП рдПрдХ рдЧреНрд░рд┐рдб рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рдЗрдВрдб рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рдореЙрдбрд▓ / рджреГрд╢реНрдп / рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреЛрдб, рд╢реЗрдпрд░реНрдб_рдПрдкреНрдЯреНрд░ рдЖрджрд┐ рдореЗрдВ рд╕рдВрдХреЗрдд рднреЗрдЬреВрдВрдЧрд╛ред рддреЛ рдЪрд▓рд┐рдП рдЬрд╛рдиреЗ ...
int main() { Application app;

рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рдпрд╛ рддреЛ рдкрдЯреНрдЯреА, рдпрд╛ рдЬрд╛рд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВред рдЪрд▓реЛ рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдкред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдб рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддрд╛ рд╣реИред
class ViewOddRowBackground: public View { public: void Draw(DrawContext& dc, Rect rect, CellID cell) const override {
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ рдЯреНрд░рд╛рдВрд╕рдкреЗрд░реЗрдВрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ LayoutAll рдХреЛ рджрд┐рдпрд╛, рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЖрдЙрдЯ рд╕реЗрд▓ рдХреА рдЖрдпрдд рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, LayoutAll рд╕реЗрд▓ рдХреЗ рдкреВрд░реЗ рдореБрдХреНрдд рдХреНрд╖реЗрддреНрд░ рдХреЛ "рдкрд┐рдХ" рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╢реВрдиреНрдп рдХрд░рддрд╛ рд╣реИред рдЯреНрд░рд╛рдВрд╕рдкреЗрд░реЗрдВрдЯ рдореЛрдб рдореЗрдВ, рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдЕрдЧрд▓реЗ рд╡реНрдпреВрдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдПрдХ рд╣реА рдореВрд▓ рдЖрдпрдд рдорд┐рд▓реЗрдЧреАред
рдпрд╣ рдореБрдЦреНрдп рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ
GridWindow grid_window("Demo"); plugOddRowBackgroud(grid_window.GetGrid());

рдЕрдм рд╣рдо рдЧреНрд░рд┐рдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
class ViewCellBounds: public View { public: void Draw(DrawContext& dc, Rect rect, CellID cell) const override {

рд╕рднреА рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рдЖрдо рд╕реНрдерд╛рди рдЪрдпрдирд┐рдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ - рдЪрдпрдиред рдкрд┐рдЫрд▓реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдиреЗ рдХреЛрдИ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЙрдирдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдирд╣реАрдВ рдмрдирд╛рдПред рдпрд╣рд╛рдВ рд╕реНрдерд┐рддрд┐ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред ModelSelection рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪрдпрдирд┐рдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рд╕рдХреНрд░рд┐рдп рд╕реЗрд▓ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (рдпрд╣ рд╡рд╣ рд╕реЗрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕ рд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред рд╣рдо рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
class ModelSelection: public Model { public: Range GetSelectedRange() const { return m_selected_range; } void SetSelectedRange(Range new_selected_range) { m_selected_range = new_selected_range; changed.invoke(*this); } CellID GetActiveCell() const { return m_active_cell; } void SetActiveCell(CellID new_active_cell) { m_active_cell = new_active_cell; changed.invoke(*this); } private: Range m_selected_range; CellID m_active_cell; }; class ViewSelection: public View { public: ViewSelection(ModelSelection selection) : m_selection(selection) {} void Draw(DrawContext& dc, Rect rect, CellID cell) const override {
рдореИрдВ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рд╕рдм рдХреБрдЫ рд╡рд╣рд╛рдБ рднреА рд╕рд░рд▓ рд╣реИ: рдмрд╛рдИрдВ рдорд╛рдЙрд╕ рдмрдЯрди рджрдмрд╛рдХрд░ рд╣рдо рд╕рдХреНрд░рд┐рдп рд╕реЗрд▓ рдХреЛ рдорд╛рдЙрд╕ рдХреЗ рдиреАрдЪреЗ рдПрдХ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рдорд╛рдЙрд╕ рдХреЛ рд▓реЗ рдЬрд╛рдиреЗ рдФрд░ рдмрд╛рдИрдВ рдХреБрдВрдЬреА рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╕рдордп, рд╣рдо рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реЗрдВрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдХреНрд░рд┐рдп рд╕реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдмреНрд▓реЙрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ (рдЬрд╣рд╛рдВ рд╣рдордиреЗ рдмрдЯрди рджрдмрд╛рдпрд╛) рд╡рд░реНрддрдорд╛рди рдПрдХ рдХреЛред рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд░реЗрдВрдЬ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВред рдЖрдкрдХреЛ рд╢рд┐рдлреНрдЯ рдФрд░ Ctrl рдХреБрдВрдЬреА рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ рд╡рд┐рд╡рд░рдг рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрди рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВред

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

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

рдЖрдЗрдП рдЖрдЧреЗ рднреА рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░ рдХрд┐рд╕реА рднреА рддрд░рдл рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдЧреНрд░рд┐рдбрд╡рд┐рдВрдбреЛ рд╡рд░реНрдЧ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ - рдПрдХ рдХреИрд╢реЗрдЧреНрд░рд┐рдб рдХреЗ рдмрдЬрд╛рдп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рдиреМ рд╣реИрдВред рдорд╛рдЙрд╕ рдИрд╡реЗрдВрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ, рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ, рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рднреА рдЬрдЯрд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдпрд╣рд╛рдВ рдЕрдВрддрд┐рдо рдбреНрд░рд╛рдЗрдВрдЧ рдкрд░ рд░реБрдХрдиреЗ рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рджреВрд░ рд╕реЗ, рдпрд╣ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рддреАрди рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдиреМ рдЙрдк-рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХреНрд╖реЗрддреНрд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░рд┐рдб рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬрд┐рди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЕрдиреНрдп рдЧреНрд░рд┐рдб рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡реНрдпреВ рдЗрддрдирд╛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдЗрдХрд╛рдИ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдЪрд▓рд┐рдП рдПрдХ рд╡реНрдпреВ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕реЗрд▓ рдореЗрдВ рдХреБрдЫ рдЧреНрд░рд┐рдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдиреМ рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрди рд╡рд░реНрдЧ рдорд┐рд▓рддреЗ рд╣реИрдВ:
class ModelGrid: public Model { public: ModelGrid(); CacheGrid GetGrid(CellID cell) const { return m_grids[cell.row][cell.column]; } private: CacheGrid m_grids[3][3]; }; class ViewGrid: public View { public: ViewGrid(ModelGrid model) :m_model(model) {} void Draw(DrawContext& dc, Rect rect, CellID cell) const override { CacheGrid cacheGrid = m_model.GetGrid(cell); cacheGrid.Draw(dc); } };
ModelGrid рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдиреМ CacheGrid рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдкреБрд░рд╛рдиреЗ рдЧреНрд░рд┐рдбрд╡рд┐рдВрдбреЛ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ ViewGrid рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ CacheGrid рдСрдмреНрдЬреЗрдХреНрдЯ рдерд╛, рддреЛ рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рдЧреНрд░рд┐рдбрд╡рд┐рдВрдбреЛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░реНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдмрдЧреНрд░рд┐рдбреНрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ рдХреЛрдиреЗ рдЧреНрд░рд┐рдб (рдЯреЙрдк / рд▓реЗрдлреНрдЯ, рдЯреЙрдк / рд░рд╛рдЗрдЯ, рдмреЙрдЯрди / рд░рд╛рдЗрдЯ, рдмреЙрдЯрдо / рд▓реЗрдлреНрдЯ), рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдЯреЙрдк рдФрд░ рдмреЙрдЯрдо рдЧреНрд░рд┐рдб, рд▓рдВрдмрд╡рдд - рд▓реЗрдлреНрдЯ рдФрд░ рд░рд╛рдЗрдЯ ред рдЦреИрд░, рдХреЗрдВрджреНрд░реАрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдЧреНрд░рд┐рдб рдХреЛ рд╕рднреА рдкрдХреНрд╖реЛрдВ рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕рдорд╛рди рд░рд╣реЗрдЧрд╛ред
рдпрд╣рд╛рдБ рд╣рдо рдлрд┐рд░ рд╕реЗ рд░реБрдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рддрдХ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдпреБрджреНрдзрд╛рднреНрдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдпрд╛рди рдерд╛ - рдПрдХ рдЧреНрд░рд┐рдб рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдФрд░ рдПрдХ рд╕реЗрд▓ рдПрдХ рдРрд╕реА рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЕрдм рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕реЗрд▓ рдЧреНрд░рд┐рдб рд╕рд╣рд┐рдд рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдВрдж рд╣реИ - рдЧреНрд░рд┐рдб рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдЧреНрд░рд┐рдб рдХреЛ рдЦреАрдВрдЪрддреА рд╣реИрдВред рдпрд╣ рдЪрд┐рдХрди рдФрд░ рдЕрдВрдбреЗ рдХреЗ рджрд╛рд░реНрд╢рдирд┐рдХ рд╕рд╡рд╛рд▓ рдХреЛ рдЙрдард╛рддрд╛ рд╣реИред рдкреНрд░рд╛рдердорд┐рдХ рдХреНрдпрд╛ рд╣реИ? рдПрдХ рдЧреНрд░рд┐рдб рдЬрд┐рд╕рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдПрдБ рдпрд╛ рдПрдХ рд╕реЗрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЧреНрд░рд┐рдб рд╕рд╣рд┐рдд рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реЗрд▓ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдЕрдзрд┐рдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИред рдкрд╣рд▓реЗ рд▓реЗрдЦ рд╕реЗ CellCache рд╡рд░реНрдЧ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ - рдЗрд╕рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ Triples <Range, View, Layout> рдХреЛ Range рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЗрд▓ рдХреЛ triples рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди <View, Layout> deuces - рдЬреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рд╣реИред рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ред CellCache рдорд╛рдЙрд╕ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ), рдЬрдмрдХрд┐ рдЧреНрд░рд┐рдб рдХрд╛ рдХрд╣реАрдВ рднреА рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдПрдХ рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ CacheGrid рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ CacheCell рдЦреАрдВрдЪрддреА рд╣реИ? рддрдм рд╣рдореЗрдВ рдЧреНрд░рд┐рдб рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд┐рдпрдВрддреНрд░рдг, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдмрд╕ рджреЛ <рд╡реНрдпреВ, рд▓реЗрдЖрдЙрдЯ> рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, {<ViewCheck, LayoutLeft>, <ViewText, LayoutAll>} рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╣рдореЗрдВ рдЪреЗрдХрдмреЙрдХреНрд╕ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдорд╛рдирдХ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рдВрдпреЛрдЬрди рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рджреЗрдВрдЧреЗ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЖрдЙрдЯ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рджреГрд╢реНрдп рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рда рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рдЪреЗрдХрдмреЙрдХреНрд╕, рдиреАрдЪреЗ, рдКрдкрд░ - рдЬреЛ рднреА рд╣реЛред
рдЖрдЗрдП рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рдЖрдЗрдЯрдорд╡рд┐рдВрдбреЛ рдХрд╣рддреЗ рд╣реИрдВ (рдПрдХ рд╕реЗрд▓ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдЧреНрд░рд┐рдб рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЖрдЗрдЯрдо рдЕрдзрд┐рдХ рддрдЯрд╕реНрде рд╣реИ)ред рдореБрдЭреЗ рддреАрди рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдорд┐рд▓рд╛:
- рдЖрдЗрдЯрдорд╡рд┐рдВрдбреЛ - рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд┐рдпрдВрддреНрд░рдг, рдХреИрд╢реЗрд╕реЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдВрдкреВрд░реНрдг рд╡рд┐рдВрдбреЛ рдПрдХ рдПрдХрд▓ рдХрдХреНрд╖ рд╣реИред
- ListWindow ItemWindow рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИред CacheCell рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ ViewGrid рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рд╕реЗрд▓ рдореЗрдВ рдПрдХрд▓ рдЧреНрд░рд┐рдб рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ (рд╢реАрд░реНрд╖рдХ, рдЖрджрд┐) рдХреЗ рдмрд┐рдирд╛ рд╕рд░рд▓ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ
- GridWindow ListWindow рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИред рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рд╛рде ListWindow рдореЗрдВ рдШреЛрд╖рд┐рдд рдЧреНрд░рд┐рдб рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдЧреНрд░рд┐рдб рдкрд░ рдПрдХ рдФрд░ ViewGrid рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдиреМ рдЙрдкрдЧреНрд░рд╣реЛрдВ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реБрд░реНрдЦрд┐рдпреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрдм рджреГрд╢реНрдп рдШрдЯрдХреЛрдВ рдХреЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдкрд╣рд▓реЗ рд╕рд░рд▓ рдЦрд┐рдбрд╝рдХреА рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ (рдЖрдЗрдЯрдо рдЖрдзрд╛рд░рд┐рдд) рд╡рд╛рд▓реЗ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреА рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрдп рд╣реИрдВ рдФрд░ рдЖрдЗрдЯрдо-рдЖрдзрд╛рд░рд┐рдд рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╡реЗ рдХреБрдЫ рдЕрдиреНрдп рд╕рд╛рд░ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЦрд┐рдбрд╝рдХреА рдХреА рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВред рдирддреАрдЬрддрди, рдПрдХ рд╕рд╛рде рд╕рд░рд▓ рдФрд░ рдЬрдЯрд┐рд▓ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╣рдо рдЬрдЯрд┐рд▓ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рд╕реЗ рдЪрд▓реЗ рдЧрдП рдФрд░ рд╕рд░рд▓ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдПред рд▓реЗрдХрд┐рди рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдврд╛рдВрдЪреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ - рджреГрд╢реНрдп рдФрд░ рд▓реЗрдЖрдЙрдЯ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░рд▓ рдирд┐рдпрдВрддреНрд░рдг (рдЖрдЗрдЯрдорд╡рд┐рдВрдбреЛ) рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓реЛрдЧреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ViewCheck рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдЧреНрд░рд┐рдб рдХреЗ рдПрдХ рд╕рдмрд▓реЗрдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдЦ рдХрд╛рдлреА рд▓рдВрдмрд╛ рдФрд░ рдЬрдЯрд┐рд▓ рдирд┐рдХрд▓рд╛, рдЗрд╕рд▓рд┐рдП рдЕрдм рдореИрдВ рд╕рдорд╛рдкреНрдд рдХрд░реВрдВрдЧрд╛ред рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдЧрд▓рдд рдпрд╛ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦреЗрдВ, рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВрдВрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд▓реЗрдЦ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реА рдЦрд┐рдбрд╝рдХреА рдХреЗ рд▓рд┐рдП рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдИ рднреА рдЙрдкрдХрд░рдг рдЬреЛ рд╕рдВрджреЗрд╢ рдХреЛ рдПрдХ рдЦрд┐рдбрд╝рдХреА рдкрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде "рд╕рдВрд╡рд╛рдж" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдпрд╣ рд╣рдореЗрдВ рдЕрдЬрдЧрд░ рдХреЛ рдЧреНрд░рд┐рдб рдореЗрдВ рдмрд╛рдВрдзрдиреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рд╕реНрд╡рдд: рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рднреА рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдореЗрд░реА рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА "рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдЪреАрдЬрд╝реЛрдВ" рдХреЛ рдбреЗрд╡реЗрдХреНрд╕рдкреНрд░реЗрд╕ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред