Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 12:14   #1
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию ZedGraph

В программе (C#) нужно использовать этот класс для рисования графика. У меня есть соответствующая dll. Вопрос: как подключить ее к проекту и использовать потом этот класс в качестве компонента? Примеры работы с ним у меня есть, но на форме ничего не прорисовывается.
cw_o вне форума Ответить с цитированием
Старый 25.10.2009, 17:35   #2
armivl
Пользователь
 
Регистрация: 26.07.2009
Сообщений: 19
По умолчанию

Открываешь toolbox в среде, щелкаешь на нем правой кнопкой мыши и выбираешь Choose Item... В открывшемся окне кнопка Browse и выбираешь свою dll. Контрол добавиться в toolbox. Перетаскивай на форму и настраивай.

Для рисования графиков вот пример:
Код:
zgControl.GraphPane.CurveList.Clear();

            //отрисовка аварийной области            
            ZedGraph.BoxItem box = new ZedGraph.BoxItem(new RectangleF(0, (float)zgControl.GraphPane.YAxis.Max, (float)zgControl.GraphPane.XAxis.Max, (float)zgControl.GraphPane.YAxis.Max - iHighLimitAmperage));
            box.Fill = new ZedGraph.Fill(Color.FromArgb(240, 200, 200), Color.FromArgb(250, 250, 220), 90);
            box.ZOrder = ZedGraph.ZOrder.E_BehindAxis;
            zgControl.GraphPane.GraphItemList.Add(box);

            //отрисовка аварийной границы
            ZedGraph.PointPairList alarmPoints = new ZedGraph.PointPairList();
            for (int i = 0; i <= zgControl.GraphPane.XAxis.Max; i++)
            {
                alarmPoints.Add(i, iHighLimitAmperage, null);
            }
            ZedGraph.LineItem CurveAlarm = zgControl.GraphPane.AddCurve("Аварийная граница", alarmPoints, Color.Red, ZedGraph.SymbolType.None);
            CurveAlarm.Line.Width = 1;
            CurveAlarm.IsLegendLabelVisible = false;

            //отрисовка ампеража
            if (push_id != -1)
            {
                ZedGraph.PointPairList amperagePoint = new ZedGraph.PointPairList();
                DataRow[] aDrAmp = this.fillJournal.GetAmperage(push_id);
                if (aDrAmp != null)
                {
                    if (aDrAmp.Length != 0)
                    {
                        for (int i = 0; i < aDrAmp.Length; i++)
                        {
                            amperagePoint.Add(i, (int)aDrAmp[i][0], String.Format("Печь-{0}.Время выдачи-{1}.Ампераж-{2} А", nOven, dtFactPush, (int)aDrAmp[i][0]));
                        }
                        ZedGraph.LineItem AmpCurve = zgControl.GraphPane.AddCurve("Ампераж", amperagePoint, Color.Blue, ZedGraph.SymbolType.None);
                        AmpCurve.Line.Width = 2;
                        AmpCurve.IsLegendLabelVisible = false;
                    }
                }
            }
            zgControl.Refresh();
        }
armivl вне форума Ответить с цитированием
Старый 25.10.2009, 19:01   #3
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

Цитата:
Сообщение от armivl Посмотреть сообщение
Открываешь toolbox в среде, щелкаешь на нем правой кнопкой мыши и выбираешь Choose Item... В открывшемся окне кнопка Browse и выбираешь свою dll. Контрол добавиться в toolbox. Перетаскивай на форму и настраивай.
Спасибо огромное. Теперь буду знать, как это делается.
cw_o вне форума Ответить с цитированием
Старый 15.01.2010, 00:23   #4
Igorock777
Новичок
Джуниор
 
Регистрация: 15.01.2010
Сообщений: 1
Восклицание ZedGraph в C++

Добрый вечер! Хочу построить график синуса по нажатии на button2. Подключил ZedGraph, все такое, но выдает ошибку
cannot convert parameter 2 from 'ZedGraph::PointPairList' to 'cli::array<Type,dimension> ^'
в этом фрагменте:
myCurve = myPane.AddCurve(L"Sin", list1 , Color::Red, SymbolType::Diamond ); // отрисовываем график

Помогите пожалуйта, в чем дело?

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
ZedGraphControl zgc;
GraphPane myPane = zgc.GraphPane;


// Задаем название графика и сторон
myPane.Title->Text = "График синусойды";
myPane.XAxis->Title->Text = "Ось X";
myPane.YAxis->Title->Text = "Ось Y";
// --------------------------------


// строим синусойду
double xg, yg;

PointPairList list1 = gcnew PointPairList();

for ( int i = 0; i < 36; i++ )
{
xg = i;
yg = Math::Sin(xg);
list1.Add(xg, yg);
}
// ----------------
LineItem ^myCurve;
myCurve = myPane.AddCurve(L"Sin", list1 , Color::Red, SymbolType::Diamond); // отрисовываем график

zgc.AxisChange();

}
Igorock777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц