рд╡рд┐рдЬреБрдЕрд▓ C ++ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдЧреНрд░рд┐рдб рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг

рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реА ++ рдореЗрдВ рдорд╛рдирдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдХрдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд╛рд░рдг, рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдкреВрд░рд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдпрд╣ рдЯреЗрдмреБрд▓рд░ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИред рдХрдо рдЧрдВрднреАрд░ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ ListCtrl рдЕрдм рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЕрдлрд╡рд╛рд╣ рдлреИрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рдХрд╛рдлреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЧреНрд░рд┐рдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреА рдореЗрд╣рдирдд рдХреЗ рдкреИрд╕реЗ рд╕реЗ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдпреБрд░реА рдЬрд╝рдмреНрд░реЛрджрд╛ рд╡рд░реНрдЪреБрдЕрд▓рдЧреНрд░рд┐рдбрдХреНрд░рдЯрд▓ рд╕реЗ рдПрдХ рдЕрджреНрднреБрдд рдШрдЯрдХ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЗрд╕ рдШрдЯрдХ рдХреЛ Visual C ++ 6.0 рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдЬ рддрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓ C ++ рдХреЗ рдЕрдзрд┐рдХ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░рд┐рдб рдЪреБрдирддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдХрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рд╛рдордиреЗ рд░рдЦрд╛:

- рдорд▓реНрдЯреАрд▓рд╛рдЗрди рдЧреНрд░рд┐рдб рд╣реЗрдбрд░ (рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЬрдЯрд┐рд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ)
- рдмрд╣реБрд╕реНрддрд░реАрдп рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
- рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдорд╛рдирдХ рд╕реАрдИрдбрд┐рдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рд░рдВрдЧ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рдХрд╛рдо рдХреА рдЧрддрд┐

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

рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝реЙрд░реНрдо рдХрд╛ рдПрдХ рдЯреЗрдмрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИ:

- рдирд╣реАрдВ рдирдВрдмрд░
- рджрд┐рдирд╛рдВрдХ
- рдЧреНрд░рд╛рд╣рдХ: рдлреЛрди, рдкрддрд╛

рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╕рд╛рджрд╛ рдкрд╛рда рд╣реЛрддрд╛ рд╣реИред

рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ



VirtualGridCtrl рдореЗрдВ VirtualGridDemo.exe рдирд╛рдордХ рдПрдХ рдЧреНрд░рд┐рдб рдЙрдкрд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдорд╛рддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЯреИрдм рдкрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, "рдХреЙрд▓рдо рдФрд░ рд╣реЗрдбрд░реНрд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░" рдмрдЯрди рдкрд░ рдФрд░ "рдХреЙрд▓рдо" рдЯреИрдм рдкрд░, рд╕рднреА рдХреЙрд▓рдо рд╣рдЯрд╛рдПрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдХрдИ рдХреЙрд▓рдо рдЬреЛрдбрд╝реЗрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 4. рдлрд┐рд░, "рд╣реЗрдбрд░реНрд╕" рдЯреИрдм рдкрд░, рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдВред рд╣рдорд╛рд░реЗ рдЧреНрд░рд┐рдб рдХреА рдЯреЛрдкрд┐рдпрд╛рдВред



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ



рджрд╛рдПрдБ рдлрд▓рдХ рдореЗрдВ, рдЖрдк рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рднреА рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЪрд▓рд┐рдП рдЕрдм рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рдлрд┐рд░ рд╕реЗ, "рдХреЙрд▓рдо рдФрд░ рд╣реЗрдбрд░реНрд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ рдФрд░ "рдХреЛрдб рдЬреЗрдирд░реЗрд╢рди" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░ "рдЬреЗрдирд░реЗрдЯ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдбрд╛рдпрд▓реЙрдЧ рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдореИрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2008 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ) рдмрдирд╛рдПрдВ рдФрд░ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ: VirtualGridCtrl.h, MemDC.h, TitleTip.h, GridListBox.h, GridEdit.h, GridButton.hред рдкреНрд░рдкрддреНрд░ рдореЗрдВ "рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг" рдЬреЛрдбрд╝реЗрдВ, рдЕрдкрдиреА "рдХреНрд▓рд╛рд╕" рд╕рдВрдкрддреНрддрд┐ "CVirtualGridCtrl" рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ "CVirtualGridCtrl" рдкреНрд░рдХрд╛рд░ рдХрд╛ m_grid рдЪрд░ рдЬреЛрдбрд╝реЗрдВред

