Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Red Planet
49 / 10 / 3
Регистрация: 20.09.2009
Сообщений: 263
#1

Визуальная среда. Свойства формы. - C++

15.05.2010, 18:09. Просмотров 1712. Ответов 13
Метки нет (Все метки)

Нужна помощь. Проблема в следующем: хотелось бы сделать невозможным изменение размеров формы, но, если ставлю AutoSize=true, то размеры формы изменить нельзя, но они ставятся очень маленькими, строго ограничиваясь размерами элементов, размещенных на форме, игнорируя атрибуты Height и Width. Как выйти из положения?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2010, 18:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Визуальная среда. Свойства формы. (C++):

Визуальная сортировка массива методом Хаора
Здравствуйте, форумчане. Столкнулся с задачей создания в Visual Studio 2012...

Среда для C++
Начал изучать С++, но не могу найти нормальную IDE. Использовал DevC++, но там...

Среда программирования
Какая среда программирования бесплатная, т.е. не взломанная, а чисто...

Среда разработки
Подскажите нормальную IDE (C++),а то Dev-CPP как-то мистическим образом...

Среда программирования
Ребята, 2 месяца учил С++ на Visual Studio, сейчас надо резко перейти на C++...

Среда разработки
Подскажите пожалуйста где можно скачать RAD Studio ?

13
Adler
79 / 79 / 19
Регистрация: 07.05.2009
Сообщений: 316
15.05.2010, 18:18 #2
может что-то типа:
BorderStyle=bsSingle;
1
Red Planet
49 / 10 / 3
Регистрация: 20.09.2009
Сообщений: 263
15.05.2010, 18:26  [ТС] #3
Не буду специально создавать новую тему, но возник еще один вопрос: при создании полей Edit, Memo (на других не замечал, т.к. не создавал) то, что написано в атрибуте Name и есть "текст по умолчанию". Хотелось бы видеть пустую форму (поле для ввода) при запуске. Как сделать такое?

P.S. Буду благодарен за хорошую книжку по визуальной среде.
0
Adler
79 / 79 / 19
Регистрация: 07.05.2009
Сообщений: 316
15.05.2010, 19:01 #4
Цитата Сообщение от Red Planet
что написано в атрибуте Name и есть "текст по умолчанию"
нет,

