|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|||||||||||
Builder 6 Выпадающее меню в DBGrid05.09.2019, 17:53. Показов 2616. Ответов 19
Метки нет (Все метки)
Всем доброго времени суток.
Есть прлблема., которую не знаю как решить. На форме есть таблица, данные которой берутся из mdb через ado. Нужно для определённого столбца сделать выпадайеу (типа combobox), в которой будут данные взятые из файла. Собственно это получилось сделать следующим кодом:
Пример файла с данными:
Как?
0
|
|||||||||||
| 05.09.2019, 17:53 | |
|
Ответы с готовыми решениями:
19
Выпадающее меню TrayIcon - организовать выпадающее меню с разными функциями
|
|
Супер-модератор
|
||||||
| 05.09.2019, 20:22 | ||||||
|
Ну, смотри. Если бы мне понадобилось что-то подобное - я бы сделал вот так:
2
|
||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 05.09.2019, 21:48 [ТС] | |
|
volvo, у меня вопроса сразу 2:
1. Можно ли как то использовать у PickList функцию LoadFromStream для этих целей? 2. Как отловить переход на следующую строчку/столбец в базе(покидание ячейки)? Тогда можно было б просто распарсить файл, PickList скормить из TStringList, как это было сделано у вас. А дальше при переходе на новую строку менять перебором значение на значение. Это у меня первая мысль такая была. Но как вижу, у вас должно "на лету" значение меняться.
0
|
|
|
Супер-модератор
|
|||
| 05.09.2019, 21:53 | |||
|
1
|
|||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 05.09.2019, 21:53 [ТС] | |
|
Ещё была мысль делать combobox вместо PickList, привязывать его каким то чудом к нужному столбцу, что б он менял размеры так же, и вёл себя так же, и в нём делать подмену, когда он отправляет данные в бд
0
|
|
|
Супер-модератор
|
|
| 05.09.2019, 21:59 | |
|
Эту мысль надо изгонять сразу же. Если есть возможность сделать что-то встроенными средствами компонента (а PickList - встроенное средство) - то это всегда предпочтительнее, чем "каким-то чудом" привязывать один компонент к определенной части другого. В общем, я написал, что сделал бы я. Решать - тебе. Хочешь - бери мою идею. Не хочешь - делай по своему.
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 05.09.2019, 22:09 [ТС] | |
|
volvo, идея у вас суперская, да ещё без костылей почти, поэтому, с вашего разрешения, забираю ваш вариант.
Спасибо большое. Не по теме: где можно почитать всевозможные "действия" с таблицей типа ADOTable1titleSetText и т.п.?
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 06.09.2019, 08:49 [ТС] | |
|
volvo, проверил - что то пошло не так...
Events такого нет, возможно от этого ошибка. Из прикреплённых - какой должен быть вместо ADOTable1titleSetText?
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 06.09.2019, 08:57 [ТС] | |
|
volvo, Эмми..неее, у меня кол-во столбцов плаваяющее, так же как и столбец к которому текущую задачу применяю.
0
|
|
|
Супер-модератор
|
|
| 06.09.2019, 09:08 | |
|
Что значит "плавающее"? Столбец обязан быть в списке Fields, чтобы ты вообще мог с ним работать. Не хочешь добавлять его так - значит придётся писать обработчик, совпадающий по сигнатуре с приведенным мной, и назначать его полю через AdoTable1->Fields->FieldByName("fieldname")->OnSetText перед использованием.
Сами себе усложнят задачу, а потом героически её решают...
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 06.09.2019, 09:21 [ТС] | |
|
volvo, то и значит плавающее. Имя столбца может быть другим, данные в файле могут быть другими, расположение столбцов может быть любым. Есть файл настроек, из которого берётся какой столбец выпадающий, какой только для чтения, путь к БД и т.д. и т.п поэтому он чисто физически не может быть добавлен.
0
|
|
|
Супер-модератор
|
|
| 06.09.2019, 09:28 | |
|
Что, и найден быть не может? Тогда он на фиг не нужен, потому что Билдер работает с полем именно так, как я показал, через FieldByName. А поле, к которому нельзя обратиться - это из области извращений.
И не надо мне показывать код в виде картинки. Во-первых, это запрещено правилами, а во вторых - номера строк все равно не видны. Да и сам h-файл тоже. Я тоже могу показать картинку. На которой все будет компилироваться. И даже видео, где оно будет работать. Легче от этого кому-то будет?
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 06.09.2019, 09:49 [ТС] | |
|
volvo, найден, он может быть лишь только тогда, когда подключиться к БД, ну это чисто логически. По номеру из файла настроек можно получить имя столбца.
Добавлено через 2 минуты Код я не показывал, показывал что нет столбцов и что при попытки добавления - ошибка и её содержимое. Добавлено через 12 минут volvo, могу весь проект приложить для того чтоб было понятно о чём я?
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 06.09.2019, 09:57 [ТС] | |
|
volvo, вот проект
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 06.09.2019, 12:28 [ТС] | |
|
volvo, мыслей нет?
0
|
|
|
Супер-модератор
|
||||||
| 06.09.2019, 13:31 | ||||||
|
Сделал свой проект в BCB6 на виртуалке. На форме - DBGrid, две кнопки и два Edit-а. Ну, по коду разберешься. По нажатию одной из кнопок выбирается файл, который будет назначаться как PickList, по нажатию второй - собственно то, что я предлагал. Я чуть-чуть изменил код, теперь он выглядит вот так:
Нужен сам проект - прикреплю проект... Я обещал скрин, на котором все работает.
1
|
||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 06.09.2019, 13:41 [ТС] | |
|
volvo, я не сомневался, что у вас на статически подключеной БД всё заработает) Попробуйте на моём проекте такое же провернуть - не получится ;-)
Это не спор и не вызов) Но, если вам реально интересен этот момент - вы попробуете.
0
|
|
|
Супер-модератор
|
||
| 06.09.2019, 14:56 | ||
Сообщение было отмечено blackeangel как решение
Решение Если бы я был не уверен - я бы не давал этот метод. Смотри:Все, что изменил - это путь в конфиг файле к БД, и имя пользователя задал вручную. Так что метод-то рабочий, хоть при статическом подключении, хоть при динамическом.
1
|
||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 06.09.2019, 15:27 [ТС] | |
|
volvo, да ладно?! Лопни мои глаза, мама родная!
Похоже на то, что с меня пиво
0
|
|
| 06.09.2019, 15:27 | |
|
Помогаю со студенческими работами здесь
20
Выпадающее меню. Не фиксируется бордер раздела меню, при использовании подменю Выпадающее меню - разный размер шрифта для разных уровней меню Как прикрепить выпадающее меню к названию в основном меню Выпадающее меню Выпадающее меню Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|