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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2010, 09:32   #1
Morkonwen
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 44
По умолчанию VS 2010 среда CLR ^. А так же array

Пытаюсь использовать Graphics, но что то не особо выходит.
Самый правдоподобный вариант
Код:
array <Point,7> arr;


for (i=0;i<7;i++)
{
      arr[i] = Point(50,  50+i*10);


}

// Draw polygon to screen.
g->DrawPolygon(myPen, arr);
Неправильно еще и массив использую . Просит поставить типа ^(вроде бы просто указатель) НО ЗАЧЕМ!?

Ничего не понимаю что за значок ^ и почему массив воспринимает как одномерный?

Последний раз редактировалось Morkonwen; 17.10.2010 в 09:35.
Morkonwen вне форума Ответить с цитированием
Старый 17.10.2010, 10:39   #2
_ILYA_
Пользователь
 
Аватар для _ILYA_
 
Регистрация: 12.10.2010
Сообщений: 79
По умолчанию

мало кода
нет листинга ошибок
Имею хитрый план по личному обогащению
_ILYA_ вне форума Ответить с цитированием
Старый 17.10.2010, 10:50   #3
Morkonwen
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 44
По умолчанию

конструктор формы(внутри нее все происходит)

Код:
Form1(void)
		{
			InitializeComponent();
			//
			//TODO: Add the constructor code here
			 g= pictureBox1->CreateGraphics();
			 myPen =gcnew System::Drawing::Pen(Color::Red);
			
			//
		}
МНОГО ПАРАМЕТРОВ кнопочек и окошек, дальше
Код:
private:
		Graphics^ g;
		
		Pen^ myPen;

		




void DrawPolTEST()
{


array <Point,7> ^arr;



for (i=0;i<7;i++)
{
      arr[i] = Point(50,  50+i*10);


}

// Draw polygon to screen.
g->DrawPolygon(myPen, arr);

}

ошибки такие


Код:
Error	4	error C2664: 'void System::Drawing::Graphics::DrawPolygon(System::Drawing::Pen ^,cli::array<Type,dimension> ^)' : cannot convert parameter 2 from 'cli::array<Type,dimension> ^' to 'cli::array<Type,dimension> ^'	c:\users\operatorr\documents\visual studio 2010\projects\buttons\buttons\Form1.h	212


Error	3	error C3262: invalid array indexing: 1 dimension(s) specified for 7-dimensional 'cli::array<Type,dimension> ^'	c:\users\operatorr\documents\visual studio 2010\projects\buttons\buttons\Form1.h	205
Morkonwen вне форума Ответить с цитированием
Старый 17.10.2010, 13:12   #4
Lawrence
 
Аватар для Lawrence
 
Регистрация: 08.09.2010
Сообщений: 6
По умолчанию

Ты создаешь массив из 7-ми измерений, а хотел наверно из 7-ми элементов. Это разные вещи.
Вот так нужно:
array<Point, 1> ^arr = gcnew array<Point, 1>(7);
Lawrence вне форума Ответить с цитированием
Старый 17.10.2010, 15:19   #5
Morkonwen
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 44
По умолчанию

Да пасибо!

правда как то нелогично реализован класс. если надо одномерный массив, то почему то я делаю указатель на начало набора семи объектов каждый из которых класса array не особо логично=)
Morkonwen вне форума Ответить с цитированием
Старый 17.10.2010, 22:28   #6
Morkonwen
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 44
По умолчанию

Еще вопрос возник, чтобы не делать новую тему тут спрошу. Написал класс - что то типа связанного списка, ему передаешь _объект_ он принимает ссылку и размещает объект внутри структуры контейнера.
Код:
template <class T> class ListConndected
{
public:
       void ConnectToEnd(T &obj);     
..........
.......
.......
private:
.........
.......
struct container
{
   T obj;
   int index;
   container *next;
}
........................
}
первое это конечно, не происходит ли в этом случае дублирования(по моему происходит)

А второе вот такое не работает:
Код:
ConnectedList <SectionsMatrix *> inlist;

inlist.ConnectToEnd(new SectionsMatrix());
пишет

Код:
Error	1	error C2664: 'ConnectedList<T>::ConnectToEnd' : cannot convert parameter 1 from 'SectionsMatrix *' to 'SectionsMatrix *&'	c:\users\operatorr\documents\visual studio 2010\projects\diplom\diplom\diplom.cpp	72
Morkonwen вне форума Ответить с цитированием
Старый 19.10.2010, 08:27   #7
Morkonwen
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 44
По умолчанию

Все еще не могу понять как красиво реализовать последнее выражение. вот так работает:

Код:
ConnectedList <SectionsMatrix *> inlist;

SectionsMatrix *tempPointer=new SectionsMatrix();

inlist.ConnectToEnd(tempPointer);
Но хотелось бы без нелепых каких то временных указателей обойтись!
Morkonwen вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
str->array & array->str LeoN PHP 6 06.07.2010 22:38
Visual Studio 2010 Trial лаг или так задумано... Casper-SC Софт 2 07.06.2010 18:35
C++/CLR dampirik Общие вопросы .NET 3 19.11.2009 13:26
Array или не array Димарик Общие вопросы Delphi 4 18.06.2007 15:16