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

Массовое создание TEdit

07.04.2013, 17:24. Показов 3479. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На просторах интернета нашел код для массового создания TEdit:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i=0;i<5;i++)
        {
        TEdit *edit = new TEdit(this);
        edit->Parent = this;
        edit->Name = "edit"+AnsiString(i);
        edit->AutoSize=False;
        edit->Height = 40;
        edit->Width = 40;
        edit->Left = 20;
        edit->Top = i*edit->Height+20;
        edit->Text = AnsiString(i);
        }
Не полностью разобрался что тут происходит особенно в этих строчках:
C++
1
2
3
TEdit *edit = new TEdit(this);
        edit->Parent = this;
        edit->Name = "edit"+AnsiString(i);
Подскажите каким образом я могу задать интервалы между ими??? И объясните кусочек, пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.04.2013, 17:24
Ответы с готовыми решениями:

Создание собственного компонента на основе TEdit
Мне нужно создать пакет со своим компонентом в c++ builder'e на основе edit'a. В обработчик события надо прописать код, но я не могу...

Массовое переименование файлов
Здравствуйте, подскажите пожалуйста как в определенной папке (используя DirectoryListBox и FileListBox) удалить из названия файлов...

Массовое переименование файлов
Здравствуйте! Подскажите пожалуйста, в чем ошибка? //--------------------------------------------------------------------------- ...

26
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.04.2013, 17:43
C++
1
2
3
4
5
6
7
8
9
// создание экземпляра класса TEdit
TEdit *edit = new TEdit(this);
// указание формы (приложения) в качестве родителя
// динамически созданного компонента
edit->Parent = this;
// указание имени созданного компонента - edit с добавлением
// текущей итерации цикла for с приведением к типу "строка",
// результат:  edit0,  edit1 и т.д.
edit->Name = "edit"+AnsiString(i);
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
07.04.2013, 17:43
Если ты не в состоянии понять даже эти строчки, боюсь, пытаться объяснить что-либо стало бы напрасной тратой времени. Читай книжки.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.04.2013, 17:46
Цитата Сообщение от ODDsama Посмотреть сообщение
задать интервалы
C++
1
edit->Left = edit->Width+20;
Добавлено через 1 минуту
Цитата Сообщение от ODDsama Посмотреть сообщение
edit->Top = i*edit->Height+20;
у вас даже есть пример.
1
 Аватар для ODDsama
1 / 1 / 0
Регистрация: 16.02.2013
Сообщений: 44
07.04.2013, 17:55  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Читай книжки.
Времени очень мало, 11-го сдавать курсовую. Вот и сижу учу как могу.

LK, Спасибо огромное, буду пробовать.
0
07.04.2013, 17:58

Не по теме:

А все-таки правильно говорят, что поздно пить боржоми, когда почки отвалились.:)

0
 Аватар для ODDsama
1 / 1 / 0
Регистрация: 16.02.2013
Сообщений: 44
07.04.2013, 18:05  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
C++
1
edit->Left = edit->Width+20;
Вот этот код не делает интервалов, а лишь увеличивает дистанцию до края. Эту вещь я уже крутил как мог

Добавлено через 1 минуту
Цитата Сообщение от BRcr Посмотреть сообщение
Не по теме:
А все-таки правильно говорят, что поздно пить боржоми, когда почки отвалились.
Хоть бы немного помог... Пожалуйста
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
07.04.2013, 18:43
Цитата Сообщение от ODDsama Посмотреть сообщение
Вот этот код не делает интервалов
А какие интервалы нужны? Чтобы эдиты были один под другим и между ними было расстояние?
0
 Аватар для ODDsama
1 / 1 / 0
Регистрация: 16.02.2013
Сообщений: 44
07.04.2013, 19:03  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
А какие интервалы нужны? Чтобы эдиты были один под другим и между ними было расстояние?
Да, а позже буду делать двумерно и мне потребуется еще и влево интервалы делать.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
07.04.2013, 19:33
C++
1
edit->Top = i * edit->Height + i * 20 + 20;
Это вертикальные интервалы.
C++
1
edit->Left = i * edit->Width + i * 20 + 20;
Это горизонтальные.
1
 Аватар для ODDsama
