Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
3 / 3 / 1
Регистрация: 11.05.2010
Сообщений: 45

С++/CLI VS2008 создать глобальный управляемый динамический массив Point

27.05.2010, 12:34. Показов 4025. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужен глобальный динамический массив типа Point для переопределения события onPaint.
При нажатии кнопки заполняется массив Pointов, потом по этому массиву рисуется в событии Paint кривая DrawCurve(pen,GptGraf);

Побывал так
Глобально объявляю
C++
1
array<Point>^ GptGraf;
Потом в Батон1клік

C++
1
ptGraf = gcnew array<Point>(GintSemp);
(GintSemp это размер)

Но не работает, пишет
error C3145: GptGraf: глобальная или статическая переменная не может быть управляемого типа "cli::array<Type> ^"

Как сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2010, 12:34
Ответы с готовыми решениями:

Как создать глобальный динамический массив и заполнить его
Всем привет! Мне нужно каким-то образом создать глобальный динамический массив и заполнить его. но когда я пишу вот так Module...

Глобальный динамический массив
В общем проблема вот в чем, пытаюсь сделать глобальный динамический массив структур но что-то идет не так. Странная ошибка с...

Глобальный динамический массив
Требуется создать несколько глобальных динамических массива, для расчетов. Чтобы потом эти массивы отрисовывать разными кнопками&quot;нажал...

3
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
27.05.2010, 19:17
Цитата Сообщение от xTANATOSx Посмотреть сообщение
Глобально объявляю
Что значит глобально? Вообще без класса?
Покажите полный код.
0
3 / 3 / 1
Регистрация: 11.05.2010
Сообщений: 45
28.05.2010, 00:53  [ТС]
Массив в строчке 34 объявляться, но возникает
error C3145: GptGraf: глобальная или статическая переменная не может быть управляемого типа "cli::array<Type> ^"

Потом в строчке 20 задается размер

А вообще мне нужно передать массив с точками с обработчика событий(в нем я получаю данные )
private: System::Void намалюватиToolStripMenuItem_Click

В переопределенное событие OnPaint protected:virtual void OnPaint( PaintEventArgs^ e ) override (строчка 52 в первом коде)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#pragma once
#include "stdafx.h"
#include    <windows.h>         //GetForegroundWindow
#include    "dsound.h"          
#include    <iostream>          
#include    <fstream>           
#include <Winuser.h>
 
#pragma comment(lib,"dsound.lib")   
#pragma comment(lib,"dxguid.lib")
#pragma warning(disable:4996)       //ОТключаем предупреждение strcat
#include <WinDef.h>
#include "Mmsystem.h"
#pragma comment(lib, "winmm.lib")
#include <vcclr.h>
#include <msclr/marshal.h>
 
namespace My4istovik {
    using namespace msclr::interop;
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    using namespace std;
    using namespace System::IO;
    Int16 GintData[300000]; // <--!!!левак, розбазарювання казених байтів оператви
    int GintBait=2;// <--!!! байтовість данних,покищо тільки 2
    int GintSemp;  //Кількість семплів
    int Gintmc; //Кількість мілісекунд
    DWORD i,zoom; //тип для глобальних лічильників не дуже, зато всюди без глюків паше
    Boolean flag=false;
[B]array<Point>^ GptGraf;[/B]
    IDirectSound8   *g_pDirectSound;
    /// <summary>
    /// Сводка для Form1
    ///
    /// Внимание! При изменении имени этого класса необходимо также изменить
    ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
    ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
    ///          конструкторы не смогут правильно работать с локализованными
    ///          ресурсами, сопоставленными данной форме.
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
         virtual void OnPaint( PaintEventArgs^ e ) override
   {
 
      // If there is an image and it has a location,
      // paint it when the Form is repainted.
      Form::OnPaint( e );
      Color^ col = gcnew Color();
   Pen^ pen = gcnew Pen(col->Red); // или (Color::Red)
   Graphics^ im = Form1::CreateGraphics();
Point point1 = Point(50,50);
      Point point2 = Point(100,25);
   im->DrawLine(pen,point1, point2);
   }
 
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::MenuStrip^  menuStrip1;
    protected: 
    private: System::Windows::Forms::ToolStripMenuItem^  файлToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  відкритиToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  вихідToolStripMenuItem;
    private: System::Windows::Forms::TextBox^  textBox1;
    private: System::Windows::Forms::ToolStripMenuItem^  намалюватиToolStripMenuItem;
    private: System::Windows::Forms::Button^  button1;
    private: System::Windows::Forms::OpenFileDialog^  openFileDialog1;
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private: System::Void намалюватиToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
             //{
    Color^ col = gcnew Color();
    Pen^ pen = gcnew Pen(col->Red); // (Color::Red)
    Pen^ pen1 = gcnew Pen(Color::Black);
    Graphics^ im = Form1::CreateGraphics();
  // Point point1 = Point (Cursor->Position.X,Cursor->Position.Y);
 
    Point point1 = Point(30,130);
    Point point2 = Point(930,130);
    Point point3 = Point(930,630);
    Point point4 = Point(30,630);
    im->DrawLine(pen,point1, point2);
    im->DrawLine(pen,point2, point3);
    im->DrawLine(pen,point3, point4);
    im->DrawLine(pen,point4, point1);
   im->DrawLine(pen,30,380,930,380);
Point point;
 
[B]GptGraf = gcnew array <Point>(GintSemp);[/B]
 
              //array<Point>^ GptGraf = gcnew array<Point>(GintSemp);
Int16 t=0;
Int16 x=30;
Int16 y=0;
for (i=0;i<GintSemp;i++){
    if (t==50)
    {x++;
    t=0;}
    t++;
    y=(380-(GintData[i]/15));
    GptGraf[i]=Point(x,y);
 
}
im->DrawCurve(pen,GptGraf);
 
             //}
         }
Добавлено через 1 минуту

Массив в строчке 34 объявляться, но возникает
error C3145: GptGraf: глобальная или статическая переменная не может быть управляемого типа "cli::array<Type> ^"

Потом в строчке 20 задается размер

Добавлено через 5 минут
Мне нужно передать массив с точками с функции
private: System::Void намалюватиToolStripMenuItem_Click

В функцию protected:virtual void OnPaint( PaintEventArgs^ e ) override
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
28.05.2010, 01:16
Любая переменная должна быть в классе
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2010, 01:16
Помогаю со студенческими работами здесь

Глобальный динамический массив
в общем делаю одно задание в котором нужно создать некий динамический массив классов ну и далее работать с ними, при этом нужно...

Глобальный динамический двумерный массив
Вообще то задача на Си, но в разделе мало людей, поэтому пишу тут, помогите пожалуйста. Вообщем есть задача считать файл в функции init(),...

Глобальный динамический двумерный массив
Вообщем есть задача считать файл в функции init(), а массивы строк получившиеся в итоге объявить так чтоб они были доступны глобально. ...

Исправить ошибку "Point: собственный массив не может содержать этот управляемый тип"
ref class Point { public: int x,y; Point(){x=0;y=0;}; }; ref class Triangular { private:

Построение динамического массива в функции и его перевод в глобальный динамический массив
Здравствуйте, моя проблема заключается в передаче построеного в функции динамического массива fdarray в глобальный динамический массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru