Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 31.05.2013
Сообщений: 27

Динамические Edit

04.06.2013, 15:54. Показов 3064. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Я в ступоре( Помогите (кто чем сможет)... =)

Сформулирую задачу утрированно:
- есть 10 элементов Edit: EditA1, EditA2, ..., EditA10;
- есть цикл - выборка элементов из базы.

Необходимо: выбранные элементы динамически записывать в Edit'ы последовательно. Элемента типа "текст", обычный Str.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
           AnsiString EditNumStep="EditNumStep", EditOpName="EditOpName";
           EditNumStep=EditNumStep+y;  EditOpName=EditOpName+y;
 
           str1=strOpName+str15+"                "+str13;    ListBox1->Items->Add(str1);        EditNumStep->Text=str15;   EditOpName->Text=str13;
           str2=strOpStar+ADOTable1timeAtStart->Value;       ListBox1->Items->Add(str2);        EditOpStart1->Text=ADOTable1timeAtStart->Value;
           str3=strTReac1+ADOTable1tempAtStart->Value+" °C"; ListBox1->Items->Add(str3);        EditTReac11->Text=ADOTable1tempAtStart->Value;
           str4=strTComp1+ADOTable1compAtStart->Value+" °C"; ListBox1->Items->Add(str4);        EditTComp11->Text=ADOTable1compAtStart->Value;
           str5=strSValue+ADOTable1setupValue->Value;        ListBox1->Items->Add(str5+str16);  EditSValue1->Text=ADOTable1setupValue->Value;
           str6=strVakRea+ADOTable1presureAtStart->Value+" бар";   ListBox1->Items->Add(str6);  EditVakRea1->Text=ADOTable1presureAtStart->Value;
           str7=strOpeEnd+ADOTable1timeAtStop->Value;        ListBox1->Items->Add(str7);        EditOpeEnd1->Text=ADOTable1timeAtStop->Value;
           str8=strTReac2+ADOTable1tempAtStop->Value+" °C";  ListBox1->Items->Add(str8);        EditTReac21->Text=ADOTable1tempAtStop->Value;
           str9=strTComp2+ADOTable1compAtStop->Value+" °C";  ListBox1->Items->Add(str9);        EditTComp21->Text=ADOTable1compAtStop->Value;
           str10=strRValue+ADOTable1realValue->Value;        ListBox1->Items->Add(str10+str16); EditRValue1->Text=ADOTable1realValue->Value;
           str11=strSEvent+str14;                            ListBox1->Items->Add(str11);       EditSEvent1->Text=str14;
           ListBox1->Items->Add(str4free);
           n++; i++; y++;
Такой вариант не работает....
C++
1
EditNumStep->Text=str15;   EditOpName->Text=str13;
EditNumStep и EditOpName не являются объектами TEdit, это строки типа AnsiString. Как тут сделать конвертацию, не знаю(

В общем, помогите(
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2013, 15:54
Ответы с готовыми решениями:

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

Ограничение ввода русских букв в Edit. Всплывающая подсказка над Edit'ом
Добрый день, обращаюсь за помощью по следующим двум вопросам. 1) В Edit нужно чтобы вводились только буквы англ. и рус. void __fastcall...

Перенос из одного Edit в другой Edit на разных формах (ошибка)
Доброго всем дня. Вопрос такой. Хочу передать результат со второго Едита на второй форме, на 7 сЕдит 7 формы. в общем пробовал так: В...

17
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
04.06.2013, 16:08
Цитата Сообщение от kurajmax Посмотреть сообщение
EditNumStep->Text=str15; EditOpName->Text=str13;
тут не надо ->Text добавлять. Это же не компонент TEdit, а просто строка
1
0 / 0 / 1
Регистрация: 31.05.2013
Сообщений: 27
04.06.2013, 16:28  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
тут не надо ->Text добавлять. Это же не компонент TEdit, а просто строка
C++
1
EditNumStep=str15;   EditOpName=str13;
этот вариант не работает. Ибо тут просто из строки в строку передается инфа. К элементам типа TEdit обращения нет.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
04.06.2013, 16:32
Да что надо-то?! Поконкретнее (можно с банальностями), а то вы и меня в ступор введете...
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.06.2013, 16:37
Цитата Сообщение от nick42 Посмотреть сообщение
Да что надо-то?
- а что, собственно, не понятно? Надо передать элементы объекта типа эдит, которые не являются элементами объекта типа эдит, в объекты элемента типа строка, которые не является ни объектами элемента типа эдит, на элементами типа объекта строка.
1
0 / 0 / 1
Регистрация: 31.05.2013
Сообщений: 27
04.06.2013, 16:41  [ТС]
nick42, постараюсь максимально подробно расписать)
есть 10 элементов EditNumStep1-EditNumStep10 типа TEdit.
нужно в цикле в каждый этот эдит записывать что-то, обращаясь к эдиту не на прямую, а "динамически".
C++
1
ListBox1->Items->Add(str1);        EditNumStep->Text=str15;
эта строка находится в цикле. на каждом шаге в листбокс добавляется строка.
нужно чтобы на каждом шаге в эдиты записывалась та же инфа, что и в листбокс (а конкретно строка str1).

