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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2009, 10:47   #1
Хохол
Пользователь
 
Аватар для Хохол
 
Регистрация: 20.11.2009
Сообщений: 37
По умолчанию Задание размеров формы с помощью констант (C++)

Я хочу задать размер формы и расположение комнонентов на ней с помощью предопределенных мной констант.
Что-то типа такого:

Код:
const int  N = 3;
const int  CellSize = 40;

//...

void InitializeComponent(void)
{
	//...
	this->ClientSize = System::Drawing::Size(CellSize*(N+2), CellSize*(N+2));
	//...
}

//...
Но тогда начинает ругаться конструктор формы ("Переменная 'CellSize' либо не объявлена, либо ей не было присвоено значение."). При этом программа компилируется, но невозможна нормальная работа конструктора. Видимо, тут нужно как-то по-другому обращаться с константами. Не подскажете, как это правильно сделать?
Accepted
Хохол вне форума Ответить с цитированием
Старый 20.11.2009, 11:48   #2
Vitek-pm
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 56
По умолчанию

Можно сделать так:
Код:
#pragma once

const int  N = 3;
const int  CellSize = 40;

namespace My123 {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary>
	/// Summary for Form1
	///
	/// WARNING: If you change the name of this class, you will need to change the
	///          'Resource File Name' property for the managed resource compiler tool
	///          associated with all .resx files this class depends on.  Otherwise,
	///          the designers will not be able to interact properly with localized
	///          resources associated with this form.
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent(N,CellSize);
			//
			//TODO: Add the constructor code here
			//
		}

	protected:
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}

	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(int  N, int  CellSize)
		{
			this->SuspendLayout();
			// 
			// Form1
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(CellSize*(N+2), CellSize*(N+2));
			this->Name = L"Form1";
			this->Text = L"Form1";
			this->ResumeLayout(false);

		}
#pragma endregion

};
}
Vitek-pm вне форума Ответить с цитированием
Старый 20.11.2009, 13:19   #3
Хохол
Пользователь
 
Аватар для Хохол
 
Регистрация: 20.11.2009
Сообщений: 37
По умолчанию

В этом случае конструктор все равно ведет себя неадекватно (например, в нем форма выглядит не так, как при исполнении). Можно ли сделать так, чтобы конструктор тоже "знал" эти константы?
Accepted
Хохол вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видимость констант tae1980 Microsoft Office Excel 5 23.11.2009 12:06
Запретить изменение размеров формы larin1974 Общие вопросы Delphi 9 12.09.2009 20:27
изменение размеров фигур...с помощью TTrackBar и Tshape oblachko Помощь студентам 2 28.06.2009 18:39
как с помощью формы календарь, передвигаться по листам книги Excel Deni55 Microsoft Office Excel 3 15.04.2009 12:57