Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
54 / 54 / 40
Регистрация: 22.08.2014
Сообщений: 424
1

Отобразить после скрытия несколько edit

28.06.2015, 22:14. Показов 936. Ответов 11
Метки нет (Все метки)

Здравствуйте уважаемые знатоки,не могли ли вы помочь как сделать так,чтобы,когда пользователь выбирает число в ComboBox (от 1 до 10) отображались все edit'ы до этого числа включительно.
Т.е другими словами :
У меня на форме 10 edit и 1 ComboBox , в visible у всех edit стоит false (так надо)
Надо чтобы когда пользователь выбрал число из выпадающего списка от 1 до 10 (в combo box)
все edit включительно этого числа тоже отобразились
Пробовал так :
TButton(FindComponent('Edit' + ComboBox1.text)).visible=true;
Но тут отображает только один Edit,а не все до числа выбранного в ComboBox включительно
В идеале должно выглядеть так :
Я выбрал число 8 в combo box и после этого все edit (до 8-ого,включая его) приняли visible=true
Помогите пожалуйста,уже столько голову ломаю над этим
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2015, 22:14
Ответы с готовыми решениями:

После скрытия формы пропадает значок приложения внизу
Здравствуйте! Скомпилировав проект, через какое-то время работы с Form1 мне нужно её скрыть, чтобы...

Определенную строку из Memo отобразить в Edit
Есть в мемо1, текст на 205 строк, тоисть в каждой строке, какое то слово... как допустим взять...

Отобразить в Label сумму из Edit (в своем формате)
На форме расположен незаменимый компонент с калькулятором от JEDI - JvCalcEdit. Возникла...

Считывание из edit несколько значений
Доброй поры суток форумчане! Помогите пожалуйсто с задачей. Нужно считать 3 чисел из Edit и...

11
2059 / 1408 / 661
Регистрация: 23.03.2015
Сообщений: 4,587
28.06.2015, 23:05 2
Лучший ответ Сообщение было отмечено madzal как решение

Решение

madzal,

Попробуйте так

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.ComboBox1CloseUp(Sender: TObject);
 Var
i:integer;
E:TEdit ;
begin
  for i := 0 to Componentcount-1 do
  begin
    if i<=Combobox1.ItemIndex+2 then
    begin
      if Components[i] is Tedit then
      begin
        E:=Components[i]As Tedit ;
        E.Visible:=true;
      end;
 
    end;
  end;
 
end;
1
54 / 54 / 40
Регистрация: 22.08.2014
Сообщений: 424
28.06.2015, 23:27  [ТС] 3
Спасибо
только вот тут нужно было заменить

if i<=Combobox1.ItemIndex+2 then
на
if i<=Combobox1.ItemIndex+1 then

Заработало,благодарю
0
2059 / 1408 / 661
Регистрация: 23.03.2015
Сообщений: 4,587
28.06.2015, 23:36 4
madzal,

Цитата Сообщение от madzal Посмотреть сообщение
Combobox1.ItemIndex+2

Извините,
чисто механически...
получилось...
0
пофигист широкого профиля
4453 / 2941 / 830
Регистрация: 15.07.2013
Сообщений: 16,919
29.06.2015, 01:46 5
Цитата Сообщение от Narimanych Посмотреть сообщение
Попробуйте так
Цитата Сообщение от madzal Посмотреть сообщение
Спасибо
только вот тут нужно было заменить

Не по теме:

Не ну какой только бред не изобретут новички!:)
И главное один новичок благодарит другого за бредовый код, а другой просит прощения не за сам бред, а за очепятку в бреде.

0
2059 / 1408 / 661
Регистрация: 23.03.2015
Сообщений: 4,587
29.06.2015, 02:01 6
northener,

