|
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300
|
|
Добавить компоненты за компонентами; удалить первые компоненты, вторые встанут на его место и т.д07.02.2020, 20:40. Показов 2408. Ответов 16
Метки нет (Все метки)
Всем Hi
![]() Есть ScrollBox, на нём расположены компоненты, скажем в ряд. Есть две кнопки, Добавить и Удалить. При нажатии на кнопку Добавить, добавляются компоненты в ряд, в ScrollBox. Если ещё раз нажать на кнопку добавить, то добавится второй ряд компонент, расположение которых точно под первым рядом. Я хотела бы добавлять и третий ряд, и четвёртый и т.д. хотя бы 10 рядов, но тяжело каждый раз писать расположение компонент (top, left). Кроме того, когда галочкой выбираю первый ряд компонент и нажимаю на кнопку удалить, второй ряд должен принять расположение первого, ну и другие ряды, если есть, должны упорядочиться. Ситуацию осложняет то, что один из компонент в ряду, это Memo. Если в Memo появляется вторая строка, третья и т.д., то высота компонент в ряду увеличивается, соответственно всё другие ряды должны учитывать это, и опять есть удаление и т.д. Если меня кто нибудь понял, помогите это сделать. Проект в приложении.Не ругайтесь пожалуйста ![]()
0
|
|
| 07.02.2020, 20:40 | |
|
Ответы с готовыми решениями:
16
|
|
Модератор
4138 / 2351 / 809
Регистрация: 15.11.2015
Сообщений: 9,396
|
|
| 07.02.2020, 20:48 | |
|
LSvetlana, приложения нет почему-то.
Зачем каждый раз писать координаты вручную? У компонентов есть замечательные свойства Left, Top, Width, Height, и ещё есть циклы, и есть списки объектов. Соединить всё это вместе и будет хорошо.
0
|
|
|
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300
|
|
| 07.02.2020, 20:50 [ТС] | |
|
0
|
|
|
Модератор
4138 / 2351 / 809
Регистрация: 15.11.2015
Сообщений: 9,396
|
|
| 07.02.2020, 20:57 | |
|
Да тут просто показ и скрытие компонентов, а я думал, создание новых элементов.
![]() Чтобы не мучиться долго, можно каждый набор компонентов посадить на отдельную панель, получится 3 панели, и потом прятать и показывать нужные панели, а компоненты на панели уже будут автоматом показываться и прятаться.
0
|
|
|
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300
|
|||
| 07.02.2020, 21:13 [ТС] | |||
|
Добавили 3 ряда компонент --------------- 1111111111111 2222222222222 3333333333333 Удаляем 1, --------------- 2222222222222 3333333333333 Добавляем 1 --------------- 2222222222222 3333333333333 1111111111111 Увеличиваем высоту компонент 2, из за того что в memo уже две строки --------------- 2222222222222 2222222222222 3333333333333 1111111111111 Вот что то такое хочу получить ![]() У меня в голове то, что надо менять Left, Top, Width, Height... А если у меня будет 10 рядов это же сколько комбинаций надо
0
|
|||
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|||||||
| 08.02.2020, 07:43 | |||||||
0
|
|||||||
|
Модератор
4138 / 2351 / 809
Регистрация: 15.11.2015
Сообщений: 9,396
|
|
| 08.02.2020, 09:51 | |
|
LSvetlana, не могу посмотреть сам проект - нормально не открывается в XE3 из-за отсутствия компонента TDBComboBoxEh. Приложи скриншот, как это должно выглядеть без Memo и с добавленным Memo.
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 08.02.2020, 10:22 | |
|
LSvetlana, а если так (в прицепе ехе, который показывает как), без окаянного количества компонентов, без проблем, связанных с этим количеством и их размещением?
1
|
|
|
Модератор
4138 / 2351 / 809
Регистрация: 15.11.2015
Сообщений: 9,396
|
||
| 08.02.2020, 10:26 | ||
|
Если нужно просто по очереди добавлять и убирать панели, то можно вот так очень просто: во вложени.
1
|
||
|
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300
|
||||
| 09.02.2020, 22:47 [ТС] | ||||
, я думала сначала сделать именно так, потом мне показалось что так будет Добавлено через 7 минут , завтра приложу, но вообще это должно быть так как на Screen'e в сообщении № 9 от Скандербег, у него ещё там приложение прикреплено. Но там должно быть Memo, самое крайнее поле (справа).Добавлено через 2 минуты , да, очень похоже, только там вот нужно чтобы было поле Memo, самое крайнее поле (справа).
0
|
||||
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
||
| 09.02.2020, 22:58 | ||
|
И тогда чем отличается поле в приведенном примере, где текст размещен в несколько строк и компонент memo, где текст так же может размещаться в несколько строк?
0
|
||
|
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300
|
|||
| 09.02.2020, 23:07 [ТС] | |||
, ну как я уже подчеркнула, нужно что то, так как на Screen'e в сообщении № 9 от Скандербег.Вообще если это делать так, как делала я, в самом начале (первое сообщение), то просто нужно учесть все положения рядов компонент, которые они могут принять (в моём случае это свойство Top). Ну при учёте всех положений, нужно не забывать, что, если меняется высота строк (из за Memo, а это нужно), то координаты рядов компонент должны тоже меняться Я подумала что для двух рядов это можно сделать, посидеть пару дней, подумать все варианты, а вот если мне нужно больше рядов, 3, или 8, то вот тут уже начинаются трудности, потому что можно запутаться ![]() Я вот пробую сейчас это сделать с панелями, посмотрим как себя будут вести компоненты ![]() ![]() Добавлено через 6 минут . Например в Memo можно придерживаться определённого форматирования, и в реальном времени смотреть, какой текст будет по окончанию редактирования.![]() P.S это всё равно что набирать текст для листа формата А4 в одно-строчном редакторе, который потом на выходе трансформируется в много-строчный текст, и в итоге не будет приличного формата текста
0
|
|||
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 09.02.2020, 23:14 | |
|
LSvetlana, а почему такая обязательная упёртость в нагромождение компонентов?
В моем предложении проблем, практически, нет - ничего не надо вычислять, гадать как они себя поведут. А "сборник" компонентов при их размещении из-за этого мемо, скорее всего, будет мало презентабельным и сложным в управлении.
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
||
| 09.02.2020, 23:16 | ||
|
Кстати, можно добавить, что если мемо будет иметь определенную высоту (а по-другому вначале ввода текста не получится), то мы опять же упремся в то же самое - невозможность "форматирования в реяльном времени". А потом высоту мемо придется подгонять под количество строк текста, или как сказано выше, использовать вертикальный скорллбар.
0
|
||
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 10.02.2020, 01:01 | |
Сообщение было отмечено LSvetlana как решение
Решение
Судя по изначальному описанию задачи, можно было воспользоваться TFlowPanel, но вот есть ли он в той версии Delphi которую использует автор темы?
1
|
|
|
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300
|
|
| 10.02.2020, 15:50 [ТС] | |
|
0
|
|
|
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300
|
|
| 11.02.2020, 22:06 [ТС] | |
|
Всем Hi
![]() Всем спасибо, Пытливый, Ваш совет мне помог, спасибо за помощь. ![]() AzAtom, Puporev, Скандербег спасибо
0
|
|
| 11.02.2020, 22:06 | |
|
Помогаю со студенческими работами здесь
17
Как поставить QuickReport для Builder 2007 и добавить его в компоненты на панель
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|