Лабораториска вежба 10 - finki-mk/VP GitHub Wiki

Document-View архитектура и MDI апликација

Конечен изглед на апликацијата

Конечен изглед на апликацијата

Опис на задачата

Во оваа задача треба да се развие едноставна Windows Forms апликација која ќе биде контејнер на повеќе (две) различни форми. Ова се постигнува со поставување на својството IsMdiContainer на true.

Апликацијата треба да работи со два видови на документи. Документ кој ќе претставува број на топчиња и документ за број на ѕвезди. За овие документи треба да се имплементираат методи за додавање и одземање на топче/ѕвезда и потребно е да се имплементира сериализација.

Потоа за овие документи да се развијат соодветни форми. Во едната форма ќе се исцртуваат топчиања, додека во другата ќе се исцртуваат ѕвездите.

На MDI формата треба да се додаде мени со стандардните опции и лента со алатки. Во File менито се додава една дополнителна New опција по што ги нагодуваме двете New опции, едната за креирање нов документ за топчиња, а другата за документ за ѕвезди. Истите акции се пресликуваат соодветно на лентата со алатки со дадените икони.

Метод за добивање точки за цртање ѕвезда

    private PointF[] StarPoints(int num_points, Rectangle bounds)
    {
        // Make room for the points.
        PointF[] pts = new PointF[num_points];
        double rx = bounds.Width / 2;
        double ry = bounds.Height / 2;
        double cx = bounds.X + rx;
        double cy = bounds.Y + ry;

        // Start at the top.
        double theta = -Math.PI / 2;
        double dtheta = 4 * Math.PI / num_points;
        for (int i = 0; i < num_points; i++)
        {
             pts[i] = new PointF(
             (float)(cx + rx * Math.Cos(theta)),
             (float)(cy + ry * Math.Sin(theta)));
             theta += dtheta;
         }

         return pts;
    }