Как сделать комбобокс в делфи
Как сделать combobox
Вложения
Новая сжатая ZIP-папка.zip (275.0 Кб, 4 просмотров) |
Как сделать, чтобы в при выборе одного итема в ComboBox, в другом ComboBox выводился итем того же индекса?
Как сделать чтобы в при выборе одного итема в в ComboBox в другом ComboBox выводился итем того же.
Как сделать подстановку данных из ComboBox в Label
Добрый день уважаемы форумчане. Подскажите пожалуйста, на примере Как сделать подстановку из.
Как сделать компонент гибрид ComboBox + CheckListBox?
Хочется, но не получается сделать гибридный компонент или можно в принципе использовать просто эти.
Delphi 7. Как сделать несколько if для 1 компонента (Combobox)?
Доброго времени суток. Хотел бы узнать как правильно сделать несколько действий для 1 компонента.
Вложения
posmotri.zip (380.2 Кб, 14 просмотров) |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Как сделать обязательным выбор одного из элементов ComboBox
У меня есть выпадающий список. Нужно сделать обязательным выбор одного из элементов этого.
Как сделать зависимость Label от выбраного элемента в ComboBox?
Как сделать зависимость Label от выбраного элемента в ComboBox? Например, есть у нас Апельсин.
Из combobox в Dbgrid как сделать?
Вообщем тема такая мне надо сделать меню в delphi и что бы при выпадающем списке можно было выбрать.
Как сделать несколько фильтрация(поиск) через ComboBox?
Доброго времени суток. Хотел бы узнать как сделать фильтрацию, либо поиск по 2 Combobox? В моем.
Как сделать чтобы при выборе в comboBox, выводилось значение в другом comboBox?
Здравствуйте! Есть таблица из 2 столбца (id, name). Как сделать чтобы при выборе из первого.
Как сделать комбобокс в делфи
Часто, в ответ на вопрос “как связать комбобокс с БД” Вы услышите – “используй dbLookupComboBox”.
Возможно это действительно наиболее удачный вариант, но в силу моей к нему неприязни, я использую обычный ComboBox практически всегда.
Да, действительно, он не всегда удобен, если информацию о работе с ним получать только из книг по Delphi. Ведь в них, обычно, рассматриваются только самые просте способы и методы работы с ним.
В своих проектах я использую его на формах добавления или редактирования записи в базе данных.
Не буду описывать его свойства – это Вы и так можете найти в книгах или на просторах интернета, – благо форумы пестрят подобными заголовками.
В этой статье рассмотрим конкретную реализацию.
База данных выступает в качестве хранилища информации, которую мы будем добавлять или редактировать.
ComboBox, в данном описании, выступает как сомпонент позволяющий выбрать запись из таблицы-справочника для внесения информации в другую таблицу, либо как элемент выступающий в роли отображающего сохраненнную информацию на форме редактирования..
В данном примере для внесения записи и для ее редактирования применяется одна и та же форма, открываемая с различными входными параметрами.
На скринах показано много элементов формы, но я вам покажу работу на примере двух ComboBox-ов. Двух – по той причине что тут они связаны между собой и выбор элемента в первом, изменяет набор данных во втором и при редактировании записи второго ComboBox (связанного с первым по условию) это требует дополнительных операций.
На приведенном изображении фокус установлен на боксе с помощью которого, в данном случае, оператор выбирает назначение рельса (форма открыта в режиме добавления новой записи).
При этом Combobox “Тип оборудования” не содержит никакой информации, поскольку еще не сделан выбор назначения.
После того как назначение будет выбрано, список типов будет заполнен и доступен для выбора необходимой записи и в нем будут отображены только те типы (в данном случае рельса) которые связаны с выбранным назначением. Теперь оператор может выбрать нужный ему тип. Данные связаны.
Теперь о реализации.
Для боксов “Назначение” и “Тип” в БД существуют справочные таблицы, из которых и выполняется наполнение боксов.
Активация формы просходит из другой (родительской) формы, при которой и передается некий параметр определяющий роли элементов.
Определили роль действий как “Добавление записи” и открыли форму, скрины которой показаны выше.
Как работает Form2. Вот что выполняется при открытии формы:
После чего становится доступным выбор позиции во втором боксе.
На этом прекращаю рассмотрение формы в режиме добавления записи. Сам процесс записи данных в БД должен быть Вам известен.
И приступим к рассмотрению наиболее интересной части статьи, а именно позиционирование Combobox-а на нужную запись при редактировании.
Далее в тексте описания и примерах кода Вы увидите обращение к элементу DBGridEh – это табличное отображение набора данных которые будем редактированить.
Сам грид и процесс его наполнения показывать не буду – это тема для отдельной статьи, но процесс получения значений из него частино будет приведен и если у читателя будет желание получить информацию о реализации отображения табличных данных в рамках этой статьи – дополню ее или оформлю ссылкой на отдельную запись.
Как я уже отметил, на основной форме имеется некий DBGridEh с набором данных. Для редактирования записи ее нужно сначала выбрать, выполнив клик мышью на нужной строке.
Используя событие OnMouseDown DBGridEh-а получаю ключ записи (поле ‘pk’), которая будет радактироваться. Ключ так же содержится в таблице, но столбец с этой информацие скрыт, поскольку для пользователя он, как правило, не нужен.
Теперь обрабатываем нажатие кнопки “Редактировать”
Передали форме form2 информацию о том, что она должна быть открыта в режиме редактирования записи…
Зная этот параметр отрываю форму активируя следующий набор операций:
Здесь мной использован вызов процедуры, поскольку в своей программе вызов этот (редактирование значений) я допускаю делать в различных блоках программы.
И вот так выглядит сама процедура:
Выбрал значения текущих параметров для всех полей в переменные
Ведь при выполнении обновления записи потребуются они все (дабы не писать кучу условий..)
Далее выбираю позицию для бокса “назначение рельса” в соответсвии с записью в БД
Когда у нас есть наполненный по условию связки бокс типов оборудования, – остается последняя операция: Выбираю позицию для бокса “тип рельса” в соответсвии с записью в БД
В сети Вы найдете и другие реализации форм редактирования на Delphi, но поскольку ни одна из них меня не устроила по своему функционалу – я написал код, который и представил на Ваше рассмотрение. Пусть Вас не смущают значения NaznBox и TipBox – это обычные Combobox-ы…
Далее выполняется стандартная процедура обновления записи в таблице базы данных (в данном примере это таблица railslist).
Надеюсь статья получилась вполне читабельна и изложение доходчиво.