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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2018, 12:02   #1
tovarz
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 16
По умолчанию dbgrid Fields OnChange - не срабатывает

Здравствуйте
Подскажите пожалуйста.
Пишу в процедуре ативации формы код :
dbgrid1.Fields[3].OnChange := fieldC;

Также при активации формы происходит добавление выпадающего списка :
dbgrid1.Columns.Items[3].PickList.Add('1');
dbgrid1.Columns.Items[3].PickList.Add('1');

Вот процедура fieldC:
procedure TForm8.fieldC(Sender: TField);
begin
showmessage('Выбрано значение');
end;

Но при выборе какой либо строки из выпадающего списка ничего не происходит, fieldC не срабатывает. Может какие настройки нужно в dbgrid включить?

Спасибо
tovarz вне форума Ответить с цитированием
Старый 28.12.2018, 12:17   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Учел, что колонки нумеруются с 0?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.12.2018, 12:18   #3
tovarz
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 16
По умолчанию

учел
tovarz вне форума Ответить с цитированием
Старый 28.12.2018, 12:38   #4
tovarz
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 16
По умолчанию

Запихал dbgrid1.Fields[3].OnChange := fieldC; ADOQuery1BeforeEdit и заработало
Только так и не могу понять, почему в FormActivate это не срабатывает
tovarz вне форума Ответить с цитированием
Старый 28.12.2018, 12:43   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

У меня срабатывает
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientDataSet1.CreateDataSet;
  ClientDataSet1.Append;
  ClientDataSet1a1.AsInteger:=1;
  ClientDataSet1c1.AsString:='1';
  ClientDataSet1.Post;
  ClientDataSet1.Append;
  ClientDataSet1a1.AsInteger:=2;
  ClientDataSet1c1.AsString:='2';
  ClientDataSet1.Post;
  ClientDataSet1.First;

  DBGrid1.Columns.Items[1].PickList.Add('1');
  DBGrid1.Columns.Items[1].PickList.Add('2');
  DBGrid1.Columns.Items[1].PickList.Add('3');
  DBGrid1.Fields[1].OnChange:=ClientDataSet1c1Change;
end;

procedure TForm1.ClientDataSet1c1Change(Sender: TField);
begin
  showmessage('Выбрано значение');
end;
Изображения
Тип файла: png Безымянный1.png (23.9 Кб, 54 просмотров)
Тип файла: png Безымянный2.png (23.6 Кб, 58 просмотров)
Тип файла: png Безымянный3.png (25.2 Кб, 55 просмотров)
Тип файла: png Безымянный4.png (19.2 Кб, 52 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.12.2018, 01:58   #6
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от tovarz Посмотреть сообщение
Пишу в процедуре ативации формы код
Почему именно в событии активации формы вам нужно выполнять этот код?
northener вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер срабатывает раньше времени или вообще не срабатывает Terebonko JavaScript, Ajax 1 03.08.2017 11:48
Fields cannot be modified Анжеликааа БД в Delphi 8 10.12.2014 19:49
TIBQuery fields Lion-Tiger БД в Delphi 12 16.08.2011 15:15
dbgrid.fields[x].value - ошибка wm_leviathan БД в Delphi 14 18.02.2010 16:48
delete where fields=null??? Geddar SQL, базы данных 1 02.06.2008 16:57