1 / 1 / 0
Регистрация: 16.02.2013
Сообщений: 44
07.04.2013, 19:54  [ТС]
BRcr, Спасибо, но у меня один вопрос остался... что это за выражение???
C++
1
i * edit
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
07.04.2013, 20:02
Это не выражение, это его бесполезный обрубок. А вот это выражение - i * edit->Height - это i умножить на ширину эдита.
0
 Аватар для ODDsama
1 / 1 / 0
Регистрация: 16.02.2013
Сообщений: 44
07.04.2013, 20:04  [ТС]
BRcr, так... Я что-то начал понимать... Только вот задумался... И понял, что я не знаю как реализовать создание двумерной сетки из едитов)))
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
08.04.2013, 05:03
пишете два цикла (вложеных), в первом сдвигаете поля по горизонтали, во втором - по вертикали
0
 Аватар для ODDsama
1 / 1 / 0
Регистрация: 16.02.2013
Сообщений: 44
08.04.2013, 08:57  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
пишете два цикла (вложеных), в первом сдвигаете поля по горизонтали, во втором - по вертикали
Спасибо, но я разобрался еще вчера, просто за день голова туго стала соображать
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
08.04.2013, 09:00
...да мне-то что.
0
2 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 64
05.08.2020, 12:18
Здравствуйте. Решил не создавать новую тему, а попросить Вас расширить эту.
А не подскажите как работать с динамически создаными Edit-ами?
Задаю число Edit-ов, они формируются.
Нужно получить из готовых Edit-ов строку: Edit1.Text +"-"+Edit2.Text+"-"+.....+ Edit[i].Text
Разобрался как создавать потом их удалять после использования но как с ними работать как со стационарным компонентом не понял. Заранее большое спасибо.

Добавлено через 7 минут
Да и как в этих динамически созданных Edit-ах разрешить ввод только цифр.
Да стационарного Edit-а всё понятно в свойстве KeyPress можно просто написать:
C++
1
2
3
if((Key>='0')&&(Key<='9')){} //цыфры
        else if(Key==8){} //<-
            else Key=0; //не цыфра
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
05.08.2020, 12:20
Цитата Сообщение от _BeasT_ Посмотреть сообщение
как с ними работать как со стационарным компонентом
Ну так же и работать... А что не так?

Добавлено через 1 минуту
Цитата Сообщение от _BeasT_ Посмотреть сообщение
как в этих динамически созданных Edit-ах разрешить ввод только цифр
Так же, как и в обычных... Только метод самому написать и ассоциировать с событием OnKeyPress создаваемого компонента
1
2 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 64
05.08.2020, 12:24
C++
1
2
3
4
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
Form1->Edit2->Text = "2а";
}
Ну так на эту процедуру он и ругается. Ведь по факту компонента нет на форме.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
05.08.2020, 13:20
Компонента может и не быть; лишь бы этот обработчик события edit-change имел прообраз в .h файле. Назначить его всем динамическим эдитам не проблема. А вот внутри его лучше писать не явно: Edit2->Text, а использовать передаваемый в параметрах указатель на компонент, вызвавший этот обработчик (Sender*).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.08.2020, 13:20
Помогаю со студенческими работами здесь

Sender as TEdit c++
Доброго времени суток! Покопался в гугле, но не нашел ответа(( С плюсами только начал работать, не сердчайте Есть обработчик события...

SendMessage и TEdit.
Здравствуйте. Вопрос такой, как через SendMessage из потока передать сообщение на TEdit или TLabel, мне все равно. Желательно покажите...

Структура из TEdit
Кину пока сюда, так как незнаю куда кидать:) У меня такая проблемка - у меня создан 2х-связная динамическая кольцевая структура, каждое...

Массовое создание документов Word
необходимо сделать массовое создание документов на основе реестра в Word. функция слияния не подходит, так как переребирая данные в...

Массовое создание элементов с определенными параметрами
Добрый день, господа. Хочу узнать как массово создать определенное количество элементов упорядочные между собой и имеющие разные параметры....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru