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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2012, 16:32   #1
flouwjke
Пользователь
 
Регистрация: 09.02.2012
Сообщений: 26
Восклицание Показать или спрятать объект на форме

Есть 20 Edit-ов на форме и еще 1 для ввода выбора количества точек(каждая точка имеет 4 параметра макс 5 точек, потому 20 эдитов ) я хз как сделать это через CommondBox поэтому решил просто через ввод числа от 2 до 5, но столкнулся с проблумой) Изначально я оставил на форме тока 4 эдита остальные спрятал, расписал кнопку ) но поче му то при вводе "2" он показывает сразу все 20 эдитов

Код:
procedure TForm1.Button3Click(Sender: TObject);
var
 z:integer;
begin
  z:=Strtoint(Edit1.Text);
if z<2 then ShowMessage('Допустимое значение от 2 до 5');
if z>5 then ShowMessage('Допустимое значение от 2 до 5');
if z=2 then
  abt2.Visible := true;
  bbt2.Visible := true;
  cbt2.Visible := true;
  ebt2.Visible := true;
  abt3.Visible := False;
  bbt3.Visible := False;
  cbt3.Visible := False;
  ebt3.Visible := False;
  abt4.Visible := False;
  bbt4.Visible := False;
  cbt4.Visible := False;
  ebt4.Visible := False;
  abt5.Visible := False;
  bbt5.Visible := False;
  cbt5.Visible := False;
  ebt5.Visible := False;
if z=3 then
  abt2.Visible := true;
  bbt2.Visible := true;
  cbt2.Visible := true;
  ebt2.Visible := true;
  abt3.Visible := true;
  bbt3.Visible := true;
  cbt3.Visible := true;
  ebt3.Visible := true;
  abt4.Visible := False;
  bbt4.Visible := False;
  cbt4.Visible := False;
  ebt4.Visible := False;
  abt5.Visible := False;
  bbt5.Visible := False;
  cbt5.Visible := False;
  ebt5.Visible := False;
if z=4 then
  abt2.Visible := true;
  bbt2.Visible := true;
  cbt2.Visible := true;
  ebt2.Visible := true;
  abt3.Visible := true;
  bbt3.Visible := true;
  cbt3.Visible := true;
  ebt3.Visible := true;
  abt4.Visible := true;
  bbt4.Visible := true;
  cbt4.Visible := true;
  ebt4.Visible := true;
  abt5.Visible := False;
  bbt5.Visible := False;
  cbt5.Visible := False;
  ebt5.Visible := False;
if z=5 then
  abt2.Visible := true;
  bbt2.Visible := true;
  cbt2.Visible := true;
  ebt2.Visible := true;
  abt3.Visible := true;
  bbt3.Visible := true;
  cbt3.Visible := true;
  ebt3.Visible := true;
  abt4.Visible := true;
  bbt4.Visible := true;
  cbt4.Visible := true;
  ebt4.Visible := true;
  abt5.Visible := true;
  bbt5.Visible := true;
  cbt5.Visible := true;
  ebt5.Visible := true;
end;
flouwjke вне форума Ответить с цитированием
Старый 13.04.2012, 21:56   #2
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Исправленный вариант с участием ComboBox
Вложения
Тип файла: zip Projects.zip (217.2 Кб, 15 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 14.04.2012, 00:04   #3
flouwjke
Пользователь
 
Регистрация: 09.02.2012
Сообщений: 26
По умолчанию

Огромное пасиба
flouwjke вне форума Ответить с цитированием
Старый 14.04.2012, 11:41   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

flouwjke
Ваша проблема заключается в том, что вы не группируете свой код в составной оператор (begin-end). Поэтому при истинности/не_истинности любого из логических выражений, которые вы используете в условных операторах, выполняется лишь только один оператор. Все последующие операторы (до следующего условного оператора, а также после него) выполняются в любом случае.
Таким образом, если у вас z = 2, то у вас программа исполняется так (показываю пример на вашем коде, жирным цветом я выделил то, что у вас выполняется):

Код:
procedure TForm1.Button3Click(Sender: TObject);
var
 z:integer;
begin
  z:=Strtoint(Edit1.Text);
if z<2 then ShowMessage('Допустимое значение от 2 до 5');
if z>5 then ShowMessage('Допустимое значение от 2 до 5');
if z=2 then // предположим, что это условие выполняется
  abt2.Visible := true;
  bbt2.Visible := true;
  cbt2.Visible := true;
  ebt2.Visible := true;
  abt3.Visible := False;
  bbt3.Visible := False;
  cbt3.Visible := False;
  ebt3.Visible := False;
  abt4.Visible := False;
  bbt4.Visible := False;
  cbt4.Visible := False;
  ebt4.Visible := False;
  abt5.Visible := False;
  bbt5.Visible := False;
  cbt5.Visible := False;
  ebt5.Visible := False;
if z=3 then
  abt2.Visible := true;
  bbt2.Visible := true;
  cbt2.Visible := true;
  ebt2.Visible := true;
  abt3.Visible := true;
  bbt3.Visible := true;
  cbt3.Visible := true;
  ebt3.Visible := true;
  abt4.Visible := False;
  bbt4.Visible := False;
  cbt4.Visible := False;
  ebt4.Visible := False;
  abt5.Visible := False;
  bbt5.Visible := False;
  cbt5.Visible := False;
  ebt5.Visible := False;
if z=4 then
  abt2.Visible := true;
  bbt2.Visible := true;
  cbt2.Visible := true;
  ebt2.Visible := true;
  abt3.Visible := true;
  bbt3.Visible := true;
  cbt3.Visible := true;
  ebt3.Visible := true;
  abt4.Visible := true;
  bbt4.Visible := true;
  cbt4.Visible := true;
  ebt4.Visible := true;
  abt5.Visible := False;
  bbt5.Visible := False;
  cbt5.Visible := False;
  ebt5.Visible := False;
if z=5 then
  abt2.Visible := true;
  bbt2.Visible := true;
  cbt2.Visible := true;
  ebt2.Visible := true;
  abt3.Visible := true;
  bbt3.Visible := true;
  cbt3.Visible := true;
  ebt3.Visible := true;
  abt4.Visible := true;
  bbt4.Visible := true;
  cbt4.Visible := true;
  ebt4.Visible := true;
  abt5.Visible := true;
  bbt5.Visible := true;
  cbt5.Visible := true;
  ebt5.Visible := true;
end;
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Fastreport: показать превью на форме new player Компоненты Delphi 6 27.07.2011 09:41
Как плавно показать картинку на черной форме. Дима я Мультимедиа в Delphi 14 15.01.2010 18:28
Как создать объект на форме? tns-ka Microsoft Office Excel 2 13.12.2009 21:34
Спрятать или показать кнопку окна в таскБаре Altera Win Api 3 09.12.2009 09:03
Как убрать (спрятать) кнопку Maximize на форме чтобы остались только Minimize и Close athlant64 Общие вопросы Delphi 15 11.11.2007 17:08