надеюсь подробно объяснил)

Добавлено через 1 минуту
LK, именно! только Вы конечно намудрили с описанием) но я понял, т.к. знаю о чём речь
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.06.2013, 16:44
C++
1
2
3
4
5
6
for(int i = 0; i < ComponentCount; i++) {
  if (Components[i]->Name == "Edit" + AnsiString(i+1)) {
    TEdit *Edit = (TEdit *)FindComponent("Edit" + AnsiString(i+1));
    Edit->Text = str(i);;
  }
}
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
04.06.2013, 16:48
Цитата Сообщение от kurajmax Посмотреть сообщение
обращаясь к эдиту не на прямую, а "динамически".
- я вот этого как "практикантроп" не понимаю. Можно переопределить ваши эдиты на массив TEdit[10] и так и работать с ними по индексу в цикле (это типа, значит, не "напрямую")... . Но лучше б вы смысл всей этой карусели поведали, - глядишь. и придумалось бы что-то...

Добавлено через 3 минуты
Цитата Сообщение от LK Посмотреть сообщение
for(int i = 0; i < ComponentCount; i++) { if (Components[i]->Name == "Edit" + AnsiString(i+1))
А вот это не верно... - номер компонента совсем не обязательно совпадет с номером эдита (разве что на форме других компонентов не будет).
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.06.2013, 16:52
номер там вообще ни при чем, если сравниваются имена
1
0 / 0 / 1
Регистрация: 31.05.2013
Сообщений: 27
04.06.2013, 16:54  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
1
for(int i = 0; i < ComponentCount; i++) {
* if (Components[i]->Name == "Edit" + AnsiString(i+1)) {
* * TEdit *Edit = (TEdit *)FindComponent("Edit" + AnsiString(i+1));
* * Edit->Text = str(i);;
* }
}
Щас опробую это...


Цитата Сообщение от nick42 Посмотреть сообщение
Но лучше б вы смысл всей этой карусели поведали, - глядишь. и придумалось бы что-то...
Вас интересует суть всего проекта? =)
это тестовое приложение "производственного" масштаба. Подвязывается база данных из аксесса. В базе грубо говоря лог всего технологического процесса.
Эта программа должна производить статистические расчёты, что то типа - а сколько масла мы в прошлом месяце израсходовали? или - а вот варка под номером ХХХХХХХХХ что в себя включала?
я без проблем набросал стартовый вариант, все выводится в листбокс. Но как вариант нужен вид отчёта "таблично" плана. Объяснять нет времени, на скринах будет понятней.
Миниатюры
Динамические Edit   Динамические Edit  
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
04.06.2013, 16:58
Цитата Сообщение от LK Посмотреть сообщение
номер там вообще ни при чем, если сравниваются имена
Ага. Components[3] может оказаться Memo1, и тогда Edit4 вообще пролетает.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.06.2013, 17:02
не может
1
0 / 0 / 1
Регистрация: 31.05.2013
Сообщений: 27
17.06.2013, 09:43  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
Ага. Components[3] может оказаться Memo1, и тогда Edit4 вообще пролетает.
С чего вдруг у меня мемки появятся? Читайте внимательней! Массив Edit'ов!
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
17.06.2013, 11:17
Цитата Сообщение от kurajmax Посмотреть сообщение
Читайте внимательней!
Думать тоже полезно... . Компоненты на форме нумеруются в какой-то последовательности: либо по мере их упоминания, либо по алфавиту, либо еще как. То-есть, строго говоря, это будет случайной удачей, если сложится так, что ваши эдиты как компоненты формы окажутся с теми же индексами. Ну, вот вам пример выполнения следующего цикла (компоненты на форму помещались в случайной последовательности, как это обычно и бывает):
C++
1
2
   for (int i=0;i<ComponentCount;i++)
    Memo1->Lines->Add(IntToStr(i)+" - "+Components[i]->Name) ;
