Задать изменение ширины всем элементам ввода окна, при изменении ширины самого окна16.06.2017, 15:40. Показов 4918. Ответов 47
Метки нет (Все метки)
Товарищи коллеги!
Подскажите, а как подобным образом, задать изменение ширины всем элементам ввода окна, при изменении ширины самого окна? Пробовал сделать так:
Когда нажимаю кнопку окна "Развернуть", элементы пропорционально расширяются и сдвигаются друг относительно друга по ширине корректно и равномерно. Но вот при возвращении в исходное состояние окан, они почему-то в свои прежние позиции не становятся, а наезжают друг на друга. Подскажите, что я возможно забыл задать?
0
|
||||||
| 16.06.2017, 15:40 | |
|
Ответы с готовыми решениями:
47
Автоматическое изменение ширины столбца в DBGrid при изменении ширины формы Изменение размера картинки при уменьшении ширины окна
|
|
Супер-модератор
|
|||||||||||
| 16.06.2017, 16:08 | |||||||||||
|
Скорее всего проблема - в том, что деление:
0
|
|||||||||||
|
place status here
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
|
|
| 17.06.2017, 15:00 | |
|
А использование свойства Anchors объектов разве не решает проблему?
0
|
|
| 17.06.2017, 15:09 [ТС] | ||||||||
|
Тогда в таком случае, вы предлагаете привести с помощью static_cast<float> переменную DefWith к типу float, а что же тогда с this->Width? Почему его тоже не нужно привести к float? Попутный вопрос #1: до, буквально, вчерашнего дня не видел и не пользовался конструкцией static_cast<...>, подскажите, в каких случаях её следует применять и чем она отличается от обычного приведения типов вида "(желаемый_тип)Переменная"? Попутный вопрос #2: тоже толком сам еще не пользовался (за исключением участков кода, взятых в свои проекты из источников в сети), но частенько видел в примерах, приводимых людьми, конструкцию цикла foreach. Сам с ней пока толком еще не разобрался и не привык, но что-то мне подсказывает, что с помощью неё можно как-то оптимизировать вот такие места:
Спасибо! Добавлено через 6 минут
0
|
||||||||
|
Супер-модератор
|
|||
| 17.06.2017, 16:29 | |||
|
0
|
|||
| 17.06.2017, 17:29 [ТС] | |||
|
А по оптимизации через foreach есть что добавить?
0
|
|||
| 19.06.2017, 12:15 [ТС] | |||||||||||||||||
|
1. Ну допустим привели мы переменную DefWith к типу float. А объявить её при этом тоже float'ом не следует? А то она у меня интовая так-то... 2. А на счёт проверок:
Добавлено через 8 минут 3. И вот в этих местах вида:
0
|
|||||||||||||||||
|
Супер-модератор
|
|
| 19.06.2017, 12:20 | |
|
У меня хрустальный шар в ремонте, и как изначально расположены контролы на форме, без него мне не видно. Соответственно, воспроизвести проблему я не могу, решить без воспроизведения тоже невозможно. А отвечать просто так, может вот это поможет, а может вот так сделать - это не ко мне, ждите других.
0
|
|
| 19.06.2017, 12:47 [ТС] | ||
|
0
|
||
| 20.06.2017, 12:49 [ТС] | ||
|
0
|
||
|
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
|
|
| 20.06.2017, 21:00 | |
|
Cha1000000, зачем все это шаманство с изобилием компонентов? Так никто не делает. Создайте TStringGrid, в нужные вам ячейки поместите TComboBox и т.д. А далее в OnResize формы растягивайте грид и его ячейки.
И задайте для формы свойства Constraints, чтобы ее не сжимали менее нужного размера.
0
|
|
| 20.06.2017, 21:40 [ТС] | ||||
![]()
0
|
||||
|
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
|
||
| 21.06.2017, 06:22 | ||
|
Сложного ничего нет, создаете динамически нужные объекты, привязываете их к нужным ячейкам, при необходимости уничтожаете. Разве что будите использовать сторонние компоненты, в которых это уже реализовано.
0
|
||
| 21.06.2017, 09:43 [ТС] | |
|
0
|
|
|
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
|
||||||||||||
| 21.06.2017, 10:34 | ||||||||||||
0
|
||||||||||||
| 21.06.2017, 11:02 [ТС] | |||
|
0
|
|||
| 21.06.2017, 15:41 [ТС] | ||||||
|
По поводу "в ячейку 1,1 слово Тест не попало" ошибочка вышла. Всё там попало, просто забыл, что по умолчанию при запуске отображается ItemIndex = -1, а там пусто естественно...
Начал делать, предлагаемым вами способом. Да, достаточно удобно вставляются боксы в грид, спасибо! Однако, заполняя Items этих боксов, при компиляции и запуске, значения в них имеются, но если выбрать комбобокс и стрелкой на клавиатуре их перещёлкивать получается, а вот по нажатию на комбобокс список не выпадает. ![]() Кстати заметил, что при нажатии курсором мыши на такой получившийся комбобокс, перебирать элементы в нём удаётся только стрелками клавиатуры, а колёсиком мыши почему-то тоже не удаётся. Как сделать, чтоб список таки выпадал? На всякий случай вот код:
0
|
||||||
|
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
|
|||
| 21.06.2017, 16:10 | |||
|
0
|
|||
| 21.06.2017, 16:58 [ТС] | |||||||
|
Попутно 2 вопроса: 1. Установил в свойстве Anchors стринггрида привязку к левой, верхней и правой сторонам, но при развороте во весь экран, расширяется только правая граница грида, а размер ячеек при этом не меняется. 2. Решая вопрос #1 вытекает следующий вопрос: следует ли дополнительно привязать ширину ячеек к ширине соответствующих им комбобоксов? Если да, то будет ли правильна такая запись:
0
|
|||||||
|
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
|
|||||||
| 21.06.2017, 17:37 | |||||||
|
Не впадает список только в 1 случае - если бокс пуст, если итемы существуют то все выпадает, можете даже не спорить, я так делаю постоянно. По поводу ваших 1 и 2: - 1: Размер ячеек не имеет отношения к размерам самого грида, для их изменения есть свои свойства (DefaultColWidth, DefaultRowHeight, RowHeights, ColWidths). В третий раз вам пишу: обрабатывайте событие OnResize, в нем и присваивайте ячейкам нужные габариты. - 2: естественно следует за этим следить, фишка в том, что объект не помещается в ячейку, а всего лишь рисуется поверх нее, следовательно, в том же OnResize надо делать то же самое, что было сделано при размещении объекта над гридом, а именно:
0
|
|||||||
| 21.06.2017, 17:37 | |
|
Помогаю со студенческими работами здесь
20
Изменение длины и ширины окна влияет на размеры объектов Пропорциональное изменение высоты CardView при изменении ширины Изменение масштаба яндекс карты при изменении ширины экрана Не переносится блок при уменьшении ширины окна Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|