Как сделать комбобокс в делфи

Как сделать 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).
Надеюсь статья получилась вполне читабельна и изложение доходчиво.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *