Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
#1

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

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

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

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

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

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

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

По поводу литературы: Советую почитать Архангельского.
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
18.05.2010, 08:52  [ТС]     Визуальная среда. Свойства формы. #8
Adler, уставший был, когда читал, не вникал.
MiCr0s0fT, спасибо за книгу.
Еще вопрос: можно ли как-нибудь кнопку "свернуть в окно/развернуть" сделать неактивной?
MikeSoft
Эксперт С++
3790 / 1772 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
18.05.2010, 09:31     Визуальная среда. Свойства формы. #9
Red Planet, можно. В свойствах формы есть BorderIcons. Там как раз то, что вам нужно (biMaximize = false;).
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.05.2010, 09:33     Визуальная среда. Свойства формы. #10
Цитата Сообщение от Adler Посмотреть сообщение
BorderStyle=bsSingle;
Дополнительно фиксирует размер. А надо отменить аутосайз. Если уж он нужен как дефолтный размер, то поставь и снова отмени.
MikeSoft
Эксперт С++
3790 / 1772 / 85
Регистрация: 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;
  }
}
//---------------------------------------------------------------------------
Red Planet
49 / 10 / 2
Регистрация: 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;
      }
}
Если интересно, проверьте, может найдете баги, я не нашел, всё работает.
Частично взято отсюда.
MikeSoft
Эксперт С++
3790 / 1772 / 85
Регистрация: 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;
 }
}
//---------------------------------------------------------------------------
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2010, 23:52     Визуальная среда. Свойства формы.
Еще ссылки по теме:

Среда программирования C++
C++ Среда разработки
C++ Среда для C++
Визуальная сортировка массива методом Хаора C++
Среда программирования C++

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

Или воспользуйтесь поиском по форуму:
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
20.05.2010, 23:52  [ТС]     Визуальная среда. Свойства формы. #14
MiCr0s0fT, теперь работает без ошибок, возьму, спасибо.

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

А может есть какой-то хитрый способ, про который я не знаю? Подскажите.
Yandex
Объявления
20.05.2010, 23:52     Визуальная среда. Свойства формы.
Ответ Создать тему
Опции темы

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