Text(у Edit'а) и Lines(у Memo) вроде как...
0
Red Planet
49 / 10 / 3
Регистрация: 20.09.2009
Сообщений: 263
16.05.2010, 19:08  [ТС] #5
У Edit'а нашел атрибут Text, стер то, что там было и теперь после компиляции там пусто, а вот у Memo атрибута Text нет, так что с ним вопрос не решен.

Добавлено через 21 час 33 минуты
Для Memo нашел решение: в атрибуте Lines нужно было выставить нужное количество строк.
0
Adler
79 / 79 / 19
Регистрация: 07.05.2009
Сообщений: 316
16.05.2010, 23:44 #6
лол, мой пост ты не заметил?
0
MikeSoft
Эксперт С++
3917 / 1782 / 183
Регистрация: 21.11.2009
Сообщений: 2,540
16.05.2010, 23:48 #7
Red Planet, для TMemo есть решение и проще: вызовите метод Clear();

По поводу литературы: Советую почитать Архангельского.
1
Red Planet
49 / 10 / 3
Регистрация: 20.09.2009
Сообщений: 263
18.05.2010, 08:52  [ТС] #8
Adler, уставший был, когда читал, не вникал.
MiCr0s0fT, спасибо за книгу.
Еще вопрос: можно ли как-нибудь кнопку "свернуть в окно/развернуть" сделать неактивной?
0
MikeSoft
Эксперт С++
3917 / 1782 / 183
Регистрация: 21.11.2009
Сообщений: 2,540
18.05.2010, 09:31 #9
Red Planet, можно. В свойствах формы есть BorderIcons. Там как раз то, что вам нужно (biMaximize = false;).
1
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
18.05.2010, 09:33 #10
Цитата Сообщение от Adler Посмотреть сообщение
BorderStyle=bsSingle;
Дополнительно фиксирует размер. А надо отменить аутосайз. Если уж он нужен как дефолтный размер, то поставь и снова отмени.
1
MikeSoft
Эксперт С++
3917 / 1782 / 183
Регистрация: 21.11.2009
Сообщений: 2,540
18.05.2010, 21:19 #11
Red Planet, кстати, может вам понравится ещё вот такое вот простенькое решение...

1. Добавьте на форму CheckBox
2. Установите в свойстве Caption текст: Заблокировать размер формы
3. В событии OnClick пишем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
  if (CheckBox1->Caption == "Заблокировать размер формы") {
    CheckBox1->Caption = "Разблокировать размер формы";
    Constraints->MaxHeight = Form1->Height;
    Constraints->MinHeight = Form1->Height;
    Constraints->MaxWidth = Form1->Width;
    Constraints->MinWidth = Form1->Width;
  } else {
    CheckBox1->Caption == "Заблокировать размер формы";
    Constraints->MaxHeight = 0;
    Constraints->MinHeight = 0;
    Constraints->MaxWidth = 0;
    Constraints->MinWidth = 0;
  }
}
//---------------------------------------------------------------------------
0
Red Planet
49 / 10 / 3
Регистрация: 20.09.2009
Сообщений: 263
19.05.2010, 20:50  [ТС] #12
MiCr0s0fT, ваш алгоритм работает только в одну сторону, а именно: заблокировать можно, а вот обратного хода нет.
Вот, придумал такой вариант с RadioGroup. Создается RadioGroup с двумя строчками, в первой пишется "Нет возможности изменить размеры окна", во второй "Есть возможность изменить размеры окна", на клик вешается следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
 TBorderIcons temp = BorderIcons; //Массив, в котором находятся наши кнопки.
 temp << biSystemMenu; //Записываем в массив все системные кнопки.
 if (RadioGroup1->ItemIndex==0) {
         Form1->BorderStyle=bsSingle;
         temp >> biMaximize; //Убираем из массива максимизацию.
         Form1->BorderIcons = temp; //Ставим набор кнопок без максимизации.
        }
 else {
       Form1->BorderStyle=bsSizeable;
       temp << biMaximize;
       Form1->BorderIcons = temp;
      }
}
Если интересно, проверьте, может найдете баги, я не нашел, всё работает.
Частично взято отсюда.
0
MikeSoft
Эксперт С++
3917 / 1782 / 183
Регистрация: 21.11.2009
Сообщений: 2,540
19.05.2010, 23:43 #13
Red Planet, писал его на коленках ... допустил маленькую ошибочку (с оператором присваивания, пробуйте так):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
 if (CheckBox1->Caption == "Заблокировать размер формы") {
 CheckBox1->Caption = "Разблокировать размер формы";
 Constraints->MaxHeight = Form1->Height;
 Constraints->MinHeight = Form1->Height;
 Constraints->MaxWidth = Form1->Width;
 Constraints->MinWidth = Form1->Width;
 } else {
 CheckBox1->Caption = "Заблокировать размер формы";
 Constraints->MaxHeight = 0;
 Constraints->MinHeight = 0;
 Constraints->MaxWidth = 0;
 Constraints->MinWidth = 0;
 }
}
//---------------------------------------------------------------------------
2
Red Planet
49 / 10 / 3
Регистрация: 20.09.2009
Сообщений: 263
20.05.2010, 23:52  [ТС] #14
MiCr0s0fT, теперь работает без ошибок, возьму, спасибо.

Добавлено через 5 часов 55 минут
Еще один вопрос. В сообщении №12 я использовал тип TBorderIcons для того чтобы сохранить кнопки в массив. А есть ли какой-то тип, позволяющий сохранить все Caption'ы, имеющиеся на форме. Для чего это нужно? Хочу создать два пункта меню, на клик одного повесить переход на английский, на клик другого - на русский и при этом избежать
C++
1
2
MyForm->Caption="Programm";
//Присваивания остальным Caption'ам английских названий (а их много).
и аналогичных операций перехода обратно на русский.

А может есть какой-то хитрый способ, про который я не знаю? Подскажите.
0
20.05.2010, 23:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2010, 23:52
Привет! Вот еще темы с решениями:

Среда программирования.
Здравствуйте. Подскажите, что за среда программирования изображена на...

Среда разработки
Здраствуйте, подскажите где лучше писать С++, на какой программе?

Программная среда с c++03
Посоветуйте программную среду, где можно писать на c++03 ? Именно на c++03, не...

Среда разработки
Всем доброго времени суток. Народ посоветуйте в какой среде следует начать...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru