работа с ComboBox

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

NewUser
новенький
Сообщения: 97
Зарегистрирован: 08.05.2007 13:28:40

работа с ComboBox

Сообщение NewUser »

как решить следующую задачу:

в БД таблица отделы с полями
id -номер
name - наименование

1. есть форма сотрудники в которой выпадающий список ComboBox
должен заполниться наименованиями отделов

2. по нажатии на кнопку сохранить
в БД в таблицу сотрудники значение id отдела должно записаться в поле sotr_otdel

как это реализовать?
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Купи книжку по Dephi, прочти и подобные вопросы возникать не будут

или посмотри тут:
http://www.programmersclub.ru/book
http://www.programmersclub.ru/help
С данным вопросом можно попробовать начать с этого http://www.programmersclub.ru/bookdb
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

Использовать компонент TLookupComboBox.

В Лазарусе таковой отсутствует ( и врядли появится ввиду сложности реализации ), но похожий есть в RxLIB и JVCL.

Вручную кодировать не рекомендую - зачем прививать дурные привычки ?
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

debi12345 писал(а):Вручную кодировать не рекомендую - зачем прививать дурные привычки ?

Кодить мышкой не менее дурная привычка
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

:D
Кодить мышкой не менее дурная привычка

подерживаю =)

NewUser
если учишься снуля попробуй MSEide.
там с БД проще начинать.
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Как отключить автоматическое добавление в список по нажатию Enter?
SVN: 23755
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

VirtUX писал(а):Как отключить автоматическое добавление в список по нажатию Enter?

Встречный вопрос: как ВКЛЮЧИТЬ автоматическое добавление в список по нажатию Enter? Я серьезно.
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

В последних ревизиях Lazarus уже отключено автоматическое добавление по моей просьбе.
Автоматическое добавление

Код: Выделить всё

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then ComboBox1.Items.Append(ComboBox1.Text);
end;
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

VirtUX писал(а):В последних ревизиях Lazarus уже отключено автоматическое добавление по моей просьбе.
Автоматическое добавление

Код: Выделить всё

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then ComboBox1.Items.Append(ComboBox1.Text);
end;

Ну йомайо... так-то и дурак добавит. Думал какой-то специальный флаг есть...
Спасибо. :?
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Вот именно, что флага не было, а автодобавление, по умолчанию, работало. Короче баг был, который уже поправили.
modbus
незнакомец
Сообщения: 8
Зарегистрирован: 27.06.2012 16:58:10

Сообщение modbus »

Подскажите, как сделать так, чтобы при нажатии на комбобокс в выпадающем меню был список доступных(существующих) в системе последовательных портов?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Чтением ветки реестра HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM.
А вообще вы темой случаем не ошиблись?
modbus
незнакомец
Сообщения: 8
Зарегистрирован: 27.06.2012 16:58:10

Сообщение modbus »

Подскажите правильную тему :) Потому что как прочитать реестр, отсортировать полученный список и засунуть в комбобокс я тоже не знаю. Изучал когда-то Паскаль еще под досом, ковыряюсь вот.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

кусок кода

Код: Выделить всё

procedure TMySerialPorts.BuildList;
var
 reg: TRegistry;
 l: TStringList;
 p: TMySerialPort;
 j: Integer;
begin
  Clear;
  reg:=TRegistry.Create(KEY_READ);
  l:=TStringList.Create;
  try
   reg.RootKey:=HKEY_LOCAL_MACHINE;
   if reg.OpenKeyReadOnly('\HARDWARE\DEVICEMAP\SERIALCOMM') then
    begin
     reg.GetValueNames(l);
     for j:=0 to l.Count-1 do
      begin
       p:=TMySerialPort.Create;
       p.fDev:=ExtractFileName(l[j]);
       p.fName:=reg.ReadString(l[j]);
       fList.Add(p);
      end;
    end;
  finally
   reg.CloseKey;
   reg.Free;
   l.Free;
  end;
  Sort;
  BuildModemList;
end;
modbus
незнакомец
Сообщения: 8
Зарегистрирован: 27.06.2012 16:58:10

Сообщение modbus »

Работает... только под х64 некоторые порты выводит просто как COM, без номера.
Ответить