Задать изменение ширины всем элементам ввода окна, при изменении ширины самого окна16.06.2017, 15:40. Показов 4905. Ответов 47
Метки нет (Все метки)
Товарищи коллеги!
Подскажите, а как подобным образом, задать изменение ширины всем элементам ввода окна, при изменении ширины самого окна? Пробовал сделать так:
Когда нажимаю кнопку окна "Развернуть", элементы пропорционально расширяются и сдвигаются друг относительно друга по ширине корректно и равномерно. Но вот при возвращении в исходное состояние окан, они почему-то в свои прежние позиции не становятся, а наезжают друг на друга. Подскажите, что я возможно забыл задать?
0
|
||||||
| 16.06.2017, 15:40 | |
|
Ответы с готовыми решениями:
47
Автоматическое изменение ширины столбца в DBGrid при изменении ширины формы Изменение размера картинки при уменьшении ширины окна
|
| 22.06.2017, 10:28 [ТС] | ||||||||||||
|
"можете даже не спорить" - Боже упаси! Спорить я не в коем случае не собирался. Я тут не спорить, а прийти к решению поставленной цели пытаюсь Описал свой результат как есть. Ниже приведу код, раз качать проект от B6 вам нет смысла, может по нему заметите чего может не хватать. И дабы не быть голословным, коль проект скидывать нет смысла приложу получившийся экзешник, можете запустить и убедиться, что списки действительно не выпадают.Код:
0
|
||||||||||||
| 22.06.2017, 11:06 [ТС] | |
|
Архив с экзешником проекта
0
|
|
|
Супер-модератор
|
||
| 22.06.2017, 11:20 | ||
|
0
|
||
| 22.06.2017, 15:56 [ТС] | |||
|
Добавлено через 1 час 37 минут Или к примеру я буду читать из файла значения, которые указывают на номер элемента в списке Items, который надо будет отобразить в боксе после считывания. Для этого мне опять же подошел бы метод ItemIndex, но его я тут, как понимаю, нет Что делать?
0
|
|||
|
Супер-модератор
|
|||||||||||
| 22.06.2017, 17:26 | |||||||||||
|
Я бы написал еще один метод в классе-перехватчике:
0
|
|||||||||||
| 23.06.2017, 11:12 [ТС] | |||||||||
|
Только вот при попытке запуска что-то выдаёт такие ошибки:
Добавлено через 16 минут
0
|
|||||||||
|
Супер-модератор
|
||||||||
| 23.06.2017, 13:26 | ||||||||
0
|
||||||||
| 23.06.2017, 14:02 [ТС] | ||
|
0
|
||
| 25.06.2017, 15:02 [ТС] | ||
|
А вот, что бы получить индекс, выбранного из списка элемента (по сути обратная операция, у стандартного комбобокса это - combobox->ItemIndex), для этого тоже следует написать еще один метод в классе-перехватчике? Или можно как-то уже имеющимися средствами получить индекс элемента, выбранного из списка? P.S. написал этот вопрос заранее, сам предварительно не поэксперементировав, т.к. в данный момент под рукой не на чем "поиграться" (билдер не установлен). Теоретически пока лишь прикинул варианты, опробовать их смогу только завтра на работе. Так, что не сочтите мой вопрос за банальный Просто хочется к моменту, когда снова смогу сесть за ПК со средой, услышать объективное мнение и сразу писать в правильном направлении. Заранее спасибо!
0
|
||
|
Супер-модератор
|
|||||||||||
| 25.06.2017, 19:54 | |||||||||||
|
Cha1000000, в таком случае проще будет реализовать вот такое свойство:
0
|
|||||||||||
| 26.06.2017, 09:53 [ТС] | ||
![]() ![]() Только пока не совсем понял почему функции: virtual TInplaceEdit* __fastcall CreateEditor(void) и DYNAMIC TEditStyle __fastcall GetEditStyle(int ACol, int ARow) вынесены в protected? И для чего используются virtual и DYNAMIC (последний вообще раньше не видел и нигде не встречал...)?
0
|
||
|
Супер-модератор
|
||
| 26.06.2017, 10:23 | ||
|
У меня в подписи есть ссылка на тему: Классы-перехватчики (interceptor classes) , там в самом низу написано,
0
|
||
| 26.06.2017, 18:25 [ТС] | ||
![]() Добавлено через 7 часов 56 минут Кстати заметил один неприятный баг сей конструкции... Когда уже в запущенной программе кликаю мышкой на комбобокс, он разворачивается щелчка с третьего: 1 - выделяется ячейка, 2 -становится активным текст бокса (или сам бокс я так и не понял пока), ну а по третьему клику список выпадает, и то если кликнуть именно на кнопку выпадения списка, если просто в центр, курсор устанавливается в положение редактирования текста в ячейке. Отсюда возникло два вопроса: можно ли как-то сделать так, чтоб по первому клику по комбобоксу список разворачивался, и как запретить редактирование или ввод текста в эти боксы. Список в них чётко установлен и ввод текста в них не предусмотрен, т.к. обработка данных идёт (в моём случае) чисто по ItemIndex-ам.
0
|
||
|
Супер-модератор
|
||||||||
| 26.06.2017, 21:00 | ||||||||
|
Много текста, надеюсь, не бесполезного
Добавлено через 3 минуты А что касается
0
|
||||||||
| 27.06.2017, 10:24 [ТС] | |||
|
перегрузить нужно оба метода что ли, или достаточно только DoKeyPress? И перегрузить, в данном случае, имеется в виду оставить имя функции с параметрами как есть (как здесь описано: bool __fastcall DoKeyPress(Winapi::Messages::TWMKey &Message) , и лишь в теле функции задать свои условия, или как-то по-другому?? И, запрещая "все ненужные кнопки", в том случае, если ненужными кнопками подразумевется вообще любая кнопка, т.е. в условии запрета не какие-то конкретные кнопки надо указать, а вообще все, для такого случая есть ли какое то "красивое", компактное условие запрета ввода??
0
|
|||
|
Супер-модератор
|
||||||
| 27.06.2017, 11:04 | ||||||
|
Упс. Я ошибся, методы DoKey<...> нельзя перегрузить, они не виртуальные. Перегружать надо либо KeyPress, либо KeyDown. Я сделал для KeyDown. На этот раз код будет предельно лаконичным, и длинных комментариев не потребуется:
0
|
||||||
| 27.06.2017, 12:05 [ТС] | |||||||
Не в смысле не компиллируется, а именно не функционирует. Проект собрался, запустился, выбираю из бокса элемент, но его по-прежнему можно редактировать. Попробовал сделать такой же метод для KeyPress, тоже безрезультатно((
0
|
|||||||
|
Супер-модератор
|
|
| 27.06.2017, 12:24 | |
|
Чуть позже проверю на портабельной версии 6-го Билдера, у меня она где-то на старом компьютере валялась. Но я решительно не понимаю, что там может не работать. Кстати, return у меня не было.
0
|
|
| 27.06.2017, 12:51 [ТС] | |||||||
|
Кстати, пробовал пойти обходным путём, в лоб хотел задать свойству Стринггрида OnKeyPress условия, в его объект-инспекторе, повесил такие обработки:
А что, если по типу virtual bool __fastcall SelectCell(int ACol, int ARow) сделать тоже для стринггридовского KeyPress?
0
|
|||||||
|
Супер-модератор
|
||
| 27.06.2017, 13:02 | ||
|
Кстати, у меня мой код отработал и на 6-ом Билдере. Так что либо что-то неправильно скопировано, либо какая-то проблема с Билдером (а еще чего хуже - с системой). Я ж говорю: тут нечему НЕ работать - это базовые вещи, на которых построена вся VCL. Если это не будет работать, то и все остальное - тоже.
0
|
||
| 27.06.2017, 13:02 | |
|
Помогаю со студенческими работами здесь
40
Изменение длины и ширины окна влияет на размеры объектов Пропорциональное изменение высоты CardView при изменении ширины Изменение масштаба яндекс карты при изменении ширины экрана Не переносится блок при уменьшении ширины окна Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|