|
1 / 1 / 2
Регистрация: 08.12.2015
Сообщений: 24
|
||||||
Функция для выпадающего списка ComboBox в ячейке StringGrid12.12.2015, 14:50. Показов 5000. Ответов 6
Метки нет (Все метки)
Суть задачи: на форме есть несколько таблиц - геологических колонок, таблицы при необходимости можно добавлять и убирать. В каждой таблице в соответствующих столбцах должны быть выпадающие списки.
Как реализовано: все таблицы (класса StringGrid) являются элементами массива. При нажатии на одну кнопку класса Button рисуется новая таблица, при нажатии на другую кнопку последняя таблица стирается. Для всего массива таблиц есть общие события. Осталось только реализовать динамически создаваемые выпадающие списки. Любезным Шурик П. в тут была ссылка на сторонний форум был предоставлен рабочий код создания выпадающего списка. (gr - TStringGrid, cmbGr - TComboBox, изначально - невидимый)
Помогите, пожалуйста!
0
|
||||||
| 12.12.2015, 14:50 | |
|
Ответы с готовыми решениями:
6
Настроить ширину выпадающего списка для ComboBox
|
|
113 / 75 / 28
Регистрация: 26.07.2015
Сообщений: 124
|
|
| 12.12.2015, 16:34 | |
|
Эта функция не нужна, грид сам прекрасно умеет работать с выпадающими списками, достаточно переопределить CreateEditor, вот тут было показано, как это сделать: Вставка combobox в ячейку stringgrid
1
|
|
|
1 / 1 / 2
Регистрация: 08.12.2015
Сообщений: 24
|
|
| 13.12.2015, 06:56 [ТС] | |
|
Почитал тему, нашёл ещё вот эту StringGrid, добавить ComboBox в определенный столбец. Там как раз описано решение моей задачи. Сел делать сам - ничего не получается.
Если не сложно, пожалуйста, скиньте проект с выпадающим списком в определённом столбце таблицы. У меня C++ Builder 6, если это важно. По-другому я никак не разберусь .
0
|
|
|
1 / 1 / 2
Регистрация: 08.12.2015
Сообщений: 24
|
||||||
| 14.12.2015, 01:43 [ТС] | ||||||
|
Уважаемый volvo, очень приятно, что Вы ответили. Попробую изложить последовательность действий и возникающие при этом проблемы.
Для начала, пробую испытать код на простейшем примере. Как у ребят из вышеупомянутых тем, хочу сделать выпадающий список из элементов "0,1,2,3,4,5,6,7,8,9" во втором столбце таблицы класса TStringGrid. Запускаю Builder, создаю StringGrid1, делаю таблице свойство Options->GoEditing->true. Вставляю в Unit1.h код, который, насколько я понял, изменяет описание класса TStringGrid.
![]() GetCbxItems - в этой функции //или правильнее назвать это прототипом?// прописано, какие значения будут в выпадающем списке. Ок, хорошо. CreateEditor - в этой функции дан алгоритм отрисовки самого окна выпадающего списка. Ясно, понятно. GetEditStyle - функция содержит условие, при соблюдении которого в таблице появится выпадающий список. В данном случае, если столбец таблицы тождественно равен 2. Если подвести черту, в описание класса введены изменения, отвечающие за появление в таком-то столбце определённого вида выпадающего списка с заданными значениями. Вроде, всё ясно. Запускаю. Компилятор - без ошибок. Но в программе в таблице нет никаких выпадающих списков! Ни во 2-м столбце, ни где-либо ещё... Почему? Что я делаю не так?
0
|
||||||
|
Супер-модератор
|
|||||||
| 14.12.2015, 10:24 | |||||||
Сообщение было отмечено Enzi как решение
Решение
Это во-первых. Во-вторых, ничего в гриде и не будет видно, пока не будет выбрана ячейка, которая должна содержать выпадающий список. Вот когда она будет выбрана - то вместо стандартного текстового редактора как раз появится комбобокс.
2
|
|||||||
|
1 / 1 / 2
Регистрация: 08.12.2015
Сообщений: 24
|
|
| 14.12.2015, 14:14 [ТС] | |
|
volvo, большое спасибо! Вот теперь всё отлично.
Единственное что, этот код работает слегка по-другому, чем тот, который я привёл в первом посте данной темы. Он выводит выпадающий список не при выделении ячейки, а когда открывается окно ввода текста. Но это уже не суть. Решение задачи через изменение класса - гораздо более изящное и компактное!
0
|
|
| 14.12.2015, 14:14 | |
|
Помогаю со студенческими работами здесь
7
Добавление выпадающего списка к ячейке Создание выпадающего списка в ячейке
Добавление к ячейке выпадающего списка с элементами, содержащими запятые Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
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
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|