Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2009, 17:30   #1
ByXalkin
 
Аватар для ByXalkin
 
Регистрация: 15.12.2009
Сообщений: 4
Лампочка ComboBox с двумя(и более) столбцами

пишу клиент на Delphi, сама база на Access 2007, привык что в Access были поля со списком с множеством столбцов, и можно было скрыть от пользователя некоторые столбцы. Это было чрезвычайно удобно, потому что можно было дать пользователю выбирать непосредственно данные, а вторым столбцом хранить ID(и скрывать его), и работать далее только с ID. Вопрос можно ли создать тоже самое в Delphi?
ByXalkin вне форума Ответить с цитированием
Старый 15.12.2009, 17:34   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вы можете выбрать в ДБГриде только те поля, которые нужно отображать. И сделать эти поля с выпадающими списками.
Вопрос не совсем понятен.
Можете привести скриншот того, что вы хотите получить?

Последний раз редактировалось mihali4; 15.12.2009 в 17:37.
mihali4 вне форума Ответить с цитированием
Старый 15.12.2009, 17:53   #3
ByXalkin
 
Аватар для ByXalkin
 
Регистрация: 15.12.2009
Сообщений: 4
По умолчанию

нужен по виду обычный ComboBox(поле со списком)чтобы в нем выпадал не один столбец как в обычном ComboBox, а два или более, и чтобы некоторые из них(хотя бы один) можно было скрыть. Как простой пример: есть таблица: ID города; Название Города. Нужно чтобы в поле со списком выпали оба этих столбца, при чем Id должен быть скрыт, то есть как бы пользователь выбирает только название, а на самом деле ID вместе с названием, ну и соответственно нужно чтобы я мог забрать оба этих столбца которые выбрал пользователь.

17:56

я приводил пример с городами по ошибке. Соответственно на скриншоте, 4 столбца:1-ID исполнителя;2-Фамилия;3-Имя;4-Отчество. Первый столбец "ID" скрыт от пользователя, но конечно я могу его забрать(и дальше с ним работать). Нужно что то подобное реализовать в Delphi.

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Модератор
Изображения
Тип файла: jpg 2.jpg (64.1 Кб, 342 просмотров)

Последний раз редактировалось mihali4; 15.12.2009 в 19:03.
ByXalkin вне форума Ответить с цитированием
Старый 15.12.2009, 19:04   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Можно не мудрствовать лукаво и реализовать это на основе TEdit, TSpeedButton и TListView с нужным числом столбцов.
Внешне получится как и на вашей картинке.
mihali4 вне форума Ответить с цитированием
Старый 15.12.2009, 20:30   #5
ByXalkin
 
Аватар для ByXalkin
 
Регистрация: 15.12.2009
Сообщений: 4
По умолчанию

спасибо большое!!!! попробую последовать вашему совету. Возникнут проблемы, отпишусь.
ByXalkin вне форума Ответить с цитированием
Старый 15.12.2009, 21:30   #6
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Можно реализовать через обычный ComboBox, свойство Items, которого хранит ФИО (сложенные в одну строку), а в свойстве Obects идентификаторы (ID).
Скандербег вне форума Ответить с цитированием
Старый 23.12.2009, 00:03   #7
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
По умолчанию

Скандербег прав это наиболее простой способ, у меня кстате с ним проблемы, не подскажите как пользоваться такого рода указателями с выводом когда перед переменной стоит знак %
IvaniuS вне форума Ответить с цитированием
Старый 23.12.2009, 01:08   #8
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Операций с указателями с использованием символа % в Delphi нет.
Но целые числа типа Integer можно сохранять в свойстве Objects некоторых классов, в т.ч. и компонента TComboBox. Это делается простым преобразованием.
Чтобы сохранить целое число нужно преобразовать его к типу TObject:
Код:
//сохранить
CB.Items.AddObject(FIO, TObject(Id));
//читать
Id := Integer(CB.Items.Objects[I]);
Это допустимо, т.к. в свойстве Objects хранятся указатели на объекты, которые являются ни чем иным как целыми числами. Если вместо реального указателя будет сохранено нужное нам число, Delphi этого "не заметит".
Скандербег вне форума Ответить с цитированием
Старый 26.04.2017, 19:14   #9
Vvolhv
Пользователь
 
Регистрация: 05.07.2013
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Скандербег Посмотреть сообщение
//сохранить CB.Items.AddObject(FIO, TObject(Id)); //читать Id := Integer(CB.Items.Objects[I]);
А можно поподробней написать код такого варианта
Delphi 10.1 Berlin
Vvolhv вне форума Ответить с цитированием
Старый 26.04.2017, 19:26   #10
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Vvolhv Посмотреть сообщение
А можно поподробней написать код такого варианта
По-моему, в посте выше рассказано подробно. Куда уж подробнее.
Проблема в понимании чего-то конкретного?
Скандербег вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с диапазонами-столбцами polukaroff Microsoft Office Excel 7 27.11.2009 20:37
Какое программирование в наше время более востребовано и более рентабельно? iukash Свободное общение 18 29.10.2009 13:02
менять местами между столбцами и строками Aqil_f Microsoft Office Excel 6 23.05.2009 10:22
Копирование текста столбцами CoDeR Общие вопросы Delphi 5 31.07.2008 19:07
Выполнить условие с двумя ComboBox monushka Помощь студентам 2 30.04.2008 13:18