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

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

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

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

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

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

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

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

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

Или воспользуйтесь поиском по форуму:
Red Planet
 Аватар для 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     Визуальная среда. Свойства формы.
Ответ Создать тему
Опции темы

Текущее время: 16:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru