0 / 0 / 0
Регистрация: 07.08.2020
Сообщений: 16
|
||||||
1 | ||||||
RAD XE3+ Динамическое создание компонентов Trackbar и Label. Записать значение из TrackBar в Label07.08.2020, 11:29. Показов 3663. Ответов 23
Доброго времени суток!
Ситуация следующая: нужно создать некоторое количество трэкбаров (количество задается пользователем) и иметь возможность видеть их текущее значение. Для этого написал следующий код, создаю динамически трэкбары и лэйблы, плюс обработчик событий, но не понимаю как сделать так. что бы данные "Position" отправлялись бы в нужный Label. Мой код:
0
|
07.08.2020, 11:29 | |
Ответы с готовыми решениями:
23
Отображать значение TrackBar в Label Загрузка из файла одной строки из нескольких(10) в TrackBar или Label Динамическое создание Label Динамическое создание Label? |
0 / 0 / 0
Регистрация: 07.08.2020
Сообщений: 16
|
|
07.08.2020, 11:37 [ТС] | 3 |
Для первого - первый, и так далее, для i-ого i-ый. Они создаются одновременно по нажатию кнопки.
0
|
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
07.08.2020, 11:45 | 4 |
Думаю нужно создать массивы создаваемых компонентов и в MasLabel[i] писать значение MasTB[i].
1
|
3048 / 1668 / 656
Регистрация: 19.03.2019
Сообщений: 5,372
|
|||||||||||
07.08.2020, 11:53 | 5 | ||||||||||
ну, можно сделать коряво:
1) добавить в создаваемые TTrackBar поле Name (странно, что ты его не добавил!) 2) Тогда у тебя в MyTBChange в есть имя TTrackBar - из него несложно получить номер TrackNumber и далее найти нужный label через
и в My_TB.Tag прописать номер нужного Label:
1
|
0 / 0 / 0
Регистрация: 07.08.2020
Сообщений: 16
|
|
07.08.2020, 11:54 [ТС] | 6 |
Буду очень признателен. если Вы сможете привести пример кода, который позволяет осуществить динамическое создание двух компонентов и запись значений одного в параметр другого Вашим способом. Я. к сожалению, пока не на столько хорошо владею языком.
0
|
Модератор
3756 / 2260 / 783
Регистрация: 15.11.2015
Сообщений: 8,994
|
|
07.08.2020, 12:06 | 7 |
Я бы адрес нужного Label поместил бы в Tag трэкбара.
2
|
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
|
||||||
07.08.2020, 12:16 | 8 | |||||
1
|
Модератор
3756 / 2260 / 783
Регистрация: 15.11.2015
Сообщений: 8,994
|
|||||||||||
07.08.2020, 13:52 | 9 | ||||||||||
Сообщение было отмечено pepu5 как решение
Решение
Через Tag.
Ещё можно создать промежуточный класс с этим Label:
Если этот трэкбар и метка должны находится на панели, то можно создать класс от TPanel уже с трэкбаром и меткой, а в основной программе только создавать и размещать панель. Внутри уже всё будет готово.
1
|
Житель Земли
|
|||||||||||||||||||||
07.08.2020, 14:02 | 10 | ||||||||||||||||||||
Если ты всё равно динамически создаёшь трекбары, ну создай ты наследника в пять строк и не надо будет городить огород с тэгами, ссылками, массивами и прочей лабудой. Достаточно будет только массива из самих трекбаров
развиваем идею. никто не мешает унаследовать обработчик Changed.
Кстати, в примере есть место для жирного AV
1
|
0 / 0 / 0
Регистрация: 07.08.2020
Сообщений: 16
|
||||||
07.08.2020, 15:08 [ТС] | 11 | |||||
Всем спасибо большое за помощь! Появилась ногвая задача: для каждого трекбара иметь возможность менять минимум и максимум диапазона регулирования. Примерно понимаю, что надо делать. но очень путаюсь с тегами.
Код на данный момент:
0
|
Модератор
3756 / 2260 / 783
Регистрация: 15.11.2015
Сообщений: 8,994
|
||||||
07.08.2020, 15:22 | 12 | |||||
В массиве есть все эти трэкбары, пройтись и поставить столько надо:
0
|
0 / 0 / 0
Регистрация: 07.08.2020
Сообщений: 16
|
|
07.08.2020, 15:25 [ТС] | 13 |
Так задача в том, чтобы была возможность задавать эти величины в процессе работы программы, из Edit, которые создаются вместе с трэкбарами.
0
|
3048 / 1668 / 656
Регистрация: 19.03.2019
Сообщений: 5,372
|
||||||
07.08.2020, 15:45 | 14 | |||||
Сообщение было отмечено pepu5 как решение
Решение
P.S. впервые вижу такую UI - менять размеры прогрессбара в момент, когда его позицию пытаются передвинуть. Очень странная логика, имхо..
0
|
Модератор
3756 / 2260 / 783
Регистрация: 15.11.2015
Сообщений: 8,994
|
||||||
07.08.2020, 16:20 | 15 | |||||
И в чём проблема? Подставь вместо тех 200 в примере свои Edit'ы. И этот цикл в обработчик Edit'а поместить. Мы же не знаем, что ты задумал и приводим примеры как это сделать, а сам уже компонуешь, как нужно.
Тут сразу и с защитой от неправильного ввода, чтобы программа не вываливала ошибки:
Либо вместо Edit использовать SpinEdit и брать из него готовое целое число.
0
|
08.08.2020, 09:12 | 16 |
Очень интересное и познавательное чтиво. Хорошо, что сразу мораль в нем видна.
Сначала есть ОДНО требование. Один: сделать хранилище, простенькую модель данных в виде пары массивов Все: костыль, костыль! Один: анодированный костыль! Появляется ВТОРОЕ требование заказчика. Он забыл его сразу сказать, или было лень. Все: прекрасно, больше костылей богу костылей! Все: главное не забыть лепить все в обработчик кнопки! А будет еще ТРЕТЬЕ! Потому что откуда заказчик берет свои трекбары - нипанятна! А откуда-то берет! И этот вопрос мы тоже скоро услышим... А если сразу делать отдельную модель данных и отдельную процедуру для визуализации этих данных, то было бы банально, скучно, неуместно...
0
|
414 / 143 / 27
Регистрация: 04.08.2018
Сообщений: 606
|
|
08.08.2020, 13:11 | 17 |
krapotkin, но ведь могли бы предложить проходить по списку компонентов на форме. Так что всё не настолько плохо.
Какой был вопрос, такой был получен ответ. Спросили как сделать - ответили. Если бы спросили как правильно организовать, то и ответ был бы другой. Этот раздел не коммерческая разработка с последующей поддержкой кода, не обучение как надо делать.
0
|
3760 / 2264 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
|
||||||
08.08.2020, 19:10 | 19 | |||||
Забавная задачка. Решил тоже свой вариант сделать, без дополнительных классов.
Открыл для себя компонент TGridPanel. Даже не обращал внимания раньше на него. Оказывается чертовски интересная штука и для этой задачи подходит идеально.
1
|
0 / 0 / 0
Регистрация: 07.08.2020
Сообщений: 16
|
||||||
09.08.2020, 18:06 [ТС] | 20 | |||||
Доброго времени суток все еще раз! Хотелось бы немного обновить код. На данном этапе изменение минимума и максимума трэкбаров, созданных динамически, происходит при изменении положения. Хотелось бы это исправить, чтобы менялось по нажатии кнопки Button1 например (Как у первого трэкбара) или при изменении Edit - ов, не знаю как лучше. Жду Ваших советов и решений
0
|
09.08.2020, 18:06 | |
09.08.2020, 18:06 | |
Помогаю со студенческими работами здесь
20
Динамическое создание Label Динамическое создание label-ов Динамическое создание Label Динамическое создание Label Динамическое создание Label Динамическое создание label Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |