IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Работа с BDE и её компонентами (https://www.imho.ws/showthread.php?t=94773)

doro 25.10.2005 18:03

Работа с BDE и её компонентами
 
Создал таблицу (Paradox). Накидал на форму DBComboBox и DBEdit'ов. Связал их с таблицей. Но есть проблемв:
- при запуске формы в DBComboBox'е появляется текст (последняя запись в соответсующем ему поле таблицы). Хотелось бы что бы DBComboBox при запуске был пустой, только список из полей таблицы;
- все DBEdit'ы почему-то не дают ввести текст - курсор становиться, а ввести что-либо нет возможности.

dyr_farot 25.10.2005 18:16

поставь при запуске TDBComboBox::Text в пустую строку
по второй проблеме: у тебя не прописан запром на обновление. для этого используй TUpdateSQL

doro 26.10.2005 16:46

dyr_farot
Всё сделал. Всё норально. Проблема в том, что при запуске формы в DBComboBox лезет последняя запись из ассоциированного столбца таблмцы. При запуске вписать пустую строку можно. Но, есть вероярность, что потом она (пустая строка) запишится в таблицу. И вообще это как-то не корректно (IMHO). Видимо принимать последнюю запись из таблицы как-то забито в свойство DBComboBox. Вот как это отиенить или заменить?

dyr_farot 26.10.2005 17:02

не впишется она. а заменить... это нужно наследника от TCustomComboBox писать и пепрписать все методы TDBComboBox. потому как установка текста в нем зашита:
Код:

procedure TDBComboBox.DataChange(Sender: TObject);
begin
  if not (Style = csSimple) and DroppedDown then Exit;
  if FDataLink.Field <> nil then
    SetComboText(FDataLink.Field.Text)
  else
    if csDesigning in ComponentState then
      SetComboText(Name)
    else
      SetComboText('');
end;


S_Gur 11.11.2005 11:07

А при чем тут комбобокс? Ты проверял - датасет у тебя на какой записи стоит? Попробуй ему что-нибудь типа First выполнить или RecNo в 1 поставить


Часовой пояс GMT +4, время: 08:37.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.