0 - Label1
1 - Label2
2 - Label3
3 - Label4
4 - Label5
5 - Label6
6 - Button1
7 - Edit1
8 - Edit2
9 - Edit3
10 - CheckBox1
11 - CheckBox2
12 - RadioButton1
13 - Panel1
14 - Button2
15 - CheckBox3
16 - Edit4
17 - Edit5
18 - Memo1
... - "первый эдит" при последовательном переборе встречается при индексе 7. Есть при таком размещении у эдитов шанс быть опознанными в том варианте программы, что была предложена в сообщении # 7? Программа, которая правильно срабатывает лишь "в частном случае" написана неграмотно (по определению).
1
0 / 0 / 1
Регистрация: 31.05.2013
Сообщений: 27
19.06.2013, 12:05  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
Компоненты на форме нумеруются в какой-то последовательности
Все эдиты я обзываю сам! никакой хаотичности!
Миниатюры
Динамические Edit  
0
19.06.2013, 12:10
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

Да простит меня Всевышний!... я хотел помочь. Всего-то... .

3
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
19.06.2013, 12:31

C++
1
2
3
for (int i=0;i<ComponentCount;i++)
  if ( Components[i]->ClassNameIs( "TEdit" ) )
    Memo1->Lines->Add(IntToStr(i)+" - "+Components[i]->Name) ;
1
0 / 0 / 1
Регистрация: 31.05.2013
Сообщений: 27
19.06.2013, 13:15  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
C++
1
2
3
4
5
6
for(int i = 0; i < ComponentCount; i++) {
  if (Components[i]->Name == "Edit" + AnsiString(i+1)) {
    TEdit *Edit = (TEdit *)FindComponent("Edit" + AnsiString(i+1));
    Edit->Text = str(i);;
  }
}
Работает структура) переписал ее немного под себя, но суть из Вашего примерчика. СПАСИБО!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  ADOTable1->First();
  while(ADOTable1->Eof!=true)             //проверка на конец файла
 {
    if(ADOTable1processID->Value == StrToInt(procID->Text))               // procID это Edit
        {
 
....
 
TEdit *boks1 = (TEdit *)FindComponent("EditNumStep" + AnsiString(i));
TEdit *boks2 = (TEdit *)FindComponent("EditOpName" + AnsiString(i));
 
....
 
boks1->Text=str15;   boks2->Text=str13;
 
....
 
i++;
        }
   ADOTable1->Next();          //перемещение на следующую запись
  }
Добавлено через 2 минуты
Всем кто принимал участие большое СПАСИБО!
(благодарности всем потыкал за сообщения )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2013, 13:15
Помогаю со студенческими работами здесь

Считать с Edit текст, убрать последний символ из строки и снова записать в Edit
Всем доброго времени суток. У меня тут возник вопрос, как можно считать с Edit текст, а потом убрать последний символ из этой строки и...

Запись в файл из полей Edit и проверка Edit на пустоту
TForm1 *Form1; int Ext=0; int i; //--------------------------------------------------------------------------- __fastcall...

Вывести в 11-ый Edit минимальное из значений предыдущих 10-ти Edit-ов
Всем привет. У меня такая задача: есть 10 едитов(Edit1-Edit10) я ввожу в них числа и должно в Edit11 вывести минимальное из чисел. Помогите...

Как вызвать Edit[i] (Edit i-тый)
Нужно вызывать в цикле Edit ы и менять их значение Top, как можно вызвать Edit ?

Обмен значениями между Edit 1 и Edit 2
Доброго времени суток, помогите пожалуйста , покажите мне пожалуйста простейший фрагмент кода , в котором выполняется условие кнопки : ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru