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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.07.2009, 09:13   #51
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

CheckBox2->Visible = CheckBox1->Checked;
pu4koff вне форума
Старый 16.07.2009, 13:29   #52
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

pu4koff, ну в принципе, у меня заработало, как ты сказал. но непонятно, почему когда я делал с условием у меня нифига не работало.
я даже попробовал сделать так:
Код:
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
        if (CheckBox1->Checked)
        {
                Label1->Visible=!Label1->Visible;
                Edit1->Visible=!Edit1->Visible;
                CheckBox2->Visible=!CheckBox2->Visible;
        };
}
- так криво работает, но работает
попробовал изменить:
Код:
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
        if (CheckBox1->Checked==!CheckBox1->Checked)
        {
                Label1->Visible=!Label1->Visible;
                Edit1->Visible=!Edit1->Visible;
                CheckBox2->Visible=!CheckBox2->Visible;
        };
}
но сделал только хуже - вообще не работает
как сделать именно с условием if?
Dimarik вне форума
Старый 16.07.2009, 13:49   #53
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Зачем обязательно if?
Ну раз так хочется, то:
Код:
if (CheckBox1->Checked)
{ // Галочка стоит, отображаем контролы
  CheckBox2->Visible =
    Edit1->Visible =
      Label1->Visible = true;
}
else
{ // галочки нет, скрываем контролы
  CheckBox2->Visible =
    Edit1->Visible =
      Label1->Visible = false;
}
Я бы сделал без if:
Код:
  CheckBox2->Visible =
    Edit1->Visible =
      Label1->Visible = CheckBox1->Checked;
pu4koff вне форума
Старый 16.07.2009, 14:52   #54
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

просто мне без if непонятно. Можешь объяснить?
Dimarik вне форума
Старый 16.07.2009, 15:33   #55
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Ну так элементарная булева алгебра.
Код:
if (CheckBox1->Checked /*== true*/)
   CheckBox2->Visible = true;
else /* CheckBox1->Checked == false*/
  CheckBox2->Visible = false;
Значение CheckBox1->Checked же равно тому, что пишем в разных ветках в CheckBox2->Visible, соответственно проверка вовсе не нужна и можно значение записывать напрямую:
Код:
CheckBox2->Visible = CheckBox1->Checked;
pu4koff вне форума
Старый 16.07.2009, 15:35   #56
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

кстати, то, что тты написал, выдаёт ошибку
Build
[C++ Error] Unit1.cpp(215): E2492 Properties may only be assigned using a simple statement, e.g. "prop = value;"
[C++ Error] Unit1.cpp(215): E2492 Properties may only be assigned using a simple statement, e.g. "prop = value;"
[C++ Error] Unit1.cpp(215): E2369 Cannot use the result of a property assignment as an rvalue

а если по кускам присваивать, то работает

Последний раз редактировалось Sazary; 16.07.2009 в 23:15.
Dimarik вне форума
Старый 16.07.2009, 16:15   #57
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Билдера просто нет, а свойства оказывается низя использовать как rvalue. Интересно почему
pu4koff вне форума
Старый 16.07.2009, 19:00   #58
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Цитата:
Билдера просто нет, а свойства оказывается низя использовать как rvalue. Интересно почему
Скорей всего из-за безопасности, ведь легко можно будет тогда подменять свойства одних элементов с помощью других.
profi вне форума
Старый 16.07.2009, 19:25   #59
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от profi Посмотреть сообщение
Скорей всего из-за безопасности, ведь легко можно будет тогда подменять свойства одних элементов с помощью других.
Скорее всего из-за того, что у переменных чтение и запись по одному адресу производятся и здесь проблем нет, а у свойств на чтение и запись соответствующие методы идут и что они делают никто не знает. Кроме того, есть свойства только на запись и в качестве rvalue его использовать не получится, ибо прочитать нечего. Следовательно сложно всё это реализовать. Как-то так по-моему.
pu4koff вне форума
Старый 17.07.2009, 20:11   #60
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

народ, кто может подсказать как мне распечатать то,, что находится в Memo2???
я пытался сделать
void __fastcall TForm1::N5Click(TObject *Sender)
{

if (PrintDialog1->Execute())
PrintDialog1->Assign(Memo1);
}
но не пашет, выходит ошибка печати: cannot assign a TMemo to a TPrintDialog
а такой метод как Form1->Print() не подходит, так как надо распечатать только поле MEMO2
Dimarik вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из С++ в С++Builder 6.0 densan Помощь студентам 3 30.05.2009 00:18
C++ Builder!!! kykysya C++ Builder 4 08.02.2009 03:33
Builder 6.0 prankish_cat Общие вопросы C/C++ 0 01.02.2009 16:45
БД C++ Builder 6 ZiKx C++ Builder 1 07.08.2008 20:43
С ++ Builder PsyTech C++ Builder 4 19.10.2007 08:25