Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как получить данные из поля талицы в Combobox, Таблица Paradox 
:(
    Опции темы
Berliner
Дата 4.4.2006, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здраствуйте! хочу получить данные из поля таблицы в Combobox (Чтобы можно было выбирать). Подскажите плиз код.
PM   Вверх
sexton
Дата 4.4.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


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

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



Зачем код? DBLookupCombobox...
PM MAIL WWW ICQ   Вверх
Alex
Дата 4.4.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Цитата(sexton @ 4.4.2006, 15:03 Найти цитируемый пост)
Зачем код? DBLookupCombobox...

Задачи разные бывают...

Цитата(Berliner @ 4.4.2006, 13:02 Найти цитируемый пост)
Здраствуйте! хочу получить данные из поля таблицы в Combobox (Чтобы можно было выбирать). Подскажите плиз код.

Если нужно именно статический элемент ComboBox заполнить, то:
Код

var
  s: string;
begin
  with Query1 do begin
    if not Active then Open; // Если не открыт, то открываем
    s:= Bookmark;            // Запоминаем позицию
    First;                   // Встаем на первую запись
    while not Eof do begin   // Перебираем все записи, пока не достигнем последний
      ComboBox1.Items.Add(Fields[1].AsString);
      Next;
    end;
    Bookmark:= s;          // Востанавливаем позицию
  end;
end;


Это сообщение отредактировал(а) Alex - 5.4.2006, 17:05


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Berliner
Дата 5.4.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасиб за код - работает
Код

procedure TForm2.Button3Click(Sender: TObject);
var
  s: string;

begin

  with Form2.Table1 do
begin
    if not Active then Open; // Если не открыт, то открываем
    s:= Bookmark;            // Запоминаем позицию
    First;                   // Встаем на первую запись
    while not Eof do begin   // Перебираем все записи, пока не достигнем последний
      DBComboBox1.Items.Add(Fields[1].AsString);
      Next;
end;
   Bookmark:= s;          // Востанавливаем позицию
  end;



Но хотелось бы сделать еще пару усовершенствований. Я например этот код повесил на событие (нажатие на кнопку ) а мне нужно чтобы откыл выпадающий список и все данные(список записей в таблице) появились. Подскажите плиз как это сделать? на какое событие повесить.
И еще интересно если я два раза наживаю на кнопку то запись в выпадащем списке ужваиваться а мне нужно чтобы было столько сколько записей в реальной таблице(чтобы не двоились)- подскаже пожалуста, как это реализовать?
PM   Вверх
Tror
Дата 5.4.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 29.4.2005
Где: Кишинёв

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



Цитата(Berliner @ 5.4.2006, 13:32 Найти цитируемый пост)
на какое событие повесить.

Попробуй на OnEnter comboboxa
можно еще на OnShow самой формы



Цитата(Berliner @ 5.4.2006, 13:32 Найти цитируемый пост)
(чтобы не двоились)

каждый раз когда вызываешь обработчик события делаешь

Код

DBComboBox1.Clear;


--------------------
Не говори всегда что знаешь, но знай всегда что говоришь. /Клавдий/============================================Кто может -- тот делает. Кто не может... тот получает сертификат MCSE ;)
PM MAIL ICQ   Вверх
Alex
Дата 5.4.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Код

procedure TfrmMain.ComboBox1DropDown(Sender: TObject);
var
  s: string;
  SelItem: Integer;
begin
  ComboBox1.Items.BeginUpdate;
  with Query1 do try
    if not Active then Open;       // Если не открыт, то открываем
    s:= Bookmark;                  // Запоминаем позицию
    SelItem:= ComboBox1.ItemIndex; // Запоминаем выбранный элемент
    First;                         // Встаем на первую запись
    ComboBox1.Items.Clear;
    while not Eof do begin         // Перебираем все записи, пока не достигнем последний
      ComboBox1.Items.Add(Fields[1].AsString);
      Next;
    end;
    Bookmark:= s;                  // Востанавливаем позицию
    if ComboBox1.Items.Count-1 >= SelItem then
      ComboBox1.ItemIndex:= SelItem;
  finally
    ComboBox1.Items.EndUpdate;
  end;
