Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранение нескольких значений в TComboBox, Как это лучше сделать? 
:(
    Опции темы
dsf
Дата 30.5.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.5.2006

Репутация: нет
Всего: нет



В базе данный есть таблица tbTeacher. Она имеет следующую структуру:
TeacherID - первичный ключ;
TLastName - фамилия.
Я хочу занести эти данные в компонент TComboBox. Для этого я использую функцию:
Код

TComboBox.AddItem(Item : String: AObject : TObject);

А вот код где я использую эту функцию:
Код

begin
    dbMain.tbTeacher.Close;
    dbMain.tbTeacher.SQL.Clear;
    dbMain.tbTeacher.SQL.Text := 'SELECT * FROM tbTeacher';

    try
        //    Открываем набор данных
        //        
        dbMain.transaction.StartTransaction;
        dbMain.tbTeacher.Open;

        //    Заполняем ComboBox
        //
        Combobox.Clear;

        while not dbMain.tbTeacher.Eof do
        begin
            Combobox.AddItem(
                dbMain.tbTeacher.fieldByName('TLastName').AsString,
                TObject(dbMain.tbTeacher.fieldByName('TeacherID').AsString));

            dbMain.tbTeacher.Next;
        end;

        //    Закрываем набор данных
        //  
        dbMain.tbTeacher.Close;
        dbMain.transaction.Commit;
    except
        dbMain.tbTeacher.Close;
        dbMain.transaction.Rollback;
    end;
end;

Проблема возникает при выводе значения поля TeacherID. Вместо значения первичного ключа я получаю набор непонятных символов. Причем некоторые значения выводятся корректно, а некоторые нет.
Код вывода значения:
Код

for i := 0 to Combobox.Items.Count - 1 do
    ShowMessage('i = ' + IntToStr(i) + '  firstKey = ' + String(ComboBox.Items.Objects[i]))

Поэтому вопрос такой, можно ли использовать данную функцию (имеется ввиду TComboBox.AddItem(Item : String: AObject : TObject);), и если да, то как правильно это сделать? 
PM MAIL   Вверх
blur
Дата 30.5.2006, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 9.11.2004

Репутация: нет
Всего: 1



Могу посоветовать использовать компонент TIDComboBox, очень полезный компонент особенно если работаешь с базами данных. Если надо могу скинуть. 
PM MAIL   Вверх
dsf
Дата 30.5.2006, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.5.2006

Репутация: нет
Всего: нет



Цитата

Могу посоветовать использовать компонент TIDComboBox...

Спасибо. Я вроде разобрался с этим вопросом. Сделал следующее:
Код

begin    
    Combobox.AddItem(    
        dbMain.tbTeacher.fieldByName('TLastName').AsString,    
        TObject(dbMain.tbTeacher.fieldByName('TeacherID').AsInteger));    
    dbMain.tbTeacher.Next;    

Вместо AsString использую AsInteger (т.к. в базе он храниться именно в этом формате). В свою очередь просмотреть значения можно так:
Код

for i := 0 to Combobox.Items.Count - 1 do    
    ShowMessage(IntToStr(Integer(ComboBox.Items.Objects[i])));
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0898 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.