Задать изменение ширины всем элементам ввода окна, при изменении ширины самого окна16.06.2017, 15:40. Показов 5168. Ответов 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 при изменении ширины Изменение масштаба яндекс карты при изменении ширины экрана Не переносится блок при уменьшении ширины окна Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|