end;


Событие OnDropDown происходит каждый раз при распахивании списка

Это сообщение отредактировал(а) Alex - 5.4.2006, 17:04


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Berliner
Дата 6.4.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасиб за ответы: Но пиведенній ниже код не совсем корректно работает. Непозволяет нормально выбрать значения из списка.
Может не то событие? procedure TfrmMain.ComboBox1DropDown(Sender: TObject);?
Код

var
  s: string;
  SelItem: Integer;
begin

  DBComboBox1.Items.BeginUpdate;
  with form1.Table2 do try
    if not Active then Open;       // Если не открыт, то открываем
    s:= Bookmark;                  // Запоминаем позицию
    SelItem:= DBComboBox1.ItemIndex; // Запоминаем выбранный элемент
    First;                         // Встаем на первую запись
    DBComboBox1.Items.Clear;
    while not Eof do begin         // Перебираем все записи, пока не достигнем последний
      DBComboBox1.Items.Add(Fields[1].AsString);
      Next;
    end;
    Bookmark:= s;                  // Востанавливаем позицию
    if DBComboBox1.Items.Count-1 >= SelItem then
      DBComboBox1.ItemIndex:= SelItem;
  finally
    DBComboBox1.Items.EndUpdate;

  end;

PM   Вверх
Alex
Дата 6.4.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Повесь, весь мой код на OnEnter и лучше в Delphi в Items какую нибудь лабуду напиши


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Foley
Дата 6.4.2006, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

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



Цитата(Berliner @ 6.4.2006, 11:21 Найти цитируемый пост)
Непозволяет нормально выбрать значения из списка.

чтобы нормально выбрать значение из списка надо повесить на OnClick ComboBox'a, тогда при щелчке на записи выбереться именно та запись
PM MAIL ICQ   Вверх
Berliner
Дата 7.4.2006, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ок пробую
PM   Вверх
Berliner
Дата 7.4.2006, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



повесил код на ONenter собітие не могу вібрать- не выбирает.
Вот код:
Код

procedure TForm2.DBComboBox1Enter(Sender: TObject);
var
  s: string;
  SelItem: Integer;
begin

  DBComboBox1.Items.BeginUpdate;
  with form1.Table2 do try
    if not Active then Open;       // Если не открыт, то открываем
    s:= Bookmark;                  // Запоминаем позицию
    SelItem:= DBComboBox1.ItemIndex; // Запоминаем выбранный элемент
    First;                         // Встаем на первую запись
    DBComboBox1.Items.Clear;
    while not Eof do begin         // Перебираем все записи, пока не достигнем последний
      DBComboBox1.Items.Add(Fields[1].AsString);
      Next;
    end;
    Bookmark:= s;                  // Востанавливаем позицию
    if DBComboBox1.Items.Count-1 >= SelItem then
      DBComboBox1.ItemIndex:= SelItem;
  finally
    DBComboBox1.Items.EndUpdate;

    end;
    end;




PM   Вверх
Alex
Дата 7.4.2006, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Что в таком случаи вы понимаете под словом "не выбирает"?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Tror
Дата 7.4.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 29.4.2005
Где: Кишинёв

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



опиши подробней поведение программмы.
что значит не выбирает?
только что еще раз проверил код процедуры у себя -- все замечательно работает
--------------------
Не говори всегда что знаешь, но знай всегда что говоришь. /Клавдий/============================================Кто может -- тот делает. Кто не может... тот получает сертификат MCSE ;)
PM MAIL ICQ   Вверх
Berliner
Дата 7.4.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



есть таблица(Paradox) есть форма на ней находится компонент DBCombobox1 и
связан с таблицей при помощи DateSource - Я хочу, чтобы щелкнув на DBComboBox показалbсь все записи поля таблицы(это работает). ННо закрыв я хочу чтобы выбраный элемент отобразился в DBComboBox(но он не отбражается)

Это сообщение отредактировал(а) Berliner - 7.4.2006, 13:20
PM   Вверх
Berliner
Дата 10.4.2006, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может кто знает? Сори если побеспокоил

Это сообщение отредактировал(а) Berliner - 10.4.2006, 11:43
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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