рдЕрдм рдЖрдк OnInitialDialog рдореЗрдВ рдЧреНрд░рд┐рдб рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рд╡рд╣рд╛рдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреЛрдб рдХреЛ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЙрд╕ рдХреЛрдб рдХреА рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ рдереА, рди рдХрд┐ рдЬреЛ рднреА рд╕реЗрдЯрд┐рдВрдЧ рд╣рдордиреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕реЗрдЯ рдХреА рдереА, рд╡рд╣ рдЗрд╕ рдХреЛрдб рдореЗрдВ рдЧрд┐рд░реА рдереА, рдпрд╣ рдПрдХ рджреЛрд╖ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдЦреБрдж рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рддреЛ, рд╣рдо рдЙрд╕ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдерд╛:
// --------------- Required variables ----------------- CGridColumn *pColumn; CGridHeaderSections *pSections; CGridHeaderSection *pSection; CGridHeaderSection *pUpperSection; // ----------------- Let's add some columns -------------- m_grid.AddColumn(_T(""), 60, LVCFMT_CENTER); //  ,       m_grid.AddColumn(_T(""), 92, LVCFMT_CENTER); m_grid.AddColumn(_T(""), 81, LVCFMT_CENTER); m_grid.AddColumn(_T(""), 68, LVCFMT_CENTER); // --------------- Set additional column properties ---------------- pColumn = m_grid.GetColumn(0); pColumn->SetTabStop(FALSE); //     // --------------- Let's put the grid header into shape ------------ pSections = m_grid.GetHeader()->GetSections(); pUpperSection = pSections->GetSection(0); pUpperSection->SetCaption(_T("")); pUpperSection->SetAlignment(LVCFMT_CENTER); pUpperSection = pSections->GetSection(1); pUpperSection->SetCaption(_T("")); pUpperSection->SetAlignment(LVCFMT_CENTER); pUpperSection = pSections->GetSection(2); pUpperSection->SetCaption(_T("")); pUpperSection->SetAlignment(LVCFMT_CENTER); pUpperSection->SetWordWrap(TRUE); //     3-  pSection = pUpperSection->Add(); pSection->SetCaption(_T("")); pSection->SetAlignment(LVCFMT_CENTER); pUpperSection = pSection; pUpperSection = pSection->GetParent(); pSection = pUpperSection->Add(); pSection->SetCaption(_T("")); pSection->SetAlignment(LVCFMT_CENTER); pUpperSection = pSection; pUpperSection = pSection->GetParent(); m_grid.GetHeader()->SynchronizeSections(); // -------------- Some additional initializations... ------ //    CGridHeader *pHeader = m_grid.GetHeader(); pHeader->SetSectionHeight(25); //    pHeader->SynchronizeSections(); m_grid.SetFixedCount(1); //      m_grid.SetRowSelect(); //    m_grid.SetRowHeight(25); //    

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ VirtualGrid рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред
рдЕрдм рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдиреЗрдВред рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдБ:
 struct sKlient { int nomer; COleDateTime date; CString tel; CString adres; }; 

рдФрд░ m_data рдЪрд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
 vector<sKlient> m_data; 

рдФрд░ OnInitialDialog рдореЗрдВ рд╣рдо рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
 //     sKlient tmp; tmp.nomer = 1; tmp.date = COleDateTime(2012,1,1,0,0,0); tmp.tel = L"12-34-56"; tmp.adres = L" 1"; m_data.push_back(tmp); tmp.nomer = 2; tmp.date = COleDateTime(2011,2,3,0,0,0); tmp.tel = L"78-12-45"; tmp.adres = L" 2"; m_data.push_back(tmp); m_grid.SetRowCount(m_data.size()); //       

рдЕрдм рд╣рдо рдЧреНрд░рд┐рдб рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЕрдкрдиреА рдХреНрд▓рд╛рд╕ рдореЗрдВ рдлрдВрдХреНрд╢рди рдбреЗрдлрд┐рдиреЗрд╢рди рдЬреЛрдбрд╝реЗрдВрдЧреЗ:
 afx_msg void OnGridGetDispInfo(NMHDR *pNMHDR, LRESULT *pResult); 

BEGIN_MESSAGE_MAP рдореЗрдВ .cpp рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ:
 ON_NOTIFY(VGN_GETDISPINFO, IDC_CUSTOM1, OnGridGetDispInfo) 

рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ VGN_GETDISPINFO рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
 VG_DISPINFO *pDispInfo = (VG_DISPINFO *)pNMHDR; CString st; if (pDispInfo->item.mask & LVIF_TEXT) //      { switch (pDispInfo->item.nColumn) { case 0: {// тДЦ st.Format(L"%d", m_data[pDispInfo->item.nRow].nomer); pDispInfo->item.strText = st; } break; } } //       if (pDispInfo->item.mask & LVIF_COLOR) { if (pDispInfo->item.nColumn == 1) //      { pDispInfo->item.pDC->SetBkColor(RGB(202, 228, 255)); } } 

рдЗрд╕реА рддрд░рд╣, рдЖрдк рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрдВрдХреНрд╢рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
 ON_NOTIFY(WM_LBUTTONDBLCLK, IDC_CUSTOM1, OnNMDblclkGrid) void CCVirtaGridTestDlg::OnNMDblclkGrid(NMHDR *pNMHDR, LRESULT *pResult) { int n; n = m_grid.GetRow(); if (!m_grid.GetRowCount() || (n > m_grid.GetRowCount()-1)) return; ::AfxMessageBox(m_data[n].adres); } 

рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╣реИрдВрдбрд▓рд░ред

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

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

Source: https://habr.com/ru/post/In140388/


All Articles