Задать изменение ширины всем элементам ввода окна, при изменении ширины самого окна16.06.2017, 15:40. Показов 5441. Ответов 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 | |
|
Изменение длины и ширины окна влияет на размеры объектов Пропорциональное изменение высоты CardView при изменении ширины Изменение масштаба яндекс карты при изменении ширины экрана Не переносится блок при уменьшении ширины окна Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|