Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с графикой в Windows Forms. Независимо-передвигающиеся круги.  
V
    Опции темы
Pork6
Дата 26.10.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.12.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Нет, с Krug-ом все верно. Структура такая:

Код

public class Krug
    {
        //...
    };

public ref class Form1 : public System::Windows::Forms::Form
    {
        //...
        static List<Krug^>^ circles = gcnew List<Krug^>(); // 4 ошибки
        //...
    };


error C3699: ^: это косвенное обращение невозможно использовать для типа "testCLR::Krug"

error C3225: аргумент универсального типа для "T" не может быть "testCLR::Krug *", он должен являться типом значения или дескриптором ссылочного типа

(повторяются дважды на строчке с объявлением List-а)

Без static-а Си ругается, так что тоже добавил.




Это сообщение отредактировал(а) Pork6 - 26.10.2009, 15:50
PM MAIL WWW ICQ Skype   Вверх
KelTron
Дата 26.10.2009, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



Тогда наверно так:
Код

public ref class Krug
    {
        //...
    };


И static  не нужно делать, просто код создания списка помести в конструктор.
Код

Form1(void)
{
    InitializeComponent();
    this->circles = gcnew List<Krug^>();

}



Глядишь я такими темпами C++.NET выучу, пока с этим примером разбираюсь))

Это сообщение отредактировал(а) KelTron - 26.10.2009, 17:40


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Pork6
Дата 26.10.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.12.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Я тоже надеюсь, что выучу )

Что бы он нормально Krug подцепил, пришлось его в отдельный h-файл, с прописыванием оного в главном файле:
Код


#include "Krug.h"


И теперь последний штрих остался - это создание самих кругов. Написал вот так:

Код

this->circles->Add(gcnew Krug(0, 0, 10) {OffsetX = 2, OffsetY = 3});


И получил ошибки:

error C2065: OffsetX: необъявленный идентификатор    
error C2552: $S6: инициализация не агрегированных данных с помощью списка инициализации не допускается
error C2065: OffsetY: необъявленный идентификатор    
error C2078: слишком много инициализаторов

Насколько я понял, ему не нравится синтаксис, а именно - наличие и/или содержимое фигурных скобок. 

Честно пытался найти справку по использовании класса в Add, но не нашел ничего.

По этому поводу есть идеи?

В любом случае, спасибо )


PM MAIL WWW ICQ Skype   Вверх
KelTron
Дата 26.10.2009, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



Ну вообще это синтаксический сахар C#. Надо просто на старый лад переделать.
Код

Krug^ krug = gcnew Krug(0, 0, 10);
krug->OffsetX = 2;
krug->OffsetY = 3;
this->circles->Add(krug);


Это сообщение отредактировал(а) KelTron - 26.10.2009, 19:07


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Pork6
Дата 26.10.2009, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.12.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Сейчас появилась проблема с классом Krug. Он не видит bounds из Form1 (главной формы).

Сделал, как надо, в Krug.h прописал 

Код

#include "Form1.h" 


и создал экземпляр формы для работы с ней: 

Код

Form1^ form = gcnew Form1(); //ошибки


Но получаю:
error C2065: form: необъявленный идентификатор
error C2061: синтаксическая ошибка: идентификатор "Form1"


Все это я делаю для функции Draw, которая должна принимать этот bounds из Form1.

Многострадальный проект в комплекте.




Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  testCLR.rar 742,53 Kb
PM MAIL WWW ICQ Skype   Вверх
KelTron
Дата 26.10.2009, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



Копец...такое ощущение, что ты уже наугад код пишешь.

Разве сложно по аналогии с шарпом преобразовать? Я думал может у тебя будет пара вопросов, а так получается на каждой строчке спотыкаешься, видимо проще было сразу на С++.NET написать, хотя я его не знаю. Учись искать информацию.

Короче вот, возьми это и сравни с тем примером, что я давал в самом начале. Это должно решить все твои проблемы..)

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  testCLR.rar 79,67 Kb


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Pork6
Дата 26.10.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.12.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Получилось, что сложно. Может я ищу информацию как-то не правильно? MSDN, Google, CodeNet... 

Еще раз большое спасибо за помощь. Во всем разобрался, буду внедрять. 
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0965 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.