Уважаемый гуру,
покажите несведующему новичку " мастер класс "
Как сделать вышеупомянутое правильно...
Буду весьма признателен....
0
пофигист широкого профиля
4453 / 2941 / 830
Регистрация: 15.07.2013
Сообщений: 16,919
29.06.2015, 02:23 7
Цитата Сообщение от Narimanych Посмотреть сообщение
Уважаемый гуру,
покажите несведующему новичку " мастер класс "
Как сделать вышеупомянутое правильно...
Не покажу, уж извини. Вышеупомянутое есть извращение, а я сторонник традиций.
Пусть лучше ТС озвучит свою задачу. Иначе это всё та же Сага о X, Y и Z...

Добавлено через 9 минут
Narimanych, вот лично тебе (поскольку вижу, что ты не троешник), скажу что индекс компонента в списке Components связан только с с тем, в каком порядке сей компонент был добавлен.
0
5083 / 3963 / 1309
Регистрация: 14.04.2014
Сообщений: 18,242
Записей в блоге: 18
29.06.2015, 06:03 8
там, где есть 8 едитов, которые еще и изменяют количество, всегда найдется место для одного StringGrid с переменным числом строк...
но сначала - да, XYZ ))
0
4 / 4 / 1
Регистрация: 28.06.2015
Сообщений: 13
29.06.2015, 14:29 9
отчего же. всякие бывают ситуации. хотя бы с точки зрения дизайна формы не всегда удобен и визуально приемлем стринггрид.

что до задачи:
- не стоит делать FindComponent('Edit' + ComboBox1.text) ведь в тексте комбобокса будет иной текст.
- не стоит делать и черед ItemIndex. такое решение лучше, но отнюдь не гибко.

для простоты:
- заведите класс, в коем будете указывать какие едиты отображать (да хотя бы прям и массив ссылок в оных запихайте) и добавляйте оный класс при добавлении итема в комбобокс. далее - уж совсем тривиально.
0
54 / 54 / 40
Регистрация: 22.08.2014
Сообщений: 424
30.06.2015, 06:49  [ТС] 10
Модераторы закройте тему пожалуйста,решение найдено,что вы тут еще намерены обсуждать ?
Какие саги о x,y,z ? Я конкретно сказал что мне нужно было сделать,мне помогли сделать,я доволен что все получилось,теперь вы тут разводите оффтопик
0
krapotkin
30.06.2015, 08:39
  #11

Не по теме:

упомянутая сага - это программное для этого форума, обязательное к прочтению эпическое произведение, повествующее о том, что не надо помогать делать того, что делать не надо, а надо делать то, что нужно было делать на самом деле

0
Модератор
7465 / 4883 / 2043
Регистрация: 21.01.2014
Сообщений: 20,772
Записей в блоге: 3
30.06.2015, 11:27 12
Для каждого из Едитов установи свойство Tag по порядку:
Edit1: Tag = 1
Edit2: Tag = 2
...
Edit10: Tag = 10
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.ComboBox1Change(Sender: TObject);
var i : integer;
begin
 for i := 0 to ControlCount - 1 do
  begin
   if Controls[i] is TEdit
    then if (Controls[i] as TEdit).Tag <= ComboBox1.ItemIndex + 1
          then (Controls[i] as TEdit).Visible := true
          else (Controls[i] as TEdit).Visible := false;
  end;
end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2015, 11:27

Сворачивается приложение после скрытия формы
Столкнулся с проблемой, что когда скрываю Form2 используя процедуру Hide(); то Form1 прячется за...

Открытие главной формы после скрытия
Такая ситуация. Есть главная форма(Form1). На ней button1. С его помощью открывается name.exe. При...

ShowWindow не получается восстановить видимость окна после скрытия
Поиск дал несколько точно таких же тем на форуме, но ни в одной из них ответа так и не было. ...

Добавление с Edit в Items Combox и после этого в Edit на другую форму
Доброго времени суток. Вопрос такой. В общем, надо помочь с такой штукой. При вводе текста